[techaday:0003] latexmkで楽々LaTeXコンパイル

[techaday:0003] latexmkで楽々LaTeXコンパイル

はじめに

第3回です.皆さんは文書を書くときに何を使っていますか?
Wordを使っているという方は今すぐお帰りください.何も得する情報はありません.
LaTeX を使っているという方,素晴らしいですね.ぜひお友達になりましょう.どうやってコンパイルしていますか?

コマンド平打ち?シェルスクリプト?Makefile?
それってとてもめんどくさいですよね.毎回やることは決まってるわけですし,保存してプレビューするたびに make とか打つのはナンセンスです.
かといって,私みたいに慣れたテキストエディタがある場合は,わざわざTeXだけのために専用の執筆環境をインストールして使うのもまどろっこしいです.

というわけで,TeXのコンパイルに関わる処理をよしなにやってくれる latexmk という便利なコマンドラインツールがあるのでご紹介します.
ついでに,プレビュー時のコンパイル時間を短縮するためのコツについても書きます.

前提知識

  • シェルが最低限使える
  • TeX が書ける
  • TeX のコンパイルってめんどくさいなーと思ったことがある

効能

  • ちょっとだけ時間の節約になる
  • 頻繁にプレビューするときのコツがわかる

動機

「はじめに」にも書いたように,LaTeXを始めるにあたっての最もめんどくさそうなポイントはコンパイルの処理にあると思います.
\ref\cite の番号が何度かコンパイルを通さないと正常に振られなかったり,参考文献リストや画像のバウンディングボックスなどは別コマンドで処理をしないといけなかったりと,処理内容が固定ではあるものの書いているものによって大きく異なり,その都度 Makefile を書いたりコマンドを追加で打ったりする必要が出て非常につらい思いをした覚えがあります.
でも安心してください.もうそんなコストを支払う必要はありません.もしこういった苦しみに直面しているのであれば,latexmkの出番です.

latexmkの導入

Windows

入れ方は様々なのですが,個人的なおすすめはTexLiveです.
いかんせんディスク容量を食い潰すのですが,Windowsを使用している人でそんなことを気にする人は誰もいないと思いますのでおすすめです.
詳しくは以下を見てください.

Linux

Linuxな方は言われなくてもすでにインストールを始めていると思いますので割愛します.

Mac

知らん.

使い方

保存のたびに自動でコンパイルしてくれるオプションがあるので,バックグラウンドで latexmk を走らせておいて,あとはテキストエディタでファイルを編集するだけでおっけーです.

$ latexmk -pvc

が基本的に実行するコマンドになるかなと思います.

latexmk で楽々 TeX タイプセットの薦め(& biblatex+biberで先進的な参考文献処理) - konn-san.com
があまりにも有名な記事ですので読んでみましょう.
まずはここをベースにしてスタートすると良いでしょう.

私はplatexを主に使用しているため,つぎのような設定になっています.
.latexmkrc tokoro10g/dotfiles - GitHub
あとは --shell-escape あたりをデフォルトで入れておけばbbも自動である程度作ってくれて楽です.

コンパイル時間の短縮

j[s]articlebeamer 等の多くのドキュメントクラスは draft オプションに対応しています.
これをつけることで,図を実際のファイルから貼りこむことなくダミーの枠だけで書きだしてくれるため,書き出しにかかる時間を短縮できます.

\documentclass[twoside,a4paper,11pt,draft]{jsarticle}

まずはこれを使用してドキュメントをある程度完成させて,その後に図の配置等を工夫すると効率的に執筆が進められるかと思います.

まとめ

  • latexmk を使ってコマンド平打ちやMakefileのような地獄を抜け出しましょう
  • 細かいことは自分で調べてください

補足

  • LaTeX 補助関連の Vim プラグインはだいたい latexmk でのコンパイルに対応しています.個人的なおすすめは vimtex です.
  • 読み方ですが,私は「れいてっくえむけー」と読んでいます.正しい発音は永遠にわかりません.