Latex Makefile 没有看到包含文件中的更改

发布于 2024-11-30 04:38:18 字数 702 浏览 2 评论 0原文

我有一个 Makefile 模板来生成我的乳胶文档,但有一个我不明白的问题...

我的主乳胶文件包括位于 ./includes/ 中的其他乳胶文件。问题是每当我对这些文件之一进行修改时,MAKE 就看不到它并且不会重新编译。

Makefile 的相关部分是这样的:

DOC ?= report.tex
PDF := $(DOC:.tex=.pdf)

INCLUDES ?=

IMG_DIRS ?= img

IMG_FILES := $(wildcard $(IMG_DIRS)/*.svg $(IMG_DIRS)/*.png)

IMG_EPS := $(patsubst %svg, %eps, $(patsubst %png, %eps, $(IMG_FILES)))

all: pdf

pdf: $(DOC) $(INCLUDES) $(BIBLIOS) $(STYLES) $(IMG_FILES) $(IMG_EPS) $(PDF)

%pdf: %tex
    $(TEX) '$(PWD)/$<'
    $(BIB) '$(PWD)/$(shell basename $(DOC) .tex)'
    $(TEX) '$(PWD)/$<'
    $(TEX) '$(PWD)/$<'

$(INCLUDES) 是 mane 目标的依赖项,因此应该重新编译。我尝试了很多配置,但结果相同。

只是我缺少一些东西,谢谢您的启发。

I had a Makefile template to generate my latex documents, but there is an issue I don't understand...

My main latex file include other latex files located in ./includes/. The thing is whenever I make a modification in one of these files MAKE just don't see it and won't recompile.

The relevant part of the Makefile is this :

DOC ?= report.tex
PDF := $(DOC:.tex=.pdf)

INCLUDES ?=

IMG_DIRS ?= img

IMG_FILES := $(wildcard $(IMG_DIRS)/*.svg $(IMG_DIRS)/*.png)

IMG_EPS := $(patsubst %svg, %eps, $(patsubst %png, %eps, $(IMG_FILES)))

all: pdf

pdf: $(DOC) $(INCLUDES) $(BIBLIOS) $(STYLES) $(IMG_FILES) $(IMG_EPS) $(PDF)

%pdf: %tex
    $(TEX) '$(PWD)/
lt;'
    $(BIB) '$(PWD)/$(shell basename $(DOC) .tex)'
    $(TEX) '$(PWD)/
lt;'
    $(TEX) '$(PWD)/
lt;'

$(INCLUDES) is a dependency for the mane target so it should recompile. I have tried many configurations with the same result.

There is just something I'm missing, thanks to enlighten me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

书信已泛黄 2024-12-07 04:38:18

您的 $(INCLUDES) 变量将扩展为空(它是空的)。它应包含 .pdf 包含的文件列表。

以下代码使用 includes/ 目录中的所有 .tex 文件对其进行初始化:

INCLUDES := $(wildcard includes/*.tex)

Your $(INCLUDES) variable expands to nothing (it is empty). It should contain a list of files included by the .pdf.

The following initializes it with all .tex files from includes/ directory:

INCLUDES := $(wildcard includes/*.tex)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文