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!

Самое простое решение

  1. Обновление пстоедит
  2. Запустите пстоедить с -rdb флаг.

Шаг за шагом

  1. Удалить Ubuntu-текущий pstoedit:
    • sudo apt-get remove pstoedit
  2. Скачать последнюю версию пстоедить:
  3. Установите новый пстоедит:

    • Откройте извлеченную папку в терминале (щелкните правой кнопкой мыши папку → открыть в терминале)
    • Бежать:

      ./configure
      make
      sudo make install
      
  4. Запустить с флагом -rdb:

    • Теперь, когда вы запустите pstoedit, добавьте -rdb флаг.
    • Например:pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
    • Этот флаг указывает pstoedit использовать новую опцию 'force', чтобы ghostscript принял команду delaybind. Примечания к выпуску предупреждают, что это следует делать ТОЛЬКО на доверенных файлах, так как это может открыть уязвимости безопасности.

Для людей, не желающих собирать более новые 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

Другие вопросы по тегам