我接到一个项目,要制作一份包含cover.tex
和 的论文文档main.tex
。cover.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
。