[gs-devel] Changes to the Ghostscript PDF Interpreter
bvoisin at icloud.com
Tue Jun 1 22:16:18 UTC 2021
Following the announcement of this implementation on the Ghostscript blog, and given the importance of Ghostscript in the TeX world (more about this below for readers not familiar with TeX), I posted a secondary announcement a week ago on the mailing list of the main TeX distribution at
The only answer I got so far is very short and to-the-point:
> Artifex already distribute mupdf, a very fast PDF viewer
> written in C. How will this be different?
I couldn't really answer that, as I simply don't know. Is some convergence planned between GhostPDF and MuPDF?
PS Regarding TeX and Ghostscript: TeX is a typesetting system with an inclination towards mathematical typesetting. Classical TeX works by outputting a device-independent (DVI) format converted to PostScript by a dvips utility, and the PostScript output is then converted to PDF using Ghostscript's ps2pdf. Over the years packages have been developed, like the very popular pstricks, that insert PostScript drawing code for transparency etc (based on Ghostscript's associated operators) directly in the process, before ps2pdf is applied.
TeX is 8-bit based. There's an evolution called XeTeX which is Unicode-based. It produces output in extended DVI (XDV) format then applies a utility called xdvipdfmx to generate PDF output directly. Internally xdvipdmfx is able to call Ghostscript whenever needed, through a script
rungs -q -dALLOWPSTRANSPARENCY -dSAFER -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' '%i' -c quit
There are now variants (the 8-bit pdfTeX and the Unicode LuaTeX) producing PDF output directly out of TeX code, but the use of the classical way involving Ghostscript remains widespread. Ghostscript builds are included in most TeX distributions, I think.
More information about the gs-devel