找不到 tikz 子文件

找不到 tikz 子文件

我有以下项目结构:

./main.tex
./ch1/ch1.tex
./ch1/tikz1/tikz1.tex

main.tex 如下所示:

\documentclass{book}
\begin{document}
\subfile{./ch1/ch1.tex} 
\end{document}

ch1.tex 如下所示:

\documentclass[../main.tex]{subfiles}
\begin{document}
\begin{figure}[H]
\centering
\subfile{./tikz1/tikz1.tex}
\end{figure}
\end{document}

当我运行 ch1.tex 时一切正常,它找到了 tikz1.tex,但是当我运行 main.tex 时它找不到 tikz1.tex。

答案1

除了@MarcoDaniel 的观察结果显示文件\usepackage{subfiles}中缺少该信息之外main.tex,由于相对路径的存在,编译文档的方式也存在问题。

编译时 main.tex,在latex中查找,在 中查找。编译时(可能从其包含目录 中查找),在中查找。显然,这两者都不可能正确,除非您维护 的两个副本,但这有点违背了目的。<maindir>/ch1/ch1.tex<maindir>/tikz1/tikz1.texch1.tex<maindir>/ch1/latex<maindir>/ch1/tikz/tikz1.textikz1.tex

有多种方法可以解决这个问题:

  1. 扁平化目录结构(根据文件数量可能没问题)
  2. 使用绝对路径(出于可移植性原因不推荐)
  3. 编译时./ch1/ch1.texpdflatex运行的输入。根据您使用的编辑器,可能还有其他方法可以设置主文件以外的文件。<maindir>ch1.tex

答案2

我遇到了类似的问题。它以前可以编译,但在新系统上却不行。

我有一个main.tex和一个Subfolder/firstChapter/subDoc.tex。该文件subDoc.tex有一个包含在路径中的 tikz 子文件Subfolder/anotherFolder/tikz.tex

为了编译,main.tex我必须使用相对路径 from subDoc.texto tikz.tex:../anotherFolder/tikz而不是 from main.texto tikz.tex: Subfolder/anotherFolder/tikz

仔细想想,这完全有道理。也许这个解决方案可以帮到你。

相关内容