|
TeX ファイルのコンパイルの効率化 —
make の利用 since Dec. 5 2003 |
||||
|
|
||||
|
UNIX ワールドではプログラム開発において,ソースから効率的,確実にターゲットを生成するために Make を利用するのは周知のとおりである.Make は目的とするファイル (ターゲット) の構築に際して依存するファイルのタイムスタンプを調べて,依存ファイルに変更が発生した場合,あらかじめ決めておいた手順を自動的に実行することによりターゲットを作る.TeX ファイルのコンパイル,関連ファイルの生成においても,この機能を活用することにより,作業負担を軽減することが可能である. 私は TeX 文書用の Makefile (後述) を作成して次のようなレシピを設定している.
文書,スタイル・ファイルに変更が発生した場合にのみ pLaTeX のコンパイルが走る.最新の PDF が必要な場合は,現状の PDF より新しい DVI ファイルがあれば所定の PDF 生成ツールが実行される.等など,"make ターゲット名" とコマンドを投入すれば自動的にレシピが実行される. 次のような Makefile を作成して TeX ファイルと同じディレクトリに保存してご活用いただきたい.上表に記述した機能が利用できるはずである.下線部はユーザの作成する文書,環境に応じて修正が必要である.一部ユーザにとって不要と思われる変数も定義しているが,事情に合わせて変更いただきたい.Makefile の書式・文法の説明はここでは割愛する.
#
# Makefile for TeX documents compiling
# Isao YASUDA, Dec. 5 2003
#
# Document definitions
DOC = pushkin_lyubomudry # TeX 文書の .tex 拡張子を
# とった文字列を指定する
STY = ronbun.sty wabun.sty # スタイル・ファイルの指定
VER = 1.0 # プロジェクト・バージョン
TMPDIR = /tmp # バックアップ用ディレクトリ
TM = laura # アーカイブ(書庫)のサーバ
WWW = /usr/local/www/data/dav # アーカイブ格納ディレクトリ
# Programm definitions # 実行プログラムの設定
LATEX = /usr/local/bin/platex
DVIPS = /usr/local/bin/dvips
DVIPDFM = /usr/local/bin/dvipdfmx
TAR = /usr/bin/tar
RM = /bin/rm
SCP = /usr/bin/scp # 書庫サーバへのコピー用
SSH = /usr/bin/ssh # 書庫サーバでのシェル実行用
# Option definitions # Dvipdfmx 等のオプション指定
DVIPDFMOPT = -v
DVIPSOPT = -D 720 -mode esphi -O 0mm,0mm -N0
# Suffixes definitions
.SUFFIXES: .tex .dvi .ps .pdf .sty
# Recipes
.tex.dvi: $(STY)
$(LATEX) $<
$(LATEX) $<
.dvi.pdf:
$(DVIPDFM) $(DVIPDFMOPT) -o $@ $<
.dvi.ps:
$(DVIPS) $(DVIPSOPT) -o $@ $<
dvi: $(DOC).dvi
ps: $(DOC).ps
pdf: $(DOC).pdf
all: $(DOC).pdf $(DOC).ps
back:
$(TAR) zcvf $(TMPDIR)/$(DOC).tar.gz ./*.tex ./*.sty
clean:
$(RM) -f *.dvi *.aux *.log *.pdf *.ps *.gz *~ *.core
tmpclean:
$(RM) -f *.aux *.log *~ *.core
tgz: pdf tmpclean
$(TAR) zcvf $(DOC)-$(VER).tar.gz \
./*.tex ./*.sty ./*.pdf ./Makefile
SI: tgz
$(SCP) $(DOC)-$(VER).tar.gz $(TM):/home/isao
$(SSH) $(TM) sudo mv $(DOC)-$(VER).tar.gz $(WWW)
TeX のインデックス作成や BibTeX 文献データベースの取り込みはここには含まれないが,応用は可能である.
|
||||||||||||||||||||||||||