如何从初始化文件(latexmkrc)更改 \input 路径以在大型项目上运行 latexand 和 latexdiff?

如何从初始化文件(latexmkrc)更改 \input 路径以在大型项目上运行 latexand 和 latexdiff?

我正在做一个项目来比较,比如说,“Old/main.tex”和“New/main.tex”,这两个项目被认为是两个大的 LaTeX 项目,需要多次调用 \input{}。为此,我在两个文件上使用 latexand 创建扁平版本“old.tex”和“new.tex”,然后使用 latexdiff 来比较它们。这两项操作都可以通过 latexmkrc 文件实现,其中包含以下几行(顺便说一下,latexdiff 和 latexand 包含在 TeXLive 中,因此您可以在 Overleaf 上尝试此操作):

$pdflatex = "
latexpand New/main.tex > new.tex; 
latexpand Old/main.tex > old.tex;
latexdiff old.tex new.tex > main-d.tex;
pdflatex %O main-d.tex"

然而,存在一个问题:从另一个项目导入这些主文件时,需要手动更改所有文件上的 \input 路径以包含 New/(Old/)文件夹结构。

例如,假设“Old/main.tex”中的 main.tex 实际上是从另一个项目(连同其配套文件)导入的,而该项目的 \input{}、\includegraphics{}、\bibliography{} 并未考虑到整个项目将来会移入“Old/”子文件夹(假设“New/main.tex”文件也是如此)。有没有一种简单的方法可以改变路径通过 latexmkrc 文件执行所有这些命令在调用 latexand 之前?。

相关内容