latexmkの自動更新でプレビューも更新させる
普段はTextmateから⌘Rでコンパイルしてるけど, 思い立ってlatexmkの自動更新モードを使ってみた。
$ latexmk -pvc hoge.tex
とすると自動更新モードで起動。あとは保存するたびに勝手にコンパイルしてくれる。
しかしそのままだと2回目以降のコンパイル時にviewerの表示が更新されず, 手動でPreview.appを前面に持ってこないと表示が更新されなかった。 ちなみにSkimだと前面に持ってきても更新されなかった。 自動更新機能のために入れたのに…… 使えない子!
ちょっと不便なのでドキュメントとか見つつ対処。
設定ファイル.latexmkrc に下の2行を追加すればよい(viewerにPreview.appを使ってる前提)。
$pdf_update_method = 4;
$pdf_update_command = "open -a Preview %S';
$pdf_update_method = 4;
はプレビューをアップデートするときに
$pdf_update_command
を実行するという設定。これで更新時にもPreview.appを開いてくれるように。
ちなみにうちの.latexmkrcでは
$pdf_update_command = "open -a Preview %S;sleep 0.1;mate";
としてTextmateにフォーカスを戻すようにしている。sleepを入れないと戻ってくれない。
Textmate以外の人はまあ適当にopen /Applications/hoge.app
とかで。
Textmateからコンパイルするのに比べると, フォーカス奪われない分ちょっとだけ快適。
そういえば以前試したOMakeの自動コンパイルはうんともすんとも言わなかったけど何が違うのやら。