这是如何配置 latexmk 以递归方式工作?(PDF 缩略图)和latexmk 带有外部引用。
首先让我说一下我想要实现的目标。我有一个由多个文件组成的 latex 项目,例如,,,,/myproj/main.tex
其中依赖于并且依赖于。我说的“依赖于”是指我正在使用该包通过在这些文件之间进行交叉引用。例如,在中,我会有。我的目标是设置 latexmk,使其/myproj/a/a.tex
在更改时重新编译。/myproj/b/b.tex
main.tex
a.tex
a.tex
b.tex
xr
\externaldocument
a.tex
\externaldocument{../b/b.tex}
main.tex
b.tex
第一个答案latexmk 带有外部引用提供了一种通知 latexmk 文件之间的依赖关系的方法,方法是将某些内容打印到 stdout 上,然后 latexmk 将捕获这些内容。然后,第一个答案如何配置 latexmk 以递归方式工作?(PDF 缩略图)提供了一种使 latexmk 递归运行的方法。但是,据我所知,当文件放在不同的目录中时,它会失败,原因有两个:
- 后续运行的 latexmk(我通过 调用
latexmk -cd
)不再具有对它的访问权限.latexmkr
,因为现在它位于不同的目录中。 Latexmk
记录../b/b.tex
为 的依赖项main.tex
,这没有意义,因为路径../b/b.tex
是相对于a/a.tex
而不是main.tex
。
为了修复 1.,我进行了修改.latexmkrc
,让它.latexmkrc
在到处复制一个版本(稍后清理)。这不是最好的解决方案,但它确实有效,因为第一次调用时latexmk
,它会编译所有内容。
但是,latexmk
仍然无法检测到 的更改b/b.tex
,我认为这是由于 2。我试图修改latexmk 带有外部引用因此绝对路径从相对路径扩展并打印出来,但是并没有取得太大的成功。
如果有人能提供帮助,我将不胜感激,无论是解决上面提到的问题 2 还是提供一个全新的解决方案。
谢谢!