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
задан 11 May 2018 в 17:09

6 ответов

Принятие Вас использует Латекс плагин Inkscape, texText, это поддерживает pdf2svg около ghostscript+pstoedit. Так, в случае Ubuntu 18.04, устанавливая pdf2svg решает проблему

sudo apt install pdf2svg

Это работает на меня на Ubuntu 18.04, InkScape 0.92.

4
ответ дан 23 November 2019 в 07:37

Просто столкнулся с той же проблемой с помощью pstoedit для преобразования EPS в файлы DXF. Никакая потребность понизить ghostscript!

Самое легкое решение

  1. Обновление pstoedit
  2. Выполненный pstoedit с -rdb флаг.

Пошаговый

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

    • Откройтесь извлеченная папка в терминале (щелкните правой кнопкой по папке → открытый в терминале),
    • Выполненный:

      ./configure
      make
      sudo make install
      
  4. Выполненный с флагом-rdb:

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

Эти 9,18 выпусков находятся в гостеприимном (16.04) архив. Если Вы хотите установить его, необходимо будет добавить гостеприимный репозиторий к Вашему 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 гостеприимные/основные amd64 Пакеты

и установка с sudo apt-get install ghostscript=9.18~dfsg~0-0ubuntu2

0
ответ дан 23 November 2019 в 07:37

В этом конкретном случае, создающем 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, установленного системой, перезапишут Вашу установку, и необходимо переустановить. Однако пока нет никаких предварительно созданных двоичных файлов, доступных, это могло бы быть первым обходным решением

2
ответ дан 23 November 2019 в 07:37

Для людей, не желающих скомпилировать более новое pstoedit или снижение ghostscript, существует третья опция: Отклонить диспетчер пакетов. Это работает в Mac, Linux и Windows 10, таким образом, это - межплатформенное решение. После того как Вы устанавливаете, Отклоняют, и это находится в Вашем PATH, просто сделайте

nix-env -i pstoedit.

Счастливая пропитка латексом в Inkscape!

1
ответ дан 23 November 2019 в 07:37

Для меня это работает после того, как я установил pstoedit:

sudo apt install pstoedit
0
ответ дан 23 November 2019 в 07:37

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

Похожие вопросы: