Недавно я установил Ubuntu 18.04 (не обновление, чистая установка). В Ubuntu 18.04 функция рендеринга LaTeX в Inkscape не работает. Ниже приведен вывод ошибки:
*** 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
Из поиска Google, что я обнаружил, что проблема возникает из-за ghostscript. Расширение Render>LaTeX фактически вызывает pstoedit, которое в terns вызывает ghostscript, используя флаг DELAYBIND для преобразования из LaTeX в SVG. Но в более новой версии ghostscript флаг DELAYBIND устарел. Решение состоит в том, чтобы понизить ghostscript до или ниже версии 9.20. Ниже приведены методы, которые я попытался понизить 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 сценария призрака. Ничего не получилось.
Я загрузил ghostscript из ghostscript website и установил, используя следующую команду
sudo ./configure
sudo make
sudo make install
Кажется установка выполняется, но если я выполняю команду
ghostscript --version
Показывает версию как 9.22.
Все онлайн-решение, которое я могу найти, указывает на понижение рейтинга ghostscript. Но я не знаю, как это сделать в Ubuntu 18.04.
Любое решение?
В этом конкретном случае создание pstoedit из источника не решает проблему, потому что исходный код svg не включен по умолчанию (как уже было описано выше). Следовательно, я предлагаю обновить ghostscript до версии 9.23.
После загрузки и извлечения исходных файлов tarhost из g0] https://www.ghostscript.com/download/gsdnld.html введите исходный каталог и выполните следующие три команды:
./configure --prefix=/usr
make
sudo make install
Это просто перезаписывает существующую версию ghostscript, и тогда вам не нужно возиться с зависимостями.
Если вы столкнулись с проблемами в другом месте из-за новой версии gs, вы можете легко переключиться back by
sudo apt-get install ghostscript --reinstall
Недостатком этого решения является то, что обновления безопасности ghostscript, установленные системой, перезапишут вашу установку, и вам нужно будет переустановить. Однако, пока нет готовых бинарных файлов, это может быть первым обходным решением