要将 .pdf_tex 文件包含在文档中,需要两个文件:.pdf_tex 文件和 .pdf 文件。虽然 .pdf_tex 文件可以放在任何文件夹中,但 .pdf 文件必须位于同一个 .tex 文件目录中。有没有办法让这两个文件都放在同一个子文件夹中?
例子:
\begin{figure}[h]
\def\svgscale{0.3}
\input{fig/ef1-4-1.pdf_tex}
\caption{Immagine creata con Inkscape}
\label{fig:your image label}
\end{figure}
答案1
可能性 1:
您可以将其添加\graphicspath{./fig/}
到您的文档中。这会将子文件夹添加到 tex 查找图像的位置。例如,如果您将此命令添加到您的序言中,您可以仅通过其名称来包含此文件夹中的所有图像,而不必每次都写出它们的路径。
可能性 2:
或者您可以编辑ef1-4-1.pdf_tex
。它应该有一行或多行
\put(0,0){\includegraphics[width=\unitlength,page=1]{ef1-4-1.pdf}}%
替换为
\put(0,0){\includegraphics[width=\unitlength,page=1]{./fig/ef1-4-1.pdf}}%
答案2
您可以使用包import
并使用\import
if\input
来加载.pdf_tex
文件:
\begin{figure}[h]
\def\svgscale{0.3}
\import{fig/}{ef1-4-1.pdf_tex}
\caption{Immagine creata con Inkscape}
\label{fig:your image label}
\end{figure}
请注意,该命令有两个参数,而不是一个。第一个参数是目录,第二个参数是文件名。该命令会通过第一个参数扩展文件和图形文件的搜索路径,然后使用新的搜索路径加载文件。\inlcudegraphics
加载文件中的 -commands 也会使用扩展的搜索路径。
您也可以\graphicspath
在加载.pdf_tex
文件之前进行更改,而不是使用包import
:
\begin{figure}[h]
\def\svgscale{0.3}
\graphicspath{{fig/}}
\input{fig/ef1-4-1.pdf_tex}
\caption{Immagine creata con Inkscape}
\label{fig:your image label}
\end{figure}
但这只适用于一个输入层级。如果你有文件位于另一个文件的子文件夹的子文件夹中,则此方法无效。