Inkscape“PDF + Latex”导出

7
我正在使用inkscape制作矢量图形,将它们保存为SVG格式以便以后导出为“PDF + Latex”,这与TUG inkscape+pdflatex指南非常相似。然而,尝试制作一个简单的图形却非常令人沮丧。第一个图形enter image description here是我想要导出为“PDF + Latex”形式的示例(在此以PNG格式显示)。如果我将其导出为不带latex宏的PDF图形,则产生的PDF看起来完全相同,除了用于呈现文本的字体有些微小的差异。当我尝试使用“PDF + Latex”选项导出时,生成的PDF文件包括两页PDF文档(在此再次以.png格式显示):enter image description here
当编译我的latex文档时,这显然不好看。到目前为止,TUG的指南非常有帮助,但我仍然无法从inkscape中生成一个有效的“PDF + Latex”导出文件。
我做错了什么?

1
我遇到了同样的问题。我刚刚升级到inkscape 0.91,之前正确导出的图形现在变成了2页PDF文件。有解决方案吗? - weymouth
此功能已不再出现问题:https://gitlab.com/inkscape/inkscape/merge_requests/13(此提示来自https://tex.stackexchange.com/users/31788/vog) - Cadoiz
4个回答

7

我解决了这个问题,把所有文本放在图形的顶部

选择 文本 然后 对象 -> 提高到顶部

Inkscape 只有在文本位于其他对象下方时才会生成单独的页面。


2
成功了!我在所有图层的顶部创建了另一层,并将所有文本推到了最顶层。 - jcchuks

4
我在Inkscape在线讨论页面上提出了这个问题,并从其中一位用户那里得到了一些非常有帮助的指导。这是一个已知的bug https://bugs.launchpad.net/ubuntu/+bug/1417470,它在试图修复先前的bug https://bugs.launchpad.net/inkscape/+bug/771957时无意中引入了Inkscape 0.91中。似乎这个bug会做两件事情:
  1. *.pdf_tex文件将有一个额外的\includegraphics语句,需要手动删除,如上面bug链接中所述。
  2. *.pdf文件可能会分成多个页面,而不管图像的大小。在我的情况下,线条对象被拆分到它们自己的页面上。我通过关闭文本对象(透明度为零),然后执行标准PDF导出来解决这个问题。

1
一个补丁在一周前合并了 https://gitlab.com/inkscape/inkscape/merge_requests/13 好耶! - astrojuanlu
为了避免多页上的错误,您可以在shell脚本中使用以下命令,其中${PDFFILE}_tex对应于.pdf_tex文件的路径: sed -i 's/\\/\n/g' ${PDFFILE}_tex; MAXPAGE=$(pdfinfo $PDFFILE | grep -oP "(?<=Pages:)\s*[0-9]+" | tr -d " "); sed -i "/page=$(($MAXPAGE+1))/,${/page=/d}" ${PDFFILE}_tex; - Zach

3
如果您可以执行Linux命令,那么这个操作是可行的:
# Generate the .pdf and .pdf_tex files
inkscape -z -D --file="$SVGFILE" --export-pdf="$PDFFILE" --export-latex

# Fix the number of pages
sed -i 's/\\\\/\n/g' ${PDFFILE}_tex; 
MAXPAGE=$(pdfinfo $PDFFILE | grep -oP "(?<=Pages:)\s*[0-9]+" | tr -d " "); 
sed -i "/page=$(($MAXPAGE+1))/,\${/page=/d}" ${PDFFILE}_tex; 

使用以下命令:

  • $SVGFILE:svg文件的路径
  • $PDF_FILE:pdf文件的路径

可以将这些命令包含在脚本中,并在编译tex文件时自动执行它(这样每次修改svg时就不必手动从inkscape导出了)。


0

尝试使用较窄的插图。

或者,使用更宽的纸张宽度设置。


我遇到了同样的问题,与纸张宽度无关。插图非常小,完全在纸张内部。它将插图分成两个部分 - 一个用于箭头,另一个用于形状。有什么建议吗? - weymouth
是的,这事实证明是一个版本特定的问题。 - weymouth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接