Render LaTeX не работает в Inkscape после установки до 18.04
Я недавно установил 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
который в крачках зовет 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
Я пробовал какую-то другую версию, например 9.20 скрипта-призрака. Ничего не получалось.
Установка с сайта ghostscript:
Я скачал ghostscript
от ghostscript website
и установлен с помощью следующей команды
sudo ./configure
sudo make
sudo make install
Кажется, установка завершена, но если я запускаю команду
ghostscript --version
Это показывает версию как 9.22.
Все онлайн-решения, которые я могу найти, указывают на снижение ghostscript
, Но я не знаю, как это сделать в Ubuntu 18.04.
Любое решение?
6 ответов
Предполагая, что вы используете плагин Latex Inkscape, texText, он поддерживает pdf2svg рядом с ghostscript+pstoedit. Итак, в случае с Ubuntu 18.04 установка pdf2svg решает проблему
sudo apt install pdf2svg
У меня это работает на Ubuntu 18.04, InkScape 0.92.
В этом конкретном случае сборка pstoedit из исходного кода не решает проблему, потому что бэкэнд svg не включен по умолчанию (как уже наблюдалось выше). Поэтому я предлагаю обновить ghostscript до версии 9.23.
После загрузки и распаковки исходного архива ghostscript из https://www.ghostscript.com/download/gsdnld.html войдите в исходный каталог и выполните следующие три команды:
./configure --prefix=/usr
make
sudo make install
Это просто перезаписывает существующую версию ghostscript, и тогда не нужно возиться с зависимостями.
Если вы столкнулись с проблемами в другом месте из-за новой версии GS, вы можете легко переключиться обратно
sudo apt-get install ghostscript --reinstall
Недостатком этого решения является то, что обновления безопасности ghostscript, установленные системой, перезапишут вашу установку, и вам нужно будет переустановить ее. Тем не менее, пока нет готовых двоичных файлов, это может быть первым обходным путем
Просто столкнулся с той же проблемой, используя pstoedit для преобразования EPS в файлы DXF. Нет необходимости понижать ghostscript!
Самое простое решение
- Обновление пстоедит
- Запустите пстоедить с
-rdb
флаг.
Шаг за шагом
- Удалить Ubuntu-текущий pstoedit:
sudo apt-get remove pstoedit
- Скачать последнюю версию пстоедить:
- Загрузить последнюю версию с Sourceforge ( https://sourceforge.net/projects/pstoedit/files/latest/download?source=files)
- Извлечь в папку по вашему выбору
Установите новый пстоедит:
- Откройте извлеченную папку в терминале (щелкните правой кнопкой мыши папку → открыть в терминале)
Бежать:
./configure make sudo make install
Запустить с флагом -rdb:
- Теперь, когда вы запустите pstoedit, добавьте
-rdb
флаг. - Например:
pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
- Этот флаг указывает pstoedit использовать новую опцию 'force', чтобы ghostscript принял команду delaybind. Примечания к выпуску предупреждают, что это следует делать ТОЛЬКО на доверенных файлах, так как это может открыть уязвимости безопасности.
- Теперь, когда вы запустите pstoedit, добавьте
Для людей, не желающих собирать более новые pstoedit
или понизить ghostscript
Существует третий вариант: менеджер пакетов Nix. Он работает в Mac, Linux и Windows 10, так что это кроссплатформенное решение. После того, как вы установите Nix, и это в вашем PATH
, просто делать
nix-env -i pstoedit
,
Счастливого латекса в Inkscape!
Для меня это работает после того, как я установил pstoedit
:
sudo apt install pstoedit
Релиз 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