記事を書くのは今更ですが、論文を書くようになってからLaTeXのタイプセットに使っているlatexmkについて簡単に。
latexmkとは?
LaTeXのタイプセットを自動的に実行してくれるツール。
図表番号や参照、BibTeXなど、数回のコンパイルが必要な場合でも必要回数分繰り返しコンパイルを実行してくれるので、一度コマンドを実行するとPDFが完成している。
つまり、platex
実行して、pbibtex
実行して、platex
実行して...みたいなことが不要になる!
さらに、ファイル変更すると自動的にコンパイルしてくれる機能つき(オプション)!
インストール
TeXLiveとかに含まれているので特別な操作は不要。
もしない場合は apt-get
とか tlmgr
とかでインストールができるみたい。
設定
~/.latexmkrc
というファイルに設定を記述。
このファイルで latex
でコンパイルするか platex
でコンパイルするかなどを指定。
ちなみにPerlで書きます。
#!/usr/bin/perl
$latex = 'platex -guess-input-enc -src-specials -interaction=nonstopmode -synctex=1';
$latex_silent = 'platex -interaction=batchmode';
$dvips = 'dvips';
$bibtex = 'pbibtex';
$makeindex = 'mendex -r -c -s jind.ist';
$dvi_previewer = 'start dviout'; # -pv option
$dvipdf = 'dvipdfmx %O -o %D %S';
if ($^O eq 'darwin') {
$pdf_previewer = 'open -a Preview %S';
} elsif ($^O eq 'linux') {
$pdf_previewer = 'evince';
}
$preview_continuous_mode = 1;
$pdf_mode = 3;
$pdf_update_method = 4;
今の設定ファイルの中身。
LinuxとMacで書くことがあるので previewerをOSによって切り替えている。
使い方
latexmk main
# latexmk main.texでも可
これで main.tex
ファイルに対して一通りのコンパイルを実行してくれ、PDFの生成までできる。
(対象フォルダ内に.texファイルがひとつしかない場合、latexmk
だけでも実行可能)
オプション
-pv
コンパイル終了後、$pdf_previewer
で指定したものでPDFをプレビューする。
-pvc
-pv
に加え、texファイルを監視し続け、変更を検知したら再度コンパイルしてくれる。
-c
途中で生成した中間ファイル(.log, .auxなど)を削除してくれる。
-C
生成したファイル(.pdf, .dviなど)を削除してくれる。
つぶやき
大体の場合、-pvc
オプションをつけて実行したいので alias lmk='latexmk -pvc'
ってエイリアスかけてる。
あとは、alias lmkc='latexmk -c'
とか。
(´・ω・`) 「TeXstudioとかの統合環境を使わずに、vimとかemacsとかでTeX書くよー」って人には Makefile
作るよりお手軽でいいと思います。