LaTeXのコンパイルっていうのは文献や数式の参照が入ると複数回のコンパイルが必要になってきて大変面倒ですが,latexmkを使用すると一回のコマンドでplatexやjbibtexのうち必要なものを必要なだけ実行してくれます.
WindowsはMeadow+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書けないし…という感じで挫折した経緯がありまして….