末日审判:如何将构建根更改为与主 tex 文件不同的路径。
使用 VSCode 和 Latex-workshop 扩展,我想编译一个文档。我的文件夹结构如下:
/workspace_folder/
main_files/
main_file1.tex
main_file2.tex
...
included_files/
included_file1.tex
included_file2.tex
...
主文件由以下内容组成:
\documentclass{article}
\begin{document}
\input{included_files/included_file1.tex}
\input{included_files/included_file2.tex}
\input{included_files/included_file3.tex}
\end{document}
而典型的included_file.tex
只包含一些文本和内容。每当我尝试从中运行其中一个主文件时,我都会收到错误:文件“included_files/included_file1.tex 未找到”。当将该主文件移动到根目录workspace_folder
并从那里运行时,我没有看到任何问题。问题是:我如何让 latex workshop 从主工作区文件夹中查找子文件夹?
答案1
正如评论中提到的,你可以尝试\input{../included_files/include_file1.text}
。我自己还没有尝试过,但猜想它应该可以与一起使用\input
。
由于您的两个带有main_files
和的目录included_files
似乎位于同一级别,因此您必须首先以两个前导点向后/向上一级。
这应该适用于大多数操作系统。在 Windows 上我不确定,但由于您的文件路径使用常规斜杠表示目录,因此您似乎使用了 Unix 操作系统,应该可以正常工作。
编辑: 原作者在评论中说,它可以在他的本地机器上运行,但不能在 Overleaf 上运行。我没有使用 Overleaf 的个人经验,但从逻辑上讲,如果你不能向上“移动”一个方向来更改目录,那么你必须调整目录结构,以便可以访问文件。我建议将你的included_files/
文件夹创建为子目录main_files/
:
/workspace_folder/
main_files/
main_file1.tex
main_file2.tex
...
included_files/
included_file1.tex
included_file2.tex
...
然后您可以使用初始命令输入文件\input{included_files/included_file1.tex}
。
如果 Overleaf 上也无法实现这样的文件夹结构,那么您必须检查有关该主题的具体规则。
答案2
将其添加到settings.json
vscode
{
"latex-workshop.latex.outDir": "%WORKSPACE_FOLDER%"
}
默认值为,%DIR%
这意味着根文件的目录(在本例中例如main_file1.tex
)是启动编译器的目录。%WORKSPACE_FOLDER%
将编译工作目录更改为工作区文件夹。