Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

最近の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';

ymfj
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away