用 svg-inkscape 替换 svg 以摆脱 subfig

用 svg-inkscape 替换 svg 以摆脱 subfig

我想将 SVG 图像包含到我的 LaTeX 文档中。我还想将其用于subcaption子图。我使用以下文件夹结构:

  • <project path>/Document/document.tex对于文档本身
  • <project path>/Pics/*.svg对于图像

我尝试了该包svg,但是它会自动加载subfig,这与不兼容subcaption

所以我尝试使用svg-inkscape

\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}%
}

要使用它,必须使用以下语法:

\begin{figure}
\def\svgwidth{\columnwidth}
\includesvg{image}
\end{figure}

它可以工作,但是在从如下定义的相对路径加载图像时会出现问题:

\graphicspath{{../Pics/}}

../Pics/我可以通过在每个文件名前面放置来解决这个问题。

我需要如何更改建议的宏svg-inkscape执行以下操作?

  • 使用中定义的路径\graphicspath{}
  • \includesvg{width=...}{<path to svg file>}使用与svg(删除\def\svgwidth{\columnwidth}并添加{width=...}\includesvg)相同的语法

修改svg以删除依赖关系subfig不是一个选择,因为我的文档需要与其他 LaTeX 安装兼容。

相关内容