我想latexmk
在 Makefile 中使用,所以我阅读了手册中关于这方面的部分。但是,依赖项生成步骤似乎不太理想。具体来说,似乎latexmk
只有在完全构建输出文件后才能显示依赖项(在我的情况下这可能需要很长时间)。有没有办法latexmk
只将输出依赖项输出到文件而不将实际输出文件标记为最新?
我尝试在 Makefile 中使用以下规则,但它似乎将输出文件标记为最新。我还认为它可能会运行多次(或认为它已失败),具体取决于日志文件中的内容。
%.d: %.tex
@echo "Generating $@ from $<"
@set -e; \
$(LATEXMK) -M -MF $@ -quiet -pdf \
-pdflatex="echo Generating dependencies from %T" $<
答案1
@tohecz:你是对的。
问题在于依赖关系以复杂的方式依赖于 TeX 文件的详细内容(以及它调用的所有文件,包括类文件和样式文件)。确定依赖关系的唯一简单方法是运行pdflatex
(或latex
根据需要),然后分析生成的文件(相关的是.fls
、.log
和.aux
文件)。如果.tex
文件发生变化,则.pdf
和依赖关系信息都会同时过期。
因此,如果您要运行pdflatex
以确定依赖项,则会产生一个新.pdf
文件作为副作用。因此,尝试更新依赖项信息而不更新文件是没有意义的.pdf
。