Home > Software > TeXのためのMakefile

TeXのためのMakefile

Previewだと,pdfでもxdviと同じように一度開いたファイルを自動更新してくれるので,pdfまで変換してしまうのもありかと思ってTeXのためのMakefileを書いた.

追記
依存関係を抽出するdep.plを書いたので,普通はDOCとBIBを設定すれば使えると思う.

DOC     = paper    # メインのTeXファイル名(拡張子不要)
BIB     = ref.bib  # BibTeXファイル名(拡張子必須)
SOURECE = $(shell perl dep.pl $(DOC).tex)

LATEX   = platex
DVIPDFM = dvipdfmx
BIBTEX  = jbibtex
RM      = rm
.SUFFIXES: .tex .dvi .pdf

$(DOC).dvi: $(DOC).aux $(DOC).bbl $(SOURECE)
	$(LATEX) $(DOC)
	$(LATEX) $(DOC)

.dvi.pdf: $(DOC).dvi
	$(DVIPDFM) $<

$(DOC).aux: $(DOC).tex
	$(LATEX) $(DOC)

$(DOC).bbl: $(DOC).tex $(BIB)
	$(BIBTEX) $(DOC)

pdf: $(DOC).pdf

clean:
	$(RM) -f $(DOC).dvi $(DOC).toc $(DOC).aux $(DOC).blg $(DOC).bbl $(DOC).log $(DOC).pdf *~

dep.pl : 依存関係を抽出するためのスクリプト

use strict;
use warnings;

parse_tex($ARGV[0]);

sub parse_tex {
	my ($file) = @_;
	my $fp;
	open($fp, $file) or die "IOError: ". $file;
	while () {
		chomp;
		if (/^[^%]*[\\¥]includegraphics\*?(?:\[[^\[\]]+\])?\{([^\{\}]+)\}/o) {
			printf("%s ", $1);
		} elsif (/^[^%]*\\input{([^\{\}]+)}/) {
			my $texfile = sprintf("%s.tex ", $1);
			parse_tex($texfile);
			printf("%s ", $texfile);
		}
	}
	close($fp);
}

exit(0);

これで大体の画像ファイルなんかの依存関係も把握できるんじゃないかな.

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://ma38su.org/2008/10/15/704/trackback/
Listed below are links to weblogs that reference
TeXのためのMakefile from ma38su.org

Home > Software > TeXのためのMakefile

Feed

feeds

Meta

Return to page top