gpt4 book ai didi

makefile - LaTeX 的 make 的递归使用

转载 作者:行者123 更新时间:2023-12-02 21:37:15 25 4
gpt4 key购买 nike

我正在使用 Makefile 来处理构建 LaTeX 文档。我有两个目录 ./tikz./feyn,其中包含 .tex 文件和用于编译它们的 Makefile。他们生成数据,然后我将其包含在主文档中。我使用以下 Makefile 来编译主文档:

.PHONY : tikz feyn

main.pdf : main.tex feyn tikz
pdflatex main.tex

tikz :
$(MAKE) -C tikz

feyn :
$(MAKE) -C feyn

问题是,即使 main.pdf 是最新的,运行 make 仍然会执行其规则,因为虚假目标永远不会是最新的。但是,如果我不将 tikzfeyn 声明为虚假,它们的规则将不会被执行。我该如何解决这个问题?

最佳答案

这取决于您想在目录 feyntikz 中做什么。我猜想在 tikz 中您想生成一些 PDF。只需使用实际文件作为依赖项即可。例如,

main.pdf : main.tex feyn tikz
pdflatex main.tex

tikz : tikz/somefile.pdf

tikz/somefile.pdf:
$(MAKE) -C tikz

# etc.

另一种方法是使用订单目标将 main.pdf 与虚假目标分离:

.PHONY : tikz feyn

main.pdf : main.tex | feyn tikz
pdflatex main.tex

tikz :
$(MAKE) -C tikz

feyn :
$(MAKE) -C feyn

all: feyn tikz main.pdf

关于makefile - LaTeX 的 make 的递归使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16582041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com