\graphicspath 用于 Inkscape pdf_tex 文件

\graphicspath 用于 Inkscape pdf_tex 文件

为了撰写讲义,我将图片放在名为“image”的子目录中。在main.tex文件中我添加了\graphicspath{{image/}}以下内容:

\newcommand{\executeiffilenewer}[3]{%
 \ifnum\pdfstrcmp{\pdffilemoddate{#1}}%
 {\pdffilemoddate{#2}}>0%
 {\immediate\write18{#3}}\fi%
}

\newcommand{\includesvg}[1]{%
 \executeiffilenewer{#1.svg}{#1.pdf}%
 {inkscape -z -D --file=#1.svg %
 --export-pdf=#1.pdf --export-latex}%
 \input{#1.pdf_tex}%
}

以包含pdf_tex文件。

main.tex文件中我通过以下方式插入 SVG 文件:

\begin{figure}
\input{filename.pdf_tex}
\end{figure}

但我收到以下错误:

! LaTeX Error: File `relativeposition.pdf_tex' not found.

谁能告诉我该怎么做才能将所有 SVG 文件保存在图像子目录中并从中输入它们main.tex

答案1

一个快速的 hack,可以让你编写

\svginput{relativeposition.pdf_tex}

考虑到所有用定义子路径\graphicspath是添加

\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\svginput}{m}
 {
  \tl_map_inline:cn { Ginput@path }
   {
    \InputIfFileExists{##1#1}{ \tl_map_break: } { }
   }
 }
\ExplSyntaxOff

到您的文档序言中。

但是,如果只定义了一个子目录,\graphicspath那么定义

\newcommand{\svginput}[1]{\input{image/#1}}

您只需添加image(或您想要赋予子目录的名称)。

相关内容