web-dev-qa-db-fra.com

Render LaTeX ne fonctionne pas dans Inkscape après l'installation de la version 18.04

J'ai récemment installé Ubuntu 18.04 (pas de mise à niveau, une installation propre). Dans Ubuntu 18.04, la fonction de rendu LaTeX dans Inkscape ne fonctionne pas. Voici la sortie d'erreur:

*** 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

De la recherche google, ce que j'ai trouvé que le problème se pose en raison de la ghostscript. L’extension Render>LaTeX appelle en fait pstoeditqui, dans les sternes, appelle ghostscripten utilisant DELAYBINDpour convertir le LaTeXen SVGname__. Mais dans la version plus récente de ghostscriptname__, l'indicateur DELAYBINDa été obsolète . La solution consiste à rétrograder ghostscriptà ou au-dessous de la version 9.20. Voici les méthodes que j'ai essayé de rétrograder ghostscriptsans aucun succès.

Déclassement de ghostscript d'apt ou d'aptitute

J'ai essayé de rétrograder ghostrictà l'aide de la commande suivante.

Sudo aptitude install ghostscript=9.18~dfsg~0-0ubuntu2

Ou en utilisant

Sudo apt install ghostscript=9.18~dfsg~0-0ubuntu2

Je reçois la sortie suivante

Unable to find a version "9.18~dfsg~0-0ubuntu2" for the package "ghostscript"

ou

E: Version '9.18~dfsg~0-0ubuntu2' for 'ghostscript' was not found

J'ai essayé une autre version, comme la version 9.20 du script fantôme. Rien n'a fonctionné.

Installation à partir du site Web de Ghostscript:

J'ai téléchargé le ghostscriptde ghostscript website et l’a installé à l’aide de la commande suivante

Sudo ./configure
Sudo make
Sudo make install

Il semble que l'installation soit terminée, mais si j'exécute la commande

ghostscript  --version

Il montre la version 9.22.

Toute la solution en ligne que je suis capable de trouver pointe vers le déclassement de ghostscriptname__. Mais je ne sais pas comment le faire dans Ubuntu 18.04.

Toute solution?

6
Apurba

En supposant que vous utilisiez le plug-in Latex Inkscape, texText , il prend en charge pdf2svg à côté de ghostscript + pstoedit. Donc, dans le cas d’Ubuntu 18.04, installer pdf2svg résout le problème

Sudo apt install pdf2svg

Cela fonctionne pour moi sur Ubuntu 18.04, InkScape 0.92.

4
bagustris

Dans ce cas spécifique, la construction de pstoedit à partir de la source ne résout pas le problème car le backend de svg n'est pas inclus par défaut (comme cela a déjà été fait ci-dessus). Par conséquent, je propose de mettre à jour ghostscript vers la version 9.23.

Après le téléchargement et l'extraction de l'archive source ghostscript de https://www.ghostscript.com/download/gsdnld.html , entrez le répertoire source et exécutez les trois commandes suivantes:

./configure --prefix=/usr
make
Sudo make install

Cela remplace simplement la version existante de ghostscript et il n’est alors pas nécessaire de manipuler les dépendances.

Si vous rencontrez des problèmes ailleurs en raison de la nouvelle version de gs, vous pouvez facilement revenir en arrière.

Sudo apt-get install ghostscript --reinstall

L'inconvénient de cette solution est que les mises à jour de sécurité de ghostscript installées par le système écrasent votre installation et vous devez effectuer une nouvelle installation. Cependant, tant qu’il n’existe pas de fichiers binaires pré-construits, il s’agit peut-être d’une première solution de contournement.

2
jcwinkler

Je viens de rencontrer le même problème d’utilisation de pstoedit pour convertir des fichiers EPS en fichiers DXF. Pas besoin de déclasser ghostscript!

Solution la plus simple

  1. Mettre à jour pstoedit
  2. Exécutez pstoedit avec l'indicateur -rdb.

Pas à pas

  1. Supprimez pstoedit Ubuntu-current:
    • Sudo apt-get remove pstoedit
  2. Téléchargez la dernière version de pstoedit:
  3. Installez le nouveau pstoedit:

    • Ouvrir le dossier extrait dans un terminal (clic droit sur le dossier → ouvrir dans le terminal)
    • Courir:

      ./configure
      make
      Sudo make install
      
  4. Exécuté avec l'option -rdb:

    • Maintenant, lorsque vous exécutez pstoedit, ajoutez l'indicateur -rdb.
    • Par exemple: pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
    • Cet indicateur indique à pstoedit d'utiliser la nouvelle option "force" pour que ghostscript accepte la commande delaybind. Les notes de publication avertissent que cela ne doit être fait que sur des fichiers de confiance, car cela pourrait ouvrir des failles de sécurité.
1
SRDC

Pour les personnes qui ne souhaitent pas compiler un pstoeditplus récent ou un déclassement ghostscriptname__, il existe une troisième option: le gestionnaire de packages Nix . Cela fonctionne sous Mac, Linux et Windows 10, il s’agit donc d’une solution multiplate-forme. Une fois que vous avez installé Nix et qu’il figure dans votre PATHname__, faites simplement

nix-env -i pstoedit.

Bonne LaTeXing dans Inkscape!

1
Marduk

La version 9.18 se trouve dans les archives xenial (16.04). Si vous souhaitez l'installer, vous devrez ajouter le référentiel xenial à votre fichier sources.list:

Sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe"

et alors vous devriez pouvoir voir les versions disponibles avec apt-cache madison ghostscript

ghostscript | 9.18 ~ dfsg ~ 0-0ubuntu2 | http: // archive.ubuntu.com/ubuntu xenial/main Packages AMD64

et installer avec Sudo apt-get install ghostscript=9.18~dfsg~0-0ubuntu2

0
jackw11111

Pour moi, cela fonctionne après avoir installé pstoedit:

Sudo apt install pstoedit
0
Yan King Yin