我有一个 LaTeX 文档,它分为多个文本文件,位于不同的文件夹中,如下所示:
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}
\input{foo/2}
\section{Bar}
\subsection{Bar1}
\input{bar/1}
等等。假设,在Foo2
子部分中,我必须插入一个图像。我如何才能知道LaTeX
在当前打开的文件所在的目录中查找图像(即foo
),以便在文件内部2
我可以写入:
\includegraphics{baz}
我可以将特定部分的所有图像放在该部分的输入文本文件的文件夹中吗?
答案1
您可以使用
\graphicspath{{foo}}\input{foo/1}
..
\graphicspath{{bar}}\input{bar/1}
答案2
有多种方法可以解决这个问题,具体取决于目录的布局方式。如果你的目录树看起来像
-foo
-foo1.tex
-foo2.tex
-baz.pdf
-baz.eps
-bar
-bar1.tex
-qux.pdf
foo
其中和目录中的文件bar
具有唯一名称,那么您可以指定TEXINPUT
环境变量以包含子目录。如何设置的细节取决于TEXINPUTS
您的发行版(例如 TeXLive 或 MikTeX)和操作系统(例如 Windows 或 Linux)。在我看来,这是理想的设置,因为您告诉了tex
在哪里查找文件。在这种情况下,您的“主”文件将如下所示
\section{Foo}
\subsection{Foo1}
\input{foo1}
\subsection{Foo2}
\input{foo2}
\section{Bar}
\subsection{Bar1}
\input{bar1}
在这种情况下,您还可以使用它\graphicspath
来设置查找图像的目录。在这种情况下,主文件将如下所示
\graphicspath{{foo}{bar}}
\section{Foo}
\subsection{Foo1}
\input{foo/foo1}
\subsection{Foo2}
\input{foo/foo2}
\section{Bar}
\subsection{Bar1}
\input{bar/bar1}
如果你的目录树看起来像
-foo
-1.tex
-2.tex
-baz.pdf
-baz.eps
-bar
-1.tex
-qux.pdf
-baz.pdf
-baz.eps
foo
如果和目录中的文件bar
没有唯一名称,则无法指定TEXINPUT
环境变量,因为它不知道您要查找哪个文件。您仍然可以使用\graphicspath
,但必须在每个 之前设置它\input
\graphicspath{{foo}}
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}
\input{foo/2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\input{bar/1}
您还可以使用import
包裹。
\section{Foo}
\subsection{Foo1}
\import{foo/}{1}
\subsection{Foo2}
\import{foo/}{2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\import{bar/}{1}
import
如果您的目录是嵌套的,那么包的事情就会变得有点棘手。