Git Product home page Git Product logo

latex-in-docker-on-vscode's Introduction

LaTeX in Docker on VSCode

VSCode + Docker で LaTeX 環境を構築する. ディストリビューションとして TeX Live 2020,LaTeX ソースのビルドツールとして Latexmk を利用している.また,VSCode 拡張の "Remote - Containers" を利用し,Docker コンテナ内でファイルの編集を行うことを前提としている.

以下の Docker イメージをベースとしている.

Purpose

  • Docker により,LaTeX の環境構築の再現性を担保する
  • VSCode extension "LaTeX Workshop" を利用して LaTeX の執筆を楽にする
    • linter
    • 数式のプレビュー
    • latexindent による自動フォーマット

Environment

テンプレート作成時の環境

  • OS
    • Mac OS X 10.15.7 19H2
  • Docker version 20.10.0, build 7287ab3
  • Docker Compose version 1.27.4, build 40524192
  • VSCode 1.52.1
  • VSCode Extension
    • Remote - Containers v0.154.1
    • LaTeX Workshop v8.15.0

Caution

本リポジトリの管理者は LaTeX のエコシステムに詳しいわけではない. そのため,Docker イメージが必要以上に大きくなっていたり,LaTeX の設定ファイル等におかしな部分があったりする可能性がある.

ベースとなっている Docker イメージは正しく動くと思うが,それ以外の部分はあくまで管理者の手元の環境で動かすことを意図しているため,もしエラーが出た場合,それぞれの環境で設定ファイル等を調整すると良い.issue や PR は大歓迎です.

どうしても動かない場合,管理者が参考にした Docker イメージがいくつかあるのでそちらを参照してみると良い.

Setup

  1. Docker,Docker Compose,VSCode,VSCode 拡張の "Remote - Containers" をインストールする(各自ググってください)
  2. 本リポジトリの Use this template ボタンをクリックし,新しくリポジトリを作成する
  3. 作成したリポジトリを clone:git clone [GitHub repository URL]
  4. clone したリポジトリを VSCode で開く
  5. cmd + shift + P で "Remote-Containers: Reopen in Container" を検索し実行すると,Docker コンテナのビルドが実行され,リモート環境を開いた状態でエディタが起動する.
    • 別途パッケージが必要な場合,.devcontainer/Dockerfile を編集してからビルドする.
  6. LaTeX Workshop の設定:リンク先の settings.json(Gist)の設定をコピペする
    • このテンプレート内の .latexmkrc 用にリンク先の settings.json を書かれている
    • LaTeX ソースのビルドの設定(処理系など)を変更したい場合,.latexmkrc と VSCode の "LaTeX Workshop" の設定を変更する必要がある.場合によっては .devcontainer/Dockerfile を編集して処理系をインストールする必要がある場合もある
  7. プレビューを開く:src/main.tex(編集したいファイルで OK)を開いた状態にし,cmd + shift + P で "LaTeX Workshop: View LaTeX PDF file" を検索し実行すると,右ペインに PDF が表示される(エディタ右上の虫眼鏡ボタンを押してもプレビューを表示できる).
  8. 後は自由に LaTeX ソースを作成・編集するだけ

latex-in-docker-on-vscode's People

Contributors

nukopy avatar tomoyanonymous avatar yasaidev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.