配置 latexmk 以递归方式处理位于不同文件夹中的文件

配置 latexmk 以递归方式处理位于不同文件夹中的文件

这是如何配置 latexmk 以递归方式工作?(PDF 缩略图)latexmk 带有外部引用

首先让我说一下我想要实现的目标。我有一个由多个文件组成的 latex 项目,例如,,,,/myproj/main.tex其中依赖于并且依赖于。我说的“依赖于”是指我正在使用该包通过在这些文件之间进行交叉引用。例如,在中,我会有。我的目标是设置 latexmk,使其/myproj/a/a.tex在更改时重新编译。/myproj/b/b.texmain.texa.texa.texb.texxr\externaldocumenta.tex\externaldocument{../b/b.tex}main.texb.tex

第一个答案latexmk 带有外部引用提供了一种通知 latexmk 文件之间的依赖关系的方法,方法是将某些内容打印到 stdout 上,然后 latexmk 将捕获这些内容。然后,第一个答案如何配置 latexmk 以递归方式工作?(PDF 缩略图)提供了一种使 latexmk 递归运行的方法。但是,据我所知,当文件放在不同的目录中时,它会失败,原因有两个:

  1. 后续运行的 latexmk(我通过 调用latexmk -cd)不再具有对它的访问权限.latexmkr,因为现在它位于不同的目录中。
  2. 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 还是提供一个全新的解决方案。

谢谢!

相关内容