为了撰写讲义,我将图片放在名为“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
(或您想要赋予子目录的名称)。