我最近安装了 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 in terns 调用ghostscript
使用flag从DELAYBIND
转换LaTeX
为SVG
. 但在较新版本中ghostscript
该标志DELAYBIND
已被弃用。解决方案是降级ghostscript
到或低于 9.20 版本。以下是我尝试降级ghostscript
但没有成功的方法。
从 apt 或 apttitute 降级 ghostscript
我尝试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
我尝试了其他版本,例如 9.20 的 ghost 脚本。没有任何效果。
从 ghostscript 网站安装:
我已经ghostscript
从下载ghostscript website
,并使用以下命令安装
sudo ./configure
sudo make
sudo make install
似乎安装完成了,但是如果我正在运行命令
ghostscript --version
它显示版本为 9.22。
我能找到的所有在线解决方案都指向降级ghostscript
. 但我不知道如何在 Ubuntu 18.04 中做到这一点。
有什么解决办法吗?
假设您使用 Latex Inkscape 插件texText,它除了支持 ghostscript+pstoedit 之外的 pdf2svg。因此,对于 Ubuntu 18.04,安装 pdf2svg 可以解决问题
它适用于 Ubuntu 18.04、InkScape 0.92。
在这种特定情况下,从源代码构建 pstoedit 并不能解决问题,因为默认情况下不包含 svg 后端(如上文所述)。因此,我建议将 ghostscript 更新到 9.23 版本。
从https://www.ghostscript.com/download/gsdnld.html下载并解压 ghostscript 源码包后,进入源码目录并执行以下三个命令:
这只是覆盖了现有的 ghostscript 版本,然后就不需要摆弄依赖关系了。
如果由于新的 gs 版本而在其他地方遇到问题,您可以通过以下方式轻松切换回来
该方案的缺点是系统安装的ghostscript的安全更新会覆盖你的安装,需要重新安装。但是,只要没有可用的预构建二进制文件,这可能是第一个解决方法
使用 pstoedit 将 EPS 转换为 DXF 文件时遇到了同样的问题。无需降级ghostscript!
最简单的解决方案
-rdb
。一步步
sudo apt-get remove pstoedit
安装新的 pstoedit:
跑:
使用 -rdb 标志运行:
-rdb
标志。pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
对于不想编译更新
pstoedit
或降级的人ghostscript
,还有第三种选择:Nix 包管理器。它适用于 Mac、Linux 和 Windows 10,因此这是一个跨平台的解决方案。一旦你安装了 Nix 并且它在你的PATH
.nix-env -i pstoedit
.Inkscape 中的 LaTeXing 快乐!
9.18 版本位于 xenial (16.04) 存档中。如果要安装它,则必须将 xenial 存储库添加到
sources.list
文件中:然后你应该能够看到可用的版本
apt-cache madison ghostscript
并安装
sudo apt-get install ghostscript=9.18~dfsg~0-0ubuntu2
对我来说,安装后它可以工作
pstoedit
: