3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NITech-KatolabAdvent Calendar 2024

Day 4

docker-composeによるLaTeX組版

Last updated at Posted at 2024-12-03

はじめに

Cloud LaTeX や Overleaf の登場により、オンラインで簡単に LaTeX 文書を組版できるようになりました。しかし、これらのツールはオフライン環境では使用できず[^1]、git を使ったバージョン管理との相性も良くありません。結局のところ、最後に頼るのは昔ながらのローカル環境でのLaTeX組版です。

ローカル環境でaTeX組版を行う場合、ハードルとなるのが環境構築です。しかし、現在ではDockerを利用することで、簡単かつ効率的に環境を整えることが可能です。とはいえ、Dockerを使ってLaTeX組版を行う際には「どのコンテナを選ぶべきか」「どのようなコマンド構成にすればよいか」などの点に悩みます。

本記事ではコンテナにpaperist/texlive-jaを、コマンドはすべてdocker-composeにまとめてしまう方法を紹介します。日本語LaTex組版の環境としては、これ以上シンプルにできない気がします(もっとシンプルな方法があれば教えてください( ;∀;))。

結論

1. Docker Desktop をインストールする

Dockerを利用するためDocker Desktopをインストールします。

2. docker-compose.yml を書く

以下のようにdocker-compose.ymlを記述します。

sample/
├── docker-compose.yml
└── main.tex
version: '3.8'  # 使用するComposeファイルのバージョンを指定

services:
  latex:
    image: paperist/alpine-texlive-ja  # 日本語対応のTeX Liveを含む軽量なDockerイメージを指定
    volumes:
      - .:/workdir  # 現在のディレクトリをコンテナ内の/workdirにマウント
    working_dir: /workdir  # コンテナ内での作業ディレクトリを指定
    command:  # コンテナ実行時に実行するコマンドを指定
      - /bin/bash  # Bashシェルを使用
      - -c  # 次の文字列をコマンドとして実行
      - |
        # pLaTeXでmain.texをコンパイルしてDVIファイルを生成
        platex main.tex
        # 生成されたDVIファイルをPDFに変換
        dvipdfmx main.dvi

日本語LaTex組版環境としてはpaperist/texlive-jaが一番軽量かつ利用数が多そうな為これにしてます。

3. 実行

$ docker-compose up

試す

国内学会のいくつかの予稿テンプレートをdocker-composeで組版してみました。
command:の箇所を適宜変更することで、それぞれのテンプレートに合わせています。

おわりに

devcontainerLatex WorkShopを利用することで、より便利に執筆することも可能です。

ただ、個人的にはVSCodeに依存しない形で利用したい&可能な限り設定ファイルは少なくしたいので、docker-composeだけで完結できるようにして利用しています(./vscodeとか書いても後輩が気づかない説)。

例えば、研究室内のLaTexテンプレートに追加でdocker-composeまで書いてあげることで、後輩は環境構築に悩まずdocker-compose upを実行するだけで先輩と同じ組版をすることができて便利だと思います。

備考

  • paperist/texlive-jaではepsファイルは利用できないようなので、別の画像形式にするか別のコンテナを使う。

  • 生殺与奪の権をOverleafに握らせるな

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?