依赖于 latexmk 对另一个文件的“编译”

依赖于 latexmk 对另一个文件的“编译”

我接到一个项目,要制作一份包含cover.tex和 的论文文档main.texcover.tex生成符合机构风格的必要封面。 该文件从导入main.tex页面。cover.tex\includepdf[pages=-]{cover.pdf}

有没有一种方法,使用latexmk(我已经在使用makeglossaries),在构建主文档时自动生成封面 PDF?

答案1

只需定义一个自定义依赖项来调用 latexmk 从相应的 .tex 文件创建 .pdf 文件(例如 cover.pdf):

add_cus_dep( 'tex', 'pdf', 0, 'makeexternaldocument' );
sub makeexternaldocument {
    my ($base_name, $path) = fileparse( $_[0] );
    return system "latexmk", "-output-directory=$path", $_[0];
}

这里唯一的复杂之处是确保 latexmk 将生成的 .pdf 文件与 .tex 文件放在同一目录中,这是自定义依赖项的定义所要求的。

答案2

考虑使用构建自动化工具,例如 GNU Make。一个简单的构建自动化工具Makefile如下:

all: main.pdf

main.pdf: cover.pdf

%.pdf: %.tex
    latexmk -pdf $<

clean:
    latexmk -CA

make如果需要,使用我们构建的命令,cover.pdf然后main.pdf分别使用模式规则 %.pdf: %.tex使用 来构建文件latexmk

相关内容