Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@tdrk

latexmkの薦め

記事を書くのは今更ですが、論文を書くようになってからLaTeXのタイプセットに使っているlatexmkについて簡単に。

latexmkとは?

LaTeXのタイプセットを自動的に実行してくれるツール。
図表番号や参照、BibTeXなど、数回のコンパイルが必要な場合でも必要回数分繰り返しコンパイルを実行してくれるので、一度コマンドを実行するとPDFが完成している。
つまり、platex 実行して、pbibtex 実行して、platex 実行して...みたいなことが不要になる!
さらに、ファイル変更すると自動的にコンパイルしてくれる機能つき(オプション)!

インストール

TeXLiveとかに含まれているので特別な操作は不要。
もしない場合は apt-get とか tlmgr とかでインストールができるみたい。

設定

~/.latexmkrc というファイルに設定を記述。
このファイルで latex でコンパイルするか platex でコンパイルするかなどを指定。
ちなみにPerlで書きます。

#!/usr/bin/perl
$latex = 'platex -guess-input-enc -src-specials -interaction=nonstopmode -synctex=1';
$latex_silent = 'platex -interaction=batchmode';
$dvips = 'dvips';
$bibtex = 'pbibtex';
$makeindex = 'mendex -r -c -s jind.ist';
$dvi_previewer = 'start dviout'; # -pv option
$dvipdf = 'dvipdfmx %O -o %D %S';
if ($^O eq 'darwin') {
    $pdf_previewer = 'open -a Preview %S';
} elsif ($^O eq 'linux') {
    $pdf_previewer = 'evince';
}
$preview_continuous_mode = 1;
$pdf_mode = 3;
$pdf_update_method = 4;

今の設定ファイルの中身。
LinuxとMacで書くことがあるので previewerをOSによって切り替えている。

使い方

latexmk main
# latexmk main.texでも可

これで main.tex ファイルに対して一通りのコンパイルを実行してくれ、PDFの生成までできる。
(対象フォルダ内に.texファイルがひとつしかない場合、latexmkだけでも実行可能)

オプション

-pv
コンパイル終了後、$pdf_previewer で指定したものでPDFをプレビューする。

-pvc
-pv に加え、texファイルを監視し続け、変更を検知したら再度コンパイルしてくれる。

-c
途中で生成した中間ファイル(.log, .auxなど)を削除してくれる。

-C
生成したファイル(.pdf, .dviなど)を削除してくれる。


つぶやき

大体の場合、-pvc オプションをつけて実行したいので alias lmk='latexmk -pvc' ってエイリアスかけてる。
あとは、alias lmkc='latexmk -c' とか。

(´・ω・`) 「TeXstudioとかの統合環境を使わずに、vimとかemacsとかでTeX書くよー」って人には Makefile 作るよりお手軽でいいと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
31
Help us understand the problem. What are the problem?