latexmkは、Texとして作成したテキストをコンパイルしてPDFにするまでの作業を簡易化させるツールである。latexmkを使用することで、毎度platexを2回、dvipdfmxを1回としなくても、すべて自動で行ってくれるので、日々の作業が効率化される。
latexmkはそのままでも使えるが、設定ファイルを書くことで更に使いやすくなる。latexmkの設定ファイルは、$HOME/.latexmkrcに設置する。(他の場所にも設置できるが、一番編集しやすいのはホームディレクトリ直下であると思う。)以下に私の.latexmkrcの内容を表示する。
以下の設定ファイルでは、Linux、MacOS、Windowsの場合で使用するPDFビュワーが自動で変更されるようになっている。また、LinuxとMacOS限定で、「、」と「。」を「,」と「.」に自動変換してくれる機能がある。
#!/usr/bin/env perl
# LaTeX
$latex = 'platex -synctex=1 --shell-escape -halt-on-error -file-line-error %O %S';
$max_repeat = 5;
# BibTeX
$bibtex = 'pbibtex %O %S';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
# index
$makeindex = 'mendex %O -o %D %S';
# DVI / PDF
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;
# sed
$pdf_update_method = 4;
if ($^O eq 'darwin') {
$pdf_update_command = "find . -type f -name '*.tex' -print0 | xargs -0 sed -i '' -e 's/、/,/g' -e 's/。/./g'";
} elsif ($^O eq 'linux') {
$pdf_update_command = "find . -type f -name '*.tex' -print0 | xargs -0 sed -i -e 's/、/,/g' -e 's/。/./g'";
}
# preview
$pvc_view_file_via_temporary = 0;
if ($^O eq 'linux') {
if ($ENV{WSL_DISTRO_NAME}) {
$dvi_previewer = "start %S";
$pdf_previewer = '/mnt/c/Users/ユーザ名/AppData/Local/SumatraPDF/SumatraPDF.exe -reuse-instance %O %S';
} else {
$dvi_previewer = "xdg-open %S";
$pdf_previewer = "evince %S";
}
} elsif ($^O eq 'darwin') {
if (-f '/Applications/Skim.app/Contents/MacOS/Skim'){
$dvi_previewer = "/Applications/Skim.app/Contents/MacOS/Skim %S";
$pdf_previewer = "/Applications/Skim.app/Contents/MacOS/Skim %S";
} else {
$dvi_previewer = "open %S";
$pdf_previewer = "open %S";
}
} else {
$dvi_previewer = "start %S";
$pdf_previewer = '"C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance %O %S';
}
# clean up
$clean_full_ext = "%R.synctex.gz"
SumatraPDFをインストールする必要がある。インストール先ディレクトリはデフォルトのディレクトリにしてほしい。インストール後は.latexmkrcのユーザ名の部分を自分のユーザ名に置き換える必要がある。自分のユーザ名は、エクスプローラーから確認できる。
Skim PDFが必要である。
現在の.latexmkrcではevinceにのみ対応している。他のPDFビュワーに対応させたければ自分で書き直してください。
$ latexmk -pvc Texファイル
$ latexmk Texファイル
$ latexmk Texファイル
$ latexmk -pvc -view=none Texファイル