我正在使用 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/
是包含您的图形的目录。请根据需要更改此目录,但不要删除尾部的/
。