我最近安装了 Ubuntu 18.04(不是升级,而是全新安装)。在 Ubuntu 18.04 中,Inkscape 中的渲染 LaTeX 功能不起作用。以下是错误输出:
*** WARNING - the DELAYBIND command has been deprecated, and will be
removed in the next version. For now you can restore
the behaviour by using -dREALLYDEALYBIND but if you
require continued use of this command you should contact
the Ghostscript developers. Commercial customers of
Artifex should email their support contact, free users
are encouraged to talk to us on the #ghostscript IRC
channel on irc.freenode.net.
Unrecoverable error: undefined in DELAYBIND
PostScript/PDF Interpreter finished. Return status 65280 executed command : /usr/bin/gs -q -dDELAYBIND -dWRITESYSTEMDICT -dNODISPLAY -dNOEPS "/tmp/psin5eNNQ0"
The interpreter seems to have failed, cannot proceed !
Traceback (most recent call last):
File "eqtexsvg.py", line 160, in <module>
e.affect()
File "/usr/share/inkscape/extensions/inkex.py", line 283, in affect
self.effect()
File "eqtexsvg.py", line 154, in effect
svg_open(self, svg_file)
File "eqtexsvg.py", line 81, in svg_open
doc = inkex.etree.parse(filename)
File "src/lxml/etree.pyx", line 3426, in lxml.etree.parse
File "src/lxml/parser.pxi", line 1839, in lxml.etree._parseDocument
File "src/lxml/parser.pxi", line 1865, in lxml.etree._parseDocumentFromURL
File "src/lxml/parser.pxi", line 1769, in lxml.etree._parseDocFromFile
File "src/lxml/parser.pxi", line 1162, in lxml.etree._BaseParser._parseDocFromFile
File "src/lxml/parser.pxi", line 600, in lxml.etree._ParserContext._handleParseResultDoc
File "src/lxml/parser.pxi", line 710, in lxml.etree._handleParseResult
File "src/lxml/parser.pxi", line 639, in lxml.etree._raiseParseError
File "/tmp/inkscape-Y11679/eq.svg", line 1
lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1
从谷歌搜索中,我发现问题是由于 ghostscript 引起的。扩展Render>LaTeX
实际上调用了pstoedit
which ,然后调用ghostscript
使用DELAYBIND
标志将 转换为LaTeX
。SVG
但在较新版本的ghostscript
标志DELAYBIND
中已弃用。解决办法是降级ghostscript
到9.20或以下版本。以下是我尝试过降级ghostscript
但没有成功的方法。
将 ghostscript 从 apt 或 aptitute 降级
我尝试ghostrict
使用以下命令降级。
sudo aptitude install ghostscript=9.18~dfsg~0-0ubuntu2
或者使用
sudo apt install ghostscript=9.18~dfsg~0-0ubuntu2
我得到以下输出
Unable to find a version "9.18~dfsg~0-0ubuntu2" for the package "ghostscript"
或者
E: Version '9.18~dfsg~0-0ubuntu2' for 'ghostscript' was not found
我试过其他版本,比如 ghost script 9.20。但都不起作用。
从 ghostscript 网站安装:
我已经ghostscript
从ghostscript website
,并使用以下命令安装
sudo ./configure
sudo make
sudo make install
看起来安装已经完成,但如果我运行命令
ghostscript --version
显示的版本为 9.22。
我能找到的所有在线解决方案都指向降级ghostscript
。但我不知道如何在 Ubuntu 18.04 中执行此操作。
有什么解决办法吗?
答案1
假设你使用 Latex Inkscape 插件,tex文本,它除了 ghostscript+pstoedit 之外还支持 pdf2svg。因此,在 Ubuntu 18.04 的情况下,安装 pdf2svg 可以解决问题
sudo apt install pdf2svg
它适用于我的 Ubuntu 18.04、InkScape 0.92。
答案2
在这个特定情况下,从源代码构建 pstoedit 并不能解决问题,因为默认情况下不包含 svg 后端(如上所述)。因此,我建议将 ghostscript 更新到版本 9.23。
下载并解压 ghostscript 源代码 tarball 后,https://www.ghostscript.com/download/gsdnld.html进入源码目录,执行以下三条命令:
./configure --prefix=/usr
make
sudo make install
这只是覆盖了现有的 ghostscript 版本,然后就不需要摆弄依赖关系了。
如果你在其他地方遇到由于新 gs 版本而导致的问题,你可以通过以下方式轻松切换回来
sudo apt-get install ghostscript --reinstall
此解决方案的缺点是系统安装的 ghostscript 安全更新将覆盖您的安装,您需要重新安装。但是,只要没有可用的预构建二进制文件,这可能是第一个解决方法
答案3
使用 pstoedit 将 EPS 转换为 DXF 文件时遇到了同样的问题。无需降级 ghostscript!
最简单的解决方案
- 升级 pstoedit
- 使用标志运行 pstoedit
-rdb
。
一步步
- 删除 Ubuntu 当前的 pstoedit:
sudo apt-get remove pstoedit
- 下载最新的 pstoedit:
- 从 Sourceforge 下载最新版本 (https://sourceforge.net/projects/pstoedit/files/latest/download?source=files)
- 解压到您选择的文件夹
安装新的 pstoedit:
- 在终端中打开解压的文件夹(右键单击文件夹→在终端中打开)
跑步:
./configure make sudo make install
使用 -rdb 标志运行:
- 现在,当您运行 pstoedit 时,添加
-rdb
标志。 - 例如:
pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
- 此标志告诉 pstoedit 使用新的“强制”选项使 ghostscript 接受 delaybind 命令。发行说明警告说,这只能对受信任的文件进行,因为它可能会带来安全漏洞。
- 现在,当您运行 pstoedit 时,添加
答案4
9.18 版本位于 xenial (16.04) 档案中。如果要安装它,您必须将 xenial 存储库添加到您的sources.list
文件中:
sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe"
然后你就可以看到可用的版本了apt-cache madison ghostscript
ghostscript | 9.18~dfsg~0-0ubuntu2 | http://archive.ubuntu.com/ubuntu xenial/main amd64 软件包
并安装sudo apt-get install ghostscript=9.18~dfsg~0-0ubuntu2