LatexMkについて知っていますが、それを実行したいコンピュータにインストールできないため、ターゲットが依存するファイルと入力したファイルを含むpdflatex
Makefileを作成する必要があります。そのために、次のように書いています。%.pdf
%.tex
*.tex
%.tex
%.pdf : %.tex $(shell perl -lne 'print "$$1\n" if /\\input{([\w-]+\.tex)}/' %.tex)
これで正規表現をテストしましたが、うまく動作しているようですが、%.tex
最後に正しく渡されませんでしたmake output.pdf
。実行すると、次のような結果が出ました。
Can't open %.tex: No such file or directory.
どのようにコマンド%.tex
に渡すことができますか?$(shell)
私はGNU makeを使用しています。
答え1
おそらくあなたが望むものは依存関係をリストするファイルを生成することによってよりよく解決することができ、その後include
Makefile内で生成することができます。これはCとC ++のメイクファイルの一般的なパターンです。
SOURCES=foo.tex bar.tex
all: $(SOURCES:.tex=.pdf)
%.dep: %.tex
perl -lne 'print "$*.pdf: $$1\n" if /\\input{([\w-]+\.tex)}/' <$< >$@
include $(SOURCES:.tex=.dep)
おすすめの本:前提条件の自動生成生産マニュアルにあります。