如何仅输出来自 latexmk 的依赖项?

如何仅输出来自 latexmk 的依赖项?

我想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

相关内容