7

I have recently installed Ubuntu 18.04 (Not upgrade, a clean install). In Ubuntu 18.04, the rendering LaTeX function in Inkscape is not working. Following is the error output:

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

From the google search, what I have found that the problem is arising because of the ghostscript. The Render>LaTeX extension actually calls pstoedit which in terns calls ghostscript using DELAYBIND flag to convert from LaTeX to SVG. But in the newer version of ghostscript the flag DELAYBIND has been deprecated. The solution is to downgrade ghostscript to or below 9.20 version. The following are the methods that I have tried to downgrade ghostscript without any success.

Downgrading ghostscript from apt or aptitute

I have tried to downgrade the ghostrict using the following command.

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

Or by using

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

I am getting the following output

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

or

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

I have tried some other version, like 9.20 of ghost script. Nothing worked.

Installing from ghostscript website:

I have downloaded the ghostscript from the ghostscript website, and installed using the following command

sudo ./configure
sudo make
sudo make install

It seems the installation is done, but if I am running the command

ghostscript  --version

It is showing the version as 9.22.

All the online solution that I am able to find is pointing towards the downgrading the ghostscript. But I don't know how to do it in Ubuntu 18.04.

Any solution?

1
  • I have noticed that, if I use command gs -v then the output is showing ghostscript version 9.23. Is there a way I can make gs command to be recognize by ghostscript command also.
    – Apurba
    Commented May 12, 2018 at 15:01

6 Answers 6

5

Assuming you use Latex Inkscape plugin, texText, it support pdf2svg beside ghostscript+pstoedit. So, in case of Ubuntu 18.04, installing pdf2svg solves the problem

sudo apt install pdf2svg

It works for me on Ubuntu 18.04, InkScape 0.92.

1
  • Yes, this solves the problem. I am already started using TexText some time ago, but still thanks for the information.
    – Apurba
    Commented Aug 23, 2018 at 6:41
2

In this specific case building pstoedit from source does not solve the problem because the svg backend is not included by default (as already experienced above). Hence, I propose to update ghostscript to version 9.23.

After downloading and extracting the ghostscript source tarball from https://www.ghostscript.com/download/gsdnld.html enter the source directory and execute the following three commands:

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

This simply overwrites the existing ghostscript version and then one does not need to fiddle around with dependencies.

If you encounter problems elsewhere due to the new gs version you can easily switch back by

sudo apt-get install ghostscript --reinstall

Drawback of this solution is that security updates of ghostscript installed by the system will overwrite your installation and you need to re-install. However, as long as there are no pre-built binaries available this might be a first workaround

1

Just ran into the same problem using pstoedit to convert EPS to DXF files. No need to downgrade ghostscript!

Easiest Solution

  1. Upgrade pstoedit
  2. Run pstoedit with the -rdb flag.

Step-by-Step

  1. Remove Ubuntu-current pstoedit:
    • sudo apt-get remove pstoedit
  2. Download latest pstoedit:
  3. Install new pstoedit:

    • Open the extracted folder in a terminal (right-click on folder → open in terminal)
    • Run:

      ./configure
      make
      sudo make install
      
  4. Run with -rdb flag:

    • Now, when you run pstoedit, add the -rdb flag.
    • For example: pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
    • This flag tells pstoedit to use the new 'force' option to make ghostscript accept the delaybind command. The release notes warn that this should ONLY be done on trusted files, as it can open security vulnerabilities.
2
  • I am not using pstoedit manually, it is actually called by an extension of Inkscape (Extension>Render>LaTeX). So, can you suggest how to use -rdb flag with the extension.
    – Apurba
    Commented May 12, 2018 at 5:21
  • I have tried this method, error output is saying svg is not recognizable output format.
    – Apurba
    Commented May 12, 2018 at 15:00
1

For people not wanting to compile a newer pstoedit or downgrade ghostscript, there is a third option: the Nix package manager. It works in Mac, Linux and Windows 10, so this is a cross-platform solution. Once you install Nix and it is in your PATH, just do

nix-env -i pstoedit.

Happy LaTeXing in Inkscape!

0

The 9.18 release is in the xenial (16.04) archive. If you want to install it you will have to add the xenial repository to your sources.listfile:

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

and then you should be able to see the available versions with apt-cache madison ghostscript

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

and install with sudo apt-get install ghostscript=9.18~dfsg~0-0ubuntu2

1
  • I am getting the following error GPL Ghostscript 9.18: Can't find initialization file gs_init.ps and If I am creating a link using sudo ln -s /usr/share/ghostscript/9.22 /usr/share/ghostscript/9.18 and then running ghostscript, I am getting following error: gs: Interpreter revision (918) does not match gs_init.ps revision (922). Any work around?
    – Apurba
    Commented May 14, 2018 at 10:19
0

For me it works after I installed pstoedit:

sudo apt install pstoedit

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .