latexmkのインストールと設定 for OS X

LaTeXコンパイルっていうのは文献や数式の参照が入ると複数回のコンパイルが必要になってきて大変面倒ですが,latexmkを使用すると一回のコマンドでplatexやjbibtexのうち必要なものを必要なだけ実行してくれます.
WindowsMeadow+YaTeXでLatexmk使うための設定 - もうカツ丼でいいよなを参照.

インストール

  • latexmkのインストール
    • $ sudo port install latexmk
  • Skim
    • Skim | Home
    • 高機能なPDFリーダー.latexmkとは直接関係ないので入れなくてもいい*1
    • インストールして起動したらSkim Preferences => SyncからCheck for file changesにチェック,PDF-TeX Sync supportのPresetをEmacsに.

latexmkの設定

latexmkの設定ファイルは~/.latexmkrcに記述する.以下設定例.

$latex = 'platex';
$pdflatex = '~/Library/TeXShop/bin/platex2pdf-utf8';
$bibtex = 'jbibtex';
$makeindex = 'mendex';
$dvipdf = 'dvipdfmx';
$dvips = 'dvipsk';
$dvi_previewer = 'xdvi';
$pdf_previewer = 'open -a Skim';

pdflatexはTeXShop付属のものをリネームしたものなので,TeXShopをインストールして以下のコマンドをターミナルから実行しておく*2

$ cp ~/Library/TeXShop/bin/ptex2pdf-euc ~/Library/TeXShop/bin/ptex2pdf-utf8
$ cp ~/Library/TeXShop/bin/platex2pdf-euc ~/Library/TeXShop/bin/platex2pdf-utf8

これであとは$ latexmk hoge.texとかでlatexmk使える.オプションが色々あるので$ latexmk -hまたはLatexmk参照のこと.
例えばpdfまで作成してプレビューするなら,

$ latexmk -pv -pdf

といった具合.

.emacs for YaTeX

pdf出力させる場合の設定例.これでYaTeX使ってる時にC-ctjするだけで保存,platexとjbibtexの必要なだけのコンパイルとプレビューの更新まで一気にできる.
YaTeXとあわせて使う場合は.emacsに記述を追加.

;; latexmk and Skim
(setq tex-command "latexmk -pdf"
      dvi2-command "open -a Skim")

プレビューオプションつけてもいいんだけどフォーカス奪われるのが嫌なので.

ところで「latex 自動 コンパイル」とかで検索するとOMakeを使う方法ばかり引っかかるけど,latexmkに比べて何か利点あるんだろうか.というのも最初はOMake使ってやろうと思ってたんだけど,一々OMakefile作るの面倒だしそもそもmakefile書けないし…という感じで挫折した経緯がありまして….

*1:TexShopでもいいんだけどpdfをオートリロードするときフォーカスを奪われるのが嫌なので.SkimもオートリロードONにするとき一々訪ねてくるのでそこだけ微妙なんだけれども.TexShopで自動更新のときフォーカス奪われない方法や,Skimでオートリロード開始するときダイアログを出さない方法を知っている方が居られましたら教えてください.

*2:よく分からないままやってるけどこの作業余分かも.