一つのプロジェクトに関連するファイルは一つのディレクトリ(フォルダ)に入れておくのは常識だが,最終産物(PDFファイル)を生成するための処理手順を Makefile というファイル名のファイルに書き込んでおくとよい。例えば ronbun.pdf を ronbun.tex から生成するのであれば,Makefile に
ronbun.pdf: ronbun.tex
platex ronbun.tex
dvipdfmx ronbun.dvi
と書いておく。半角スペース8個に見えるところは,実際にはタブ1個を入れる(半角スペースでは機能しない)。こうしておいて,Makefile や ronbun.tex の入っているディレクトリにいるターミナルで
make
と打ち込むと,もし ronbun.pdf が存在しないか,あるいは存在しても ronbun.tex より古ければ,次の platex ronbun.tex
および dvipdfmx ronbun.dvi
という命令を実行する。
なお,ronbun.tex から zu1.pdf,zu2.pdf,zu3.pdf を読み込んでいるのであれば,それらのうち一つでも ronbun.pdf より新しければ再コンパイルが必要であるので,
all: ronbun.pdf
PDFS= zu1.pdf zu2.pdf zu3.pdf
ronbun.pdf: ronbun.tex $(PDFS)
platex ronbun.tex
dvipdfmx ronbun.dvi
のように書く。1行目はここでは特に必要ないが,ターゲットが ronbun.pdf であることが見やすくなる。
ところで,zu1.pdf,zu2.pdf,zu3.pdf がそれぞれ zu1.R,zu2.R,zu3.R から生成されたものであるなら,
all: ronbun.pdf
PDFS= zu1.pdf zu2.pdf zu3.pdf
ronbun.pdf: ronbun.tex $(PDFS)
platex ronbun.tex
dvipdfmx ronbun.dvi
.SUFFIXES: .pdf .R
.R.pdf:
Rscript $<
のようにしておくと,例えば zu3.pdf が存在しないか zu3.R より古ければ,Rscript zu3.R
というコマンドで生成してくれる。
Last modified: