cangoxina

生産性向上見習いのブログ的な何かです

爆速で日本語LaTeX執筆環境を用意する

f:id:korosuke613:20190624154503p:plain

LaTeX環境を用意するのって大変ですよね。

環境は汚すし時間はかかるし、Macの場合、font周りで訳のわからないことになるし...

今回は、そういった煩わしさを消し去って、爆速でLaTeX執筆環境を用意する方法を教えます。


目次


概要

VS Code拡張機能である、Remote - Containersを利用して、LaTeXのビルド環境(uplatexやlatexmk)および、執筆環境(エディタやsynctex)を構築するための、Dockerイメージおよび、テンプレートを作成しました。

以下で、使い方等を説明します。

うれしいこと

  • Dockerイメージ内に、LaTeX環境があるため、ホストマシンの環境を汚さない!
  • インストールが速い!楽!
  • latexindentでフォーマットできる!
  • synctexが使える!

インストール

インストール方法を記します。ちなみに、イメージのOSはubuntu18.04で、TeX Liveは2017(だったはず)です。

必要なもの

Docker、docker-composeが動作するPC

この手法では、Dockerとdocker-composeを利用します。

インストールしておいてください。(参考)

Visual Studio Code

この手法では、LaTeXを実際に執筆するエディタとして、Visual Studio Codeを利用します。 インストールしておいてください。(参考)

"Remote - Containers"をVS Codeにインストール

marketplace.visualstudio.com

上記のリンク先の、Installをクリックすると、VS Codeが立ち上がり、拡張機能をインストールできる。

f:id:korosuke613:20190624160749p:plain

左下が、上の画像のようになればOK

テンプレートをgit clone

git clone --depth=1 https://github.com/korosuke613/texlive-ja-devcontainer-template.git

git cloneできない人は、ここから、zipをダウンロードしてください。

テンプレートをVS Codeで開く

メニューバーの、ファイル開く...をクリックし、先ほどcloneした、texlive-ja-devcontainer-templateフォルダを開く。

f:id:korosuke613:20190624161550p:plain

たぶんこんな感じになるはず。

Reopen in Containerする

フォルダを開いたら、

f:id:korosuke613:20190624160749p:plain

の青いボタン(><)をクリックする。

f:id:korosuke613:20190624161839p:plain

上の方に選択肢がでるので、Reopen Folder in Containerをクリックすると、Dockerイメージのpull、Remote機能の適用、docker-composeが始まる。

イメージサイズがけっこうデカい()ので、初回は結構時間がかかる。(5,6分?)

f:id:korosuke613:20190624162459p:plain

準備ができたら、上の画像のような感じになり、左下の青い部分が、Dev Container: ubuntu-texlive-jaとなる。

これで、準備完了!

確認

インストールが完了したかどうか、チェックする。

  1. sample.texを開く。
  2. 左サイドバーにある、TEXマークをクリックする。
  3. Build LaTeX ProjectRecipe upLaTeXをクリックする。ビルドが開始される。
  4. 下の画像の、PDFと虫眼鏡っぽいマークをクリックする。
    f:id:korosuke613:20190624163133p:plain
  5. PDFが開く。問題なく表示されていればインストール完了!
    f:id:korosuke613:20190624163356p:plain

その他

font

IPAフォントを利用しています。

LaTeX統合環境

この手法では、エディタにVS Codeを使い、LaTeXの統合環境を追加する拡張機能LaTeX Workshopを使っています。

なので、PDFの開き方や、開発時の細かい設定などは、こちらを参照してください。

latexmk

今回のテンプレートでは、latexmkの設定を追加しています。latexmkの設定に関しては、こちらを参照させていただきました。

qiita.com

alpine-texlive-ja

本当は、alpine-texlive-jaというイメージを使いたかったのですが、alpineではRemote - Containers機能を利用できなかったため、Ubuntuで作り直しました。

3846masa.hatenablog.jp

カスタマイズ方法

もし、さらにapt-getしたい場合やfontを変えたい場合は、テンプレート内の.devcontainer/Dockerfileおよび、.devcontainer/docker-compose.ymlを修正してください。

Dockerfile

FROM korosuke613/ubuntu-texlive-ja:latest

MAINTAINER Futa HIRAKOBA

RUN apt-get update && apt-get install -y \
    git \
    cpanminus \
    texlive-extra-utils \
    make \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN cpanm Log::Log4perl Log::Dispatch::File YAML::Tiny File::HomeDir Unicode::GCString

新たにapt-getしたい場合は、RUN apt-get update && apt-get install -y \の後に、パッケージ名を追加してください。

docker-compose.yml

Dockerfileを変更したら、

これを、

version: "3"
services:
  ubuntu-texlive-ja:
    image: korosuke613/ubuntu-texlive-ja-devcontainer
    #build: .
    command: sleep infinity
    volumes:
      - ../:/workdir
      - ~/.gitconfig:/root/.gitconfig
    environment:
      SHELL: "/bin/bash"

こう変えてください。

version: "3"
services:
  ubuntu-texlive-ja:
    build: .
    command: sleep infinity
    volumes:
      - ../:/workdir
      - ~/.gitconfig:/root/.gitconfig
    environment:
      SHELL: "/bin/bash"

これで、Dockerfileをビルドするようになります。

synctexのショートカット(追記:2020/01/11)

エディタのカーソル行からプレビューにジャンプしたい場合は、以下のショートカットでジャンプできます。

逆に、プレビューからエディタの行にジャンプしたい場合は、ctrlを押しながらジャンプしたい要素をクリックすることで、ジャンプできます。

参照- James-Yu/LaTeX-Workshop

おわりに

今回は、爆速で日本語LaTeX執筆環境を用意する方法を記しました。とても便利なのですが、Remote - Containers機能が、まだまだプレビュー版な為、ビルド時にたまに失敗するなど、不安定な感じはします。dockerの知識があれば、自分でトラブルシューティングはできると思うのですが、dockerの知識が無い人は、エラーがでた時に結構厳しいかも知れません。

もしなんかあったら、コメントするか、issue、pull requestを飛ばしてください。


スポンサーリンク