在包含子目录中的文件时更改工作目录

在包含子目录中的文件时更改工作目录

我正在编写一本数学杂志,里面有来自不同作者的多篇文章。我想给每篇文章一个子目录,在其中存储所有相关文件 - .tex、图像文件等。但是,当我从\include主文件中获取文章 .tex 文件时,如果不进行编辑,图像将无法正确链接。

例如,假设文章存储在articles/article1/matrix.png 中,其中包含一个图像。在文章 .tex 文件中,通常会通过 插入该图像\includegraphics{matrix.png}。但是,当我们通过主文件将文章包含在杂志中时,所有这些实例都必须更改为\includegraphics{articles/article1/matrix.png}

那么,在包含文章之前是否可以更改 LaTeX 工作目录,这样就\includegraphics不必更改实例,而是让 LaTeX 知道在文章目录中搜索这些文件?我认为这在功能上与 HTML 的链接 base href 命令类似。

或者,有没有更好的方法来实现这一切?

答案1

尝试

\graphicspath{{articles/article1/}}

之前\include

答案2

如果您想要包含的不仅仅是图形,您还可以使用环境变量TEXINPUTS并在调用 Latex 处理器之前对其进行优化:

TEXINPUTS=.:graphics:articles/article1:articles/article2:../../something/somewhere/else:$TEXINPUTS pdflatex main.tex

最后的 $TEXINPUTS 调用虽然通常是空的,但仍然是必需的,否则正常的 TeX 路径就会消失。

这将添加所有这些路径,以便\imput{file}\include{file}\includegraphics{file}甚至\usepackage{file}会在给出错误消息之前在这些文件夹中搜索以找到适当的文件file not found

相关内容