LaTeXのtexファイルをPDFに変換するツールをDockerでつくった
前置き
機械学習のネタを投稿したいが,研究で使っているデータは公開できないし,未発表の研究を投稿するわけにもいかないので,Dockerネタになってしまう.
公開データを使って実験して投稿しようかなあ...
LaTeXの環境構築が辛かった...
本題
研究の中間発表に向けて,レジュメを作り始めたのだが,macOSの環境にTeXの環境を作るのに失敗し,うまくいかなかったのでDockerで作った.
Quick Start
$ docker run --rm \ -v "texファイルがあるディレクトリを絶対パスで記述":/home/geotaru/workdir \ -e target=/home/geotaru/workdir/"マウントしたディレクトリの下にある,コンパイルしたいtexファイルのパス" \ geotaru/latex-compiler
Example
カレントディレクトリにあるresume.texからPDFファイルを生成する
$ docker run --rm \ -v `pwd`:/home/geotaru/workdir \ -e target=/home/geotaru/workdir/resume.tex \ geotaru/latex-compiler
Dockerfile
Dockerfileは下記の通り.
他の人のレポジトリを参考にDockerfileを書き直し,コマンドラインツールを作った.参考にしたURL・レポジトリは最下部に書きました.
alpine Linuxを使って軽量化したが色々追加したせいか,非圧縮で1GBを超えてしまった.
FROM alpine:3.8 MAINTAINER geotaru <geotaru.dev@gmail.com> ENV PATH /usr/local/texlive/2018/bin/x86_64-linuxmusl:$PATH ENV USER geotaru ENV HOME /home/${USER} RUN apk --no-cache --update add bash ENV SHELL /bin/bash RUN adduser -S ${USER} WORKDIR /root RUN apk --no-cache --update add wget perl xz tar fontconfig-dev && \ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \ mkdir install-tl-unx && \ tar xf install-tl-unx.tar.gz --strip-components 1 -C install-tl-unx COPY texlive.profile /root/install-tl-unx/ RUN /root/install-tl-unx/install-tl \ --repository=http://mirror.ctan.org/systems/texlive/tlnet/ \ --profile=/root/install-tl-unx/texlive.profile && \ tlmgr install \ collection-basic collection-latex \ collection-latexrecommended collection-latexextra \ collection-fontsrecommended collection-langjapanese latexmk && \ ( tlmgr install xetex || exit 0 ) && \ rm -rf /root/install-tl-unx && \ apk --no-cache del wget xz tar fontconfig-dev && \ rm -rf /root/install-tl-unx COPY ./compile.sh /opt/compile RUN chmod 777 /opt/compile USER ${USER} WORKDIR ${HOME}/workdir ENV target ${HOME}/target.tex CMD /opt/compile ${target}
compile.shの中身
#!/bin/bash platex $1 dvipdfmx $(echo $1 | sed "s/.tex$/.dvi/g")
上記のDockerfileの最新版は下記URLにおきました. git cloneしてお好きなように改変して自分の端末でbuildするなり,フォークしていじくりまわすといいと思います.ご自由にどうぞ
感想
自分のMacの環境がごちゃごちゃになってしまい,環境構築に失敗してtexファイルをpdfにうまく変換できなかったが,Dockerを使うことで解決した.Dockerはイイゾー!