.pdf_tex 和 .pdf 目录

.pdf_tex 和 .pdf 目录

要将 .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并使用\importif\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}

但这只适用于一个输入层级。如果你有文件位于另一个文件的子文件夹的子文件夹中,则此方法无效。

相关内容