LaTeX
Latexmk

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がインストールされている前提です)

英語のみの場合

国際会議などスタイルファイルなどを含めて一切日本語が混じっていない場合

.latexmkfc
#!/usr/bin/env perl
$pdf_mode = 1

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

pdflatexが使えない場合

.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';