LaTeXで複数回タイプセットする手間を省く Latexmk

LaTeX のソースをコンパイルするときに,
LaTeXコンパイル」→「 BibTeXコンパイル」→「 LaTeXコンパイル」→「 LaTeXコンパイル
の手順を毎回行うのは面倒である.
そんなときに役に立つのは "Latexmk" である.

❖ 背景

それはとある学部4年生が卒論を書いていたときの話である. 

4年生「卒論の参考文献が ?? になってしまいます...」
私「もう一回タイプセットしてみ」
4年生「あっ,直りました!」

LaTeX のソースを正しく pdf へ変換するためには複数回タイプセットする必要がある.
この手間を省くために用いられるのが Latexmk である.

 

❖  Latexmk を用いてコンパイル

Latexmk は TeX をインストールしたときにデフォルトで含まれている場合がほとんどなので,導入するために特別な作業を必要としない.

私が英語で原稿を書くときは "pdflatex" を用いてコンパイルを行なっている.
この場合,以下のコマンドでコンパイルする. 

    $ latexmk -pdf foo.tex


日本語の原稿は "platex" を用いてコンパイルを行なっている.

しかし, latexmk には platex を用いるオプションが存在しないため,.latexmkrc に設定を書く必要がある.

全体の設定を変えるのであればホームディレクトリ下 ( ~/.latexmkrc ) に作成すれば良いが,原稿ごとに設定を変更したい場合などは .tex ファイルが存在するディレクトリに作れば良い.

 .latexmkrc は以下のように設定する.

    #!/usr/bin/env perl
    $latex= 'platex %O %S';
    $bibtex= 'pbibtex %O %B';
    $dvipdf= 'dvipdfmx %O %S';
    $pdf_mode= 3;

その後,以下のコマンドでコンパイルする. 

    $ latexmk foo.tex

 
また,コンパイルしたときに生じる副産物は以下のコマンドで削除することができる.

    $ latexmk -c

 

おわりに

LaTeX のソースをコンパイルするときに, latexmk を用いると便利である.

今回は .latexmkrc に記述したものがそれぞれどのような意味を持つのかを省いたが, latexmkrc で検索すれば多くの資料が得られるであろう.
それらの資料を参考にすることで,必要に応じて設定することができるであろう.