ホーム・ディレクトリ(ユーザー名がUSERNAMEの場合、Mac, Linuxの場合は /home/USERNAME/、Windowsの場合は C:\Users\USERNAME)に次の .latexmkrc というファイルを作成します。
- .latexmkrc
#!/usr/bin/env perl
$latex = 'platex -synctex=1 -halt-on-error -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'pbibtex %O %S';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$makeindex = 'mendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$max_repeat = 5;
$pdf_mode = 3;
# preview
$pvc_view_file_via_temporary = 0;
if ($^O eq 'linux') {
$dvi_previewer = "xdg-open %S";
$pdf_previewer = "xdg-open %S";
} elsif ($^O eq 'darwin') {
$dvi_previewer = "open %S";
$pdf_previewer = "open %S";
} else {
$dvi_previewer = "start %S";
$pdf_previewer = "start %S";
}
%Sはソースファイル、%Oはオプション、%Dは出力ファイルに置き換えられます(もし指定しなくてもlatexmkが自動的に補完してくれます)
$latex … TeXファイルをコンパイルしてDVIファイルを作成するのに使うコマンドを指定します。日本語の文章では platex がよく使われます
-synctex=1 … プレビュー画面からソースコードの該当箇所に移動できるようにします
-halt-on-error … コンパイル中にエラーが発生した場合、コンパイルを終了します。
-interaction=nonstopmode … コンパイル中にエラーが起きても、ユーザーにどう処理するかの指示を求めずにコンパイルを続行します
-file-line-error … TeXファイルの何行目でエラーが発生したかを表示します
$bibtex … BiblatexのバックエンドにBibTeXを使用するときのコマンドを指定します。日本語の文章では pbibtex がよく使われます
$biber … Bibtexのバックエンドにbiberを使用するときのコマンドを指定します。
–bblencoding=utf8 … bblファイル(参考文献ファイル)の文字コードをUTF-8にします
-u … 入力ファイルの文字コードをUTF-8にします
-U … 出力ファイルの文字コードをUTF-8にします
–output_safechars … ユニコード文字をLaTeXの命令を使ってエンコードした形で出力させます
$makeindex … 索引を作成するときのコマンドを指定します。\usepackage{makeidx}を使うときに必要になります。日本語の文章ではmendexがよく使われます
$dvipdf … LaTeXにより出力されたDVIファイルをPDFファイルに変換するコマンドです。日本語の文章ではdvipdfmxがよく使われます。
$max_repeat … 最大何回コンパイルするかを指定します。
$pdf_mode … PDFの出力形式を指定します
0 … \$latexにより dviファイルを生成する。PDFを出力しない
1 … \$pdflatexを使って、DVIファイルなどを経由せずに直接PDFを作成
2 … \$latexにより生成されたDVIファイルを\$dvipsによりPSファイルに変換したあと、\$ps2pdfによりPDFを作成
3 … \$latexにより dviファイルを生成し、\$dvipdfによりPDFを作成
4 … (おまけ機能)\$lualatexにより直接PDFを作成
5 … (おまけ機能)\$xelatexによりDVIを生成後、\$xdvipdfmxによりPDFを作成
$pvc_view_file_via_temporary … latexmkを-pvcオプションをつけて実行すると、texファイルに変更があるたびに自動で再コンパイルする。その際に、昔のデータをいくつ残しておくかを指定する(0だと残さない)
$dvi_previewer … DVIのプレビューを表示するためのプログラムを指定します。synctexに対応しているものを使います
$pdf_previewer … PDFのプレビューを表示するためのプログラムを指定します。synctexに対応しているものを使います
設定ファイルが作成できたら、TeXファイルはコマンドラインからコンパイルできるようになります。
例えば、test.texというファイルをDVI経由でPDFにしたあと、プレビュー画面を開き、texファイルに更新があれば再コンパイルしたい場合は、次のようにします
$ latexmk -pdfdvi -pvc test.tex
よく使うオプションは次のとおりです。
-pdfdvi … \$latexを使ってDVIファイルを生成したあと、\$dvipdfによりPDFファイルに変換する(pdf_mode=3に相当)。-latex=uplatex などで一時的に\$latexを変更可能
-pdf … \$pdflatexを使ってPDFファイルを生成する(pdf_mode=1に相当)。-pdflatex=lualatex などで一時的に\$pdflatexを変更可能
-pv … TeXファイルをコンパイル後にPDFのプレビューを開く
-pvc … -pvの機能に加えて、texファイルを監視し、変更があったときに自動で再コンパイルを行う(PDFのプレビューを閉じるまで)。
-c … 中間ファイル(.logや.auxなど)を削除(コンパイルは行わない)
-C … 出力ファイル(.dviや.pdfなど)を削除(コンパイルは行わない)
オプション一覧は
$ latexmk -h
で確認してください。
その他のオプションをつけたときは %O に代入されます。