monoの開発ブログ

LaTeX用のMakefile

最近レポートをLaTeXで書くようになったので、Makefileを作ってみました。

TEX = master.tex
DVI = $(TEX:.tex=.dvi)
PDF = $(TEX:.tex=.pdf)
AUX = $(TEX:.tex=.aux)
PRN = $(wildcard *.prn)
EPS = $(PRN:.prn=.eps)
 
.PHONY: all clean watch
 
all: $(PDF)
 
watch:
    pxdvi -watchfile 5 $(DVI)
 
clean:
    rm $(PDF) $(DVI) $(AUX) $(EPS)
 
$(PDF): $(DVI)
    dvipdfmx $<
 
$(DVI): $(TEX) $(EPS)
    platex $<
    platex $<
 
%.eps: %.prn
    epstool --copy -b $< $@

make でPDFを吐きます。make watch を使えば、dviファイルの更新を監視してプレビューを自動で更新します。

図はPowerPointあたりで作ることを想定していて、prnファイルを置いておけばepstoolでトリミングし、結果をepsファイルとするようにしています。

このMakefileはエディタに依存するものではありませんが、Vimでunite-build使うと便利ですよ。