对 \include 命令使用相对路径

对 \include 命令使用相对路径

我有一个顶层乳胶文件:/thesis.tex

以及包含章节的子文件夹:/chap1/ch1.tex

thesis.tex使用\include如下命令:

\include{chap1/ch1}

并且ch1.tex我在本章的各个部分中还包含了更多内容:

\include{introduction}

ch1.tex文件及其包含的所有部分都使用如上所述的相对路径(这是一个独立文档,现在是更大的 thesis.tex 文档的一章)。我意识到我必须修复包含语句中的所有路径ch1.tex及其部分,以将主文档目录视为根目录:

\include{chap1/introduction}

还有其他方法吗?我是否必须以这种方式浏览并更改所有包含和图形引用,或者有没有办法告诉所有此类链接在 ch1 中使用相对路径?

答案1

最好使用相对路径,这样即使你移动整个目录树,一切仍能正常工作。因此使用

\newcommand*{\MyPath}{../thesis}%
\input{\MyPath/chap1/ch1.tex}

假设您的文件如下:

<some path>/thesis/thesis.tex
<some path>/thesis/chap1/ch1.tex
<some path>/thesis/chap2/ch2.tex

所有文件都是相对于它们相对于论文目录。

我非常确定您需要更新所有\input语句,但这样,如果您决定更改顶级目录或将其移动到某处,它就会变得灵活。

答案2

我知道这个问题已经很老了,但由于这篇文章是 tex.sx 上的第一篇,我发现它可能会有所帮助。

正如 Martin 所建议的,解决问题的方法是使用导入包,如如何使用导入包?

答案3

像我一样将此添加为单独的答案不是建议使用此方法,因为它可能比它值得做的还要多,即修改输入宏以在目录列表中搜索文件并包含该文件。这样做的好处是您不需要更改每个单独的文件,并且允许您移动文件而它们仍能正常工作。

如果你决定采用这种方法,这个问题如何迭代文件夹中文件的名称可能会有帮助。

相关内容