LoginSignup
43
38

More than 5 years have passed since last update.

latexmkの薦め

Posted at

記事を書くのは今更ですが、論文を書くようになってから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 作るよりお手軽でいいと思います。

43
38
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
43
38