我有一个简单的问题。如何在 LaTeX 中访问当前目录之外的文件?我有一个项目,我正在更新并将每天的版本保存在单独的文件夹中。我想有一个不同的文件夹专门用于保存我的辅助 `.tex' 文件、图形和参考书目文件。然后能够从我当前的文件夹访问这些文件。如果这有什么不同的话,我正在使用 Mac。
我的文件夹结构如下:
(用于主 .tex 文件):.../Project/7-21
(用于附加文件):.../Project/Files/
所以我的主文件存储在 /7-21/ 中,而我想要访问的文件位于 /Files/ 中。
答案1
假设您的目录结构如下。
<any folder ignored for the sake of simplicity>/MyFiles/Images/diagram-01.tex
<any folder ignored for the sake of simplicity>/MyFiles/Images/diagram-02.tex
<any folder ignored for the sake of simplicity>/MyFiles/Images/diagram-03.tex
<any folder ignored for the sake of simplicity>/MyFiles/Projects/Report-01/main.tex
<any folder ignored for the sake of simplicity>/MyFiles/Projects/Report-02/main.tex
<any folder ignored for the sake of simplicity>/MyFiles/Projects/Article-01/main.tex
Images
包含将在多份报告之间共享的图表。每份报告或文章都保存在单独的文件夹中,以方便维护。
因此,您可以例如diagram-01.tex
从第一个报告中导入main.tex
如下内容。
% my first report
% main.tex
\documentclass{report}
\begin{document}
\input{../../Images/diagram-01.tex}
\end{document}
或者,如果图表已转换为 PDF 格式,您可以按如下方式将其作为图像导入。
% my first report
% main.tex
\documentclass{report}
\usepackage{graphicx}
\graphicspath{{../../Images/}}
\begin{document}
\includegraphics{diagram-01}
\end{document}
这里\graphicspath
全局声明了路径。顺便说一下,\graphicspath
也可以这样调用
\graphicspath{{../../Images/}{<any path>/}{<any path>/}{<any path>/}<...>}
其中<...>
表示您可以添加更多路径,但<...>
肯定不包括。
笔记
diagram-01.tex
如果您想要从中导入的文件main.tex
是可编译的自包含输入文件,那么您需要docmute
在中加载包main.tex
,这样main.tex
只会导入夹在\begin{document}
和\end{document}
之间的内容diagram-01.tex
。
答案2
对我来说最终有效的方法是简单地使用相对文件路径。
因此,使用我原始答案中的文件路径来访问tab1.tex
,/files
我只需执行以下操作:
../files/tab1.tex
(这与input
和 一起使用includegraphics
。
此外,正如在这个问题的其他地方所看到的,如何使用文件夹包含空格的绝对文件路径仍然没有答案(尽管可以删除实际文件路径中的空格)。但这对我的应用程序来说是不必要的,因为相对文件路径就可以了。