如何让 LaTeX 自动调用 Inkscape 将图形导出为 *.pdf_tex?

如何让 LaTeX 自动调用 Inkscape 将图形导出为 *.pdf_tex?

我正在使用 Inkscape 进行更新全部书中的图表,使用 PDF+LaTeX 选项导出图表。现在,每次我修改图表时,我都会使用 Inkscape 的 *.svg 和 *.pdf(启用 PDF+LaTeX 选项)“另存为...”。在文档中,图表包含使用:

\begin{figure}
\centering
\def\svgwidth{0.5\textwidth}
\input{my_figure.pdf_tex}
\end{figure}

这很好,但必须以两种格式保存很快就会让人厌烦。我读过svg-inkscape文档中说“每当 SVG 文件更新时,LATEX 都可以自动调用 Inkscape 将图像再次导出为 PDF 并导出为 LATEX。这简化了工作流程 (...)”。

文档说这是可行的,但我无法实现它。有没有办法在 OS X 上做到这一点?我正在使用 OSX 10.9.4、MacTeX 2014 和 Inkscape 0.48,在 TexMaker 或 TexPad 上使用 PDFLaTeX 进行编译。

答案1

您可以使用svg包,它的功能与svg-inkscape文档描述的完全一致。

\documentclass[12pt]{article}
\usepackage{svg}
\setsvg{inkscape=inkscape -z -D,svgpath=fig/}

\begin{document}

\begin{figure}
  \centering
  \includesvg[width=0.5\textwidth]{my-figure}
\end{figure}

\end{document}

现在您需要做的就是将图像保存为 svg 文件,然后pdflatex其余的事情交给我们。

重要的:使用标志编译它--shell-escape,例如pdflatex --shell-escape my-book.tex。看看这个答案这可能会帮助您添加此选项。(TeXstudio 是/曾经是 Texmaker 的一个分支。)

几点:

  • inkscape=inkscape -z -D使 inkscape 导出 svg 绘图,而不是整个页面。inkscape=inkscape -z -C如果您想导出整个页面,请将其更改为(或直接将其删除 - 这是默认行为)。
  • svgpath=fig/是包含您的图形的目录。请根据需要更改此目录,但不要删除尾部的/

相关内容