Dockerで簡単TeX環境構築

2020/01/07

latex-logo

やりたいこと

.texPDF にコンパイルしたい

手順

注意

最初のコンパイル時に約1.1GBのダウンロードが発生します.そのため,有線ネットワークに接続して作業することをおすすめします.

1. Docker環境を整える

Docker環境が必要です.使用しているOSにあわせて,各自セットアップします.

2. オプションを選ぶ

コンパイルしたい .tex に合わせて, latex modebibtex mode を決めます.

latex mode

使用するlatex環境を次の中から選んでください.

  • latex
  • platex(latexを日本語対応したもの)
  • uplatex(platexをUnicode対応したもの)

bibtex mode

使用する文献DBを次の中から選んでください.

  • 文献DBを使用しない
  • bibtex
  • pbibtex
  • upbibtex

3各種ファイルの配置

3.1 tex2pdf

Mac,Linux,WSLを使用している場合は,tex2pdf.shを,texファイルがあるディレクトリに保存します.

Windowsを使用している場合は,tex2pdf.batを,texファイルがあるディレクトリに保存します.

3.2 latexmk

次のテキストをlatexmkrcというファイル名で,texファイルがあるディレクトリに保存します.

$latex = '[latex mode] --shell-escape';
$bibtex = '[bibtex mode]';
$dvipdf='dvipdfmx %O %S';

[latex mode][bibtex mode]は各自が選んだオプションに置き換えます.例えば,$latex = 'uplatex --shell-escape';のようにします.

ただし,bibtex mode文献DBを使用しないを選んだ方は,2行目の$bibtex = '[bibtex mode]';を行ごと削除します.

4. コンパイル

お使いの環境に合わせて,./tex2pdf.sh [tex file]または./tex2pdf.bat [tex file]を実行します.

ただし,[tex file]はコンパイルしたいtexファイルの名前で置き換えます.例えば,./tex2pdf.sh main.texのようにします.

特徴

TeXをコンパイルするDockerイメージの中では,比較的多機能でイメージサイズが大きいという特徴があります.ubuntu:bionic をベースに,texlive関連のパッケージを(recommendsパッケージも含めて)多めにインストールしてあります. そのため,ほとんどの文書をコンパイルできますが,イメージサイズが約2.6GBもあります.

機能

一般的なtexliveの機能が利用できます.

以下の機能が動作することを確認しました.

  • 図の挿入
    • graphicx
      • png,jpg,gif,svg,eps,pdfを挿入可能
    • BBの自動生成
  • 文献DB
    • bibtex
    • pbibtex
    • upbibtex
    • biber
  • 表の拡張機能
    • tabularx
  • ソースコードの表示
    • listings
    • 日本語を含むソースコードの表示
      • jlistingsをダウンロードし,texファイルと同じ場所に配置します.
  • フォントの埋め込み
    • IPAフォントをPDFに埋め込めます
    • プリアンブルに \AtBeginDvi{\special{pdf:mapfile ptex-ipa.map}}
  • 図表や章節へのリンク,PDFアウトライン
    • hyperref
    • pxjahyper

続けて読む…

Blenderでアニメ調にレンダリングしてみる

2017/01/28

【Linux】カーネルビルドでも進捗が見たい!

2020/04/27

「クロージャは関数と環境のペア」とは?(JavaScript)

2023/12/02

シングルユーザーモードのUbuntuにSSHする(SSH to Single User Mode Ubuntu 18.04)

2020/10/25

Credits(Frums)をマジのターミナルで

2021/04/29

SICPの備忘録

2023/07/29

書いた人

sititou70のアイコン画像
sititou70

都内の社会人エンジニア4年生。Web技術、3DCG、映像制作が好き。