Edited at

LaTexのコンパイルをLatexmkに統一する

最近のlatexのコンパイルにはLatexmkを使うと良いようです.

platex -> bibtex -> platex -> dvipdfmxのような一連の処理をまとめてやってくれます.

カレントのディレクトリに.latexmkrcを作成することでプロジェクトごとの設定を行います.適切な設定ファイルを配置することで,WindowsでもUnixでも(たぶんMacでも)常に1コマンドでPDFを生成することができます.

$ latexmk TEX_FILE.tex

さらに


.latexmkrc

@default_files    = ('TEX_FILE.tex');


と指定することで,build対象の指定を省略できます.

(ここではTexLiveがインストールされている前提です)


英語のみの場合


pdflatexを使う場合


.latexmkfc

#!/usr/bin/env perl

$pdf_mode = 1

pdflatexでPDFを出力するようにモードを変更します.


latexを使う場合


.latexmkfc

#!/usr/bin/env perl

$pdf_mode = 3
$dvipdf = 'dvipdfmx %O -o %D %S';

latex + dvipdfmxで出力します.


日本語を含む場合


platexの場合

latex + dvipdfmでPDFを出力するモード3に変更し,platexdvipdfmxを使うように設定します.


.latexmkrc

#!/usr/bin/env perl

$pdf_mode = 3;
$latex = 'platex -halt-on-error';
$latex_silent = 'platex -halt-on-error -interaction=batchmode';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';



uplatexの場合


.latexmkrc

#!/usr/bin/env perl

$pdf_mode = 3;
$latex = 'uplatex -halt-on-error';
$latex_silent = 'uplatex -halt-on-error -interaction=batchmode';
$bibtex = 'upbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';