DockerでLatex環境を構築!!!【Mac】【Docker】【LaTeX】
以前,VSCodeでLaTeX環境を構築!【Mac】【VSCode】【LaTex】という
記事を書きましたが,古い記事になっていてMacTexも2017と2018で インストール方法 が違ったりしていてややこしいですし,インストールに時間がかかったりと環境を変えた時にとても大変です.
ということでDockerで楽に環境構築できるらしいのでやってみようと思います.
以前と同様に,Texというのは素晴らしいです.本当に,卒業論文で役に立つなぁという印象しかないです.
みなさんもこの記事で,環境構築してLaTeXで素晴らしい論文を作成してやりましょう.(´◉◞౪◟◉)
今回の環境は,
- MacBook Pro(Mid.2012) (死にかけ)
- OS:Mojave (モハベ)
- Docker : 19.09.0
Dockerのインストール
さて,Docker のインストールですが,homebrewを使っている方はbrewでインストールできます.
brew cask install docker
また,普通に以下のURLのWebサイトからインストールもできます. Get Started with Docker | Docker それぞれの環境にあった物を選んでインストールしてください.
インストールができたら
一度dockerを起動しよう.
open Application/docker.app
Docker を起動してみると,アクセス権がほしいと言われるので,
パスワードを入力してアクセス権を与えてあげる.
その後Dockerが起動され以下のような画面が出てくるのでログインまたは新規作成をしよう.
インストールできているか確認しよう
$ docker --version Docker version 18.09.0, build 4d60db4 $ docker-compose --version docker-compose version 1.23.2, build 1110ad01 $ docker-machine --version docker-machine version 0.16.0, build 702c267f
nginxの起動
$ docker run -d -p 80:80 --name webserver nginx
http://localhost に接続してWelcomeページが表示されればOKです.
では,nginxが邪魔なので止めて消します.
nginxを止める
$ docker stop webserver
nginxを消す
$ docker rmi nginx
もし,Dockerがstartしない場合は,以下のページを参照してください.
Dockerイメージのインストール
今回は,「日本語 LaTeX 環境が整うこと」と「alpineベースに最低限しか入っていないのでサイズが小さい」という2点の利点があるイメージを使用することにします.
$ docker pull paperist/alpine-texlive-ja
以下のようなエラーが出た場合は,ログインし直して対処します.
$ docker pull paperist/alpine-texlive-ja Using default tag : latest Error response from daemon: Get https://registry-1.docker.io/v2/paperist/alpine-texlive-ja/manifests/latest: unauthorized: incorrect username or password $ docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username (xxxxxx@sample.com): ${userid} // not mail address. Password:
コンパイル
.tex ファイルがあるディレクトリに移動して,以下のコマンドを打つことでコンパイルされます. 一度texからdviに変換し,dviをpdfに変換しています.
$ docker run --rm -v $PWD:/workdir paperist/alpine-texlive-ja uplatex main.tex $ docker run --rm -v $PWD:/workdir paperist/alpine-texlive-ja dvipdfmx main.dvi
latexmkを使用してPDF生成
コンパイルの仕方を書きましたが,いちいちdvi生成をしてからpdfに変換は面倒です. その為,latexmkを使用することで一連の処理をまとめてやってくれます. 同じディレクトリ内に.latexmkrcというファイルを置いておくことでプロジェクトごとで設定をできます.
#!/usr/bin/env perl $pdf_mode = 3; $latex = 'platex -halt-on-error'; $bibtex = 'pbibtex'; $dvipdf = 'dvipdfmx %O -o %D %S'; $makeindex = 'mendex %O -o %D %S';
おわりに
Dockerは自身の環境を汚すことなく環境を作れるので本当に便利だなーと思います.