latexmk つかって LaTeX コンパイルしたら簡単すぎて身長が10cm伸びた

前回UltimateLatexMakefileを使ってコンパイルできるように設定したが,

\def\path{../src}
\input{\path/hoge.txt}

のような文章があるとうまくコンパイルできない問題があった.


latexmkを使えばこの問題も解決した.しかも色々便利なオプション付でOMakeを使うよりも倍身長が...

インストール法

とりあえずubuntuならaptで

sudo apt-get install latexmk

としてインストール.
としたいところだが、これだとversionが古いので作者のページから最新版をとってくる.
今はversionが4.10だった.(aptだと3.07)



次に,設定ファイルを~/.latexmkrcに作る.
例えばこんな感じ.

$latex  = 'platex -src-specials -file-line-error -interaction=nonstopmode';
$bibtex = 'jbibtex';
$dvipdf = 'dvipdfmx_call';
$dvips  = 'pdvips';
$dvi_previewer = 'start pxdvi';
$pdf_previewer = 'start xpdf -remote %R %O %S';
$pdf_update_method = 4;
$pdf_update_command = 'xpdf -remote %R -reload';

$dvipdfのdvipdfmx_callはdvipdfとdvipdfmxの書式の違いを吸収するためのもので,中身は次のようなもの.

#!/bin/sh

if [ "$2" = "" ]; then
   dvipdfmx $1
else
   dvipdfmx -o $2 $1
fi

/usr/local/bin/dvipdfmx_callなどにおいておく.


使い方

hoge.texコンパイルするときを考える.

hoge.dviにコンパイルしたいだけのとき

latexmk hoge.tex

dvipdfmx経由でpdfにコンパイルしたいとき

latexmk -pdfdvi hoge.tex

dviでプレビューを表示しつつ,ファイルを監視して自動でコンパイルしほしいとき

latexmk -pvc hoge.tex

pdfでプレビューを表示しつつ,ファイルを監視して自動でコンパイルしほしいとき

latexmk -pvc -pdfdvi hoge.tex


これで大体やりたいことはできた.