はじめに
卒論を書くために、MacでLaTeX環境の構築を行っていましたが、フォント周りの問題でうまくコンパイルできなかったため、Dockerを用いてLaTeX環境の構築をしようと考えました。
そのため、upLaTeXが使えるDockerイメージを作ろうと思ったのですが、既に作っている方がいました。
日本語が扱える alpine の LaTeX イメージを作った話
本投稿では、上記のサイトを参考にLaTeXの環境構築をしていきます。
というか、本当に簡単にできます。
追記:2020/01/11
VS CodeのRemote Container機能を使って、LaTeX執筆環境を簡単に構築する記事を書きました。
paperist/alpine-texlive-ja
使用するDockerイメージ(paperist/alpine-texlive-ja)の特徴を以下に示します。
-
platex
、uplatex
が使える(つまり日本語が扱える) - イメージのサイズがとても軽量(2018年3月6日時点で
letest
が訳400MBのみ) - デフォルトのフォントがIPAexフォント
使い方
先にDockerをインストールしておいてください。
今回は試しに用意した以下のTeXファイルをPDFにコンパイルします。
\documentclass[uplatex]{jsarticle}
\和暦
\usepackage[top=25truemm,bottom=25truemm,left=25truemm,right=25truemm]{geometry}
\usepackage[dvipdfmx]{graphicx}
\usepackage{color}
\begin{document}
\title{\huge 報告書}
\author{焼肉 太郎}
\date{\today}
\maketitle
\section{仮面ライダービルドに出てくる仮面ライダー}
\begin{itemize}
\item 仮面ライダービルド
\item 仮面ライダークローズ
\item 仮面ライダーグリス
\item 仮面ライダーローグ
\end{itemize}
\section{仮面ライダービルドに出てくる仮面ライダーもどき}
\begin{itemize}
\item ナイトローグ
\item ブラッドスターク
\item エンジンブロス
\item リモコンブロス
\end{itemize}
\end{document}
以下の順序でPDFを生成します。
-
uplatex
にてtex
→dvi
に変換 -
dvipdfmx
にてdvi
→pdf
に変換
Windows(PowerShell)の場合
tex
ファイルがあるフォルダに移動して、以下のコマンドを実行します。(今回はC:Users\hoge\latex\report.tex
をコンパイルします。)
移動しないで実行する場合は${PWD}
を指定ファイルのあるフォルダの絶対パスに書き換えてください。
> docker run --rm -v ${PWD}:/workdir paperist/alpine-texlive-ja uplatex report.tex
> docker run --rm -v ${PWD}:/workdir paperist/alpine-texlive-ja dvipdfmx report.dvi
Mac(bash)の場合
tex
ファイルがあるフォルダに移動して、以下のコマンドを実行します。(今回は/Users/hoge/latex/report.tex
をコンパイルします。)
移動しないで実行する場合は$PWD
を指定ファイルのあるディレクトリの絶対パスに書き換えてください。
$ docker run --rm -v $PWD:/workdir paperist/alpine-texlive-ja uplatex report.tex
$ docker run --rm -v $PWD:/workdir paperist/alpine-texlive-ja dvipdfmx report.dvi
結果
おまけ - TeXstudio上で実行する
わざわざコマンドなんて打ってられっか!という方のために、私が愛用しているTeXのIDEであるTeXstudioでこの方法を使う方法を記します。
-
TeXstudioを開き、「TeXstudioの設定」を開きます。(Windowsの場合:
オプション(O)
→TeXstudioの設定(C)
), (Macの場合:TeXstudio
→環境設定
) -
「ビルド」タブの「既定のコンパイラ」を「LaTeX」に設定します。
-
「ビルド」タブの「ビルド & 表示」を「DVI->PDFチェーン」に設定します。
-
「コマンド」タブの「LaTeX」に
docker run --rm -v C:Users\hoge\latex:/workdir paperist/alpine-texlive-ja uplatex -interaction=nonstopmode %.tex
を設定します。 -
「コマンド:」タブの「DviPdf」に
docker run --rm -v C:Users\hoge\latex:/workdir paperist/alpine-texlive-ja dvipdfmx %.dvi
を設定します。
**ビルドタブ設定例**
![ビルドタブ](https://qiita-image-store.s3.amazonaws.com/0/125406/738f61f2-b54d-efd5-6801-1498557a260a.png)**コマンドタブ設定例**
![コマンドタブ](https://qiita-image-store.s3.amazonaws.com/0/125406/3c368a96-4dc0-3c6e-80b9-0ac94899ced4.png)上記の設定を行ったら、「ビルド & 表示」ボタンを押してみましょう。
PDFが生成され、以下のような画面になるはずです。
しかし、この方法では、上記で示した${PWD}
や$PWD
が使えません...
tex
ファイルの存在するディレクトリの絶対パスを、毎回設定しなおさなければならないという欠点があります...
おわりに
paperist/alpine-texlive-ja
イメージを使うことで、簡単に日本語を扱うLaTeX環境の構築ができます。
Docker全般に言えることですが、マシンの環境を汚すこともなく、インストールとアンインストールがらくらくにできるため、非常におすすめです。フォントもOSに依存しません。
もっと便利な使い方、コマンドを知っている方は、ぜひコメントしてください。
また、他人が作成したDockerイメージを利用する際は、悪意のないイメージであることを確認してから利用しましょう。今回のpaperist/alpine-texlive-ja
は、Docker HubでDockerfileにてビルドされているため、このDockerfileを見ることで安心できます。
作者様に感謝です。