使用 Makefile 生成 TeX 文件时出错

使用 Makefile 生成 TeX 文件时出错

我正在尝试创建一个Makefile可生成我的文档的文件。

➜  resume git:(main) ✗ cat Makefile 
.PHONY: .

CC = xelatex
CURRENT_DIR = .
RESUME_DIR = ./src
RESUME_SRCS = $(shell find $(RESUME_DIR) -name '*.tex')

resume: $(CURRENT_DIR)/resume.tex $(RESUME_SRCS)
        $(CC) -output-directory=$(CURRENT_DIR) $<

clean:
        rm -rf $(CURRENT_DIR)/*.pdf

然而,尽管 PDF 已成功生成,我仍不断收到以下错误:

(./src/education.tex) (./src/extracurricular.tex) [2] (./resume.aux) )
Output written on ./resume.pdf (2 pages).
Transcript written on ./resume.log.
make: *** [Makefile:9: resume] Error 1

是不是哪里出了问题Makefile?我找了好久都没找到原因。

答案1

我猜你的成绩单中遗漏了一些东西。查看你提供的 makefile 和代码片段,我猜发生的事情是你试图在 src 目录中不是顶级 LaTeX 文件的文件上运行 xelatex,这就是你收到错误的原因。老实说,我不知道 make 是否是一种适用于 LaTeX 的工具——与 C 不同,在 C 中你要将多个.c文件编译成.o文件,然后将它们链接到最终的可执行文件中,而 LaTeX 输出的生成是直接编译单个顶级文件(可能运行多次)。话虽如此,如果你真的想尝试使用 makefile 来达到你的目的,我会将 的定义替换为RESUME_SRCS

RESUME_SRCS = ./src/resume.tex

你应该得到期望的结果。

当 Make 在 LaTeX 流程中有意义时

使用 Make 之类的工具可能有意义的情况是,当您拥有以编程方式生成的文件,这些文件构成 LaTeX 文档的输入时。例如,您可能需要进行一些预处理来生成插图。然后,在这种情况下,makefile 只能在底层数据文件发生变化时重新生成插图,然后运行 ​​LaTeX。

相关内容