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 文献データベースの取り込みはここには含まれないが,応用は可能である.
|