23
29

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-19

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

23
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
29