子文件无法可靠地找到 `main.tex`

子文件无法可靠地找到 `main.tex`

最小的工作示例再简单不过了:我有一个main.tex如下文件:

\documentclass{article}

\usepackage{subfiles}

\begin{document}
    \subfile{Subfiles/subfile}
\end{document}

以及子目录内的子文件 ( Subfiles/subfile):

\documentclass[../main]{subfiles}

\begin{document}
    Hello, world!
\end{document}

当我使用 LaTeX-Workshop VSCode 扩展进行编译时main.tex,一切都很顺利,我得到了我期望的结果。但是,对于子文件来说,情况有点复杂:一开始,它确实有效。但在另一次编译之后,它突然找不到../main.tex。如果我随后将其更改../main.tex为 just ./main.tex(这似乎没有意义),它会在一次或几次编译中再次起作用,然后我必须再次改./main.tex../main.tex才能使其工作。我不确定如何看待这种半可靠的行为。这是错误:

Latexmk: Missing input file '../main.tex' (or dependence on it) from following:
  ! LaTeX Error: File `../main.tex' not found.

答案1

编译时-cd使用选项。这告诉在编译之前将目录更改为包含的目录。然后该行将被按预期解释:该文件位于相对于的父目录中。latexmksubfile.texlatexmksubfile.tex\documentclass[../main]{subfiles}main.texsubfile.tex

如果您不使用该-cd选项,并且您(或 VSCode)没有将工作目录设置为subfile.tex,那么编译将在工作目录的父目录中寻找,main.tex而不是在正确的位置。

相关内容