在 VSCode 中更改构建根目录

在 VSCode 中更改构建根目录

末日审判:如何将构建根更改为与主 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.jsonvscode

{
  "latex-workshop.latex.outDir": "%WORKSPACE_FOLDER%"
}

默认值为,%DIR%这意味着根文件的目录(在本例中例如main_file1.tex)是启动编译器的目录。%WORKSPACE_FOLDER%将编译工作目录更改为工作区文件夹。

参见LaTeX 研讨会文档

相关内容