TL;DR
- TeXのコンパイルができるDockerイメージ(Dockerfile)を作ります
- Dockerサーバが動く環境ならば,環境非依存で実行できます
- 論文を書くときなどに便利です
Dockerfile
- ubuntuベースで,texliveと関連のパッケージをapt-getコマンドでインストールするDockerfileを作成します
- パッケージマネージャ(ubuntuなのでapt)を使って,TeXに関するパッケージをインストールします
-
aruneko/texliveを参考に,
/texsrc
をマウントできるようにしており,コンテナのコマンド実行時にTeXファイル群を渡せるようにしています - インストールするパッケージはQiita Ubuntu 18.04 LTS に LaTeX をインストールを参考にしました
Dockerfile
FROM ubuntu:18.04
LABEL maintainer YOSHIMI Masato <myoshimi@DOMAIN_NAME>
ENV DEBIAN_FRONTEND noninteractive
RUN set -xe && \
apt-get -y update && \
apt-get install -y \
make \
texlive-lang-cjk \
xdvik-ja \
texlive-fonts-recommended \
texlive-fonts-extra && \
apt autoremove -y && \
apt-get clean
RUN mkdir /texsrc
WORKDIR /texsrc
VOLUME /texsrc
CMD ["/bin/bash"]
-
docker build
コマンドでDockerfileをビルドします.この記事では名前をtexlive-dockerとします
# Dockerfileがあるディレクトリにてコマンド実行
# 名前はtexlive-dockerとする
docker build -t texlive-docker .
# イメージが作られたか確認
docker images | grep texlive-docker
テスト
- 以下のsample.texとref.bibを作成します.
- LaTeX入門/最初の例にある,文豪による小説の一文に,bibtexによる参考文献の管理と参照を追加しています
- 2つのファイルは同じディレクトリに置きます
sample.tex
\documentclass{jsarticle}
\begin{document}
吾輩は猫である。名前はまだ無い\cite{Soseki1905}。
どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所で
ニャーニャー泣いていた事だけは記憶している。
吾輩はここで始めて人間というものを見た。
\bibliography{ref.bib}
\bibliographystyle{junsrt}
\end{document}
ref.bib
@book{Soseki1905,
author="夏目漱石",
title="吾輩ハ猫デアル",
publisher="大倉書店",
year=1905,
}
TeXコンパイル
- sample.tex,ref.bibファイルがあるディレクトリ上で,
docker run
コマンドでTeXコンパイルを実行します- 参考文献ファイル(ref.bib)があるので,
platex
,pbibtex
,platex
,platex
,dvipdfmx
の計5つのコマンドを実行します - エラーが出なければ,当該ディレクトリ上に,sample.pdfが作成されています
- 参考文献ファイル(ref.bib)があるので,
docker run --rm -v ${PWD}:/texsrc texlive-docker platex sample.tex
docker run --rm -v ${PWD}:/texsrc texlive-docker pbibtex sample
docker run --rm -v ${PWD}:/texsrc texlive-docker platex sample.tex
docker run --rm -v ${PWD}:/texsrc texlive-docker platex sample.tex
docker run --rm -v ${PWD}:/texsrc texlive-docker dvipdfmx sample