Makefile
ファイルからPDFを生成するために使用してい.tex
ます。
私のLaTeXファイルで参照が使用されたとき。時々私は次のようなものを得る
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
LaTeX コンパイル コマンドを再実行するとこの参照の問題を修正できることはわかっていますが、私のMakefile
では に%.pdf
のみ依存しているため、再%.tex
実行するだけでmake
は問題は修正されません (.tex
ファイルは何も変更されていません)。make clean
PDFを再生成するには、を実行する必要があります。
これが私のMakefile
TEX := $(wildcard *.tex)
default: $(TEX:.tex=.pdf)
%.pdf: %.tex
xelatex $<
.PHONY: clean
clean:
rm -v *.aux *.toc *.log *.out
この問題を解決するには?ありがとうございました。
アップデート:
ここに私がGoogleから見つけたいくつかの考えがあります
default
ターゲットを に変更します.PHONY
。これはあまり良い解決策ではありません(そこには多くのラテックスファイルがあり、単一のファイルを再コンパイルするだけでよいためです)%.pdf
の依存関係を include に変更します%.aux
。しかし、GNU makeでそれが可能かどうかわかりませんか? (%.aux
存在する場合はファイルに依存し、存在しない場合は依存関係を無視します%.aux
)- ファイルに対してa
grep
を.log
実行し、特定の警告を見つけます。存在する場合は、コンパイル コマンドを再実行します。