21 March 2020: dvisvgm 2.9.1 has been released

This is a small maintenance release with the following changes:

  • Added macro {?(expr)} to enable the evaluation of math expressions in raw SVG fragments (issue #130).
  • Multiplication operator * preceding an opening parentheses can now be omitted in math expressions.
  • Fixed the evaluation of transformation command scale(c) which is now correctly treated as scale(c,c) (issue #131).
  • Minor layout optimizations of the PDF version of the manual page.
13 March 2020: dvisvgm 2.9 has been released

The main new feature of this release is the conversion of bitmap images present in PostScript and PDF data. All bitmaps are embedded into the generated SVG files encoded as Base64 strings. The default format used for this is JPEG because it allows for high compression rates and therefore moderate impact on the SVG file size. If you prefer a lossless format, you can switch to one of the supported PNG variants by using the new command-line option --bitmap-format. Further information about the available formats and the usage of this option can be found on the manual page.

Summary of additions and fixes:

  • Added the processing of PostScript operators image and colorimage which now allows dvisvgm to embed bitmap images present in PS/PDF files into the generated SVG files.
  • Added command-line option --bitmap-format to set the format used to embed bitmaps present in EPS/PDF files.
  • Added a fallback method to retrieve the resolution of GF files if stdout of the Metafont subprocess can’t be read through a pipe for some reason (issue #129).
  • Fixed the broken conversion of PostScript tiling patterns.
  • Fixed the functionality of PostScript operators xshow, yshow, and xyshow for multibyte characters.
  • Fixed a PostScript error that was triggered by yet unsupported shading types < 4.
  • Prevent negative height and width attributes created by optimizer module simplify-transform.
  • Fixed a potential segfault caused by deep recursion in huge SVG trees.
  • Look for Ghostscript library name libgs.dylib.N additionally to libgs.N.dylib (Mac only).
  • Ensure that make install installs the bundled manual page if it can’t be rebuilt due to missing build tools.
  • Updated the bundled xxHash library to version 0.7.3.
7 December 2019: dvisvgm 2.8.2 has been released

This is a small maintenance release with the following changes:

  • If available, dvisvgm now calls mf-nowin instead of mf to process Metafont files (issue #121).
  • Fixed the switching between PostScript’s null device and the regular page device in PS operator restore (issue #122).
  • Fixed a PostScript error triggered by backslashes in file paths (Windows only, issue #123).
  • Fixed a build issue related to GCC on Solaris 11.
  • Some code cleanup.
14 November 2019: dvisvgm 2.8.1 has been released
  • Added SVG optimizer module simplify-text to move common attributes from tspan elements to the enclosing text element. Redundant tspan elements are removed afterwards.
  • Added support for PS operator nulldevice which is used by a couple of LaTeX packages. It’s used to temporarily suppress graphic output when executing drawing or text commands.
  • Absolute paths given in special psfile are now retained in the SVG file when referencing external image files.
  • Some code refactorings.
25 October 2019: dvisvgm 2.8 has been released

This is a small feature release with the following additions/changes:

  • Added support for JPEG, PNG, PDF, and SVG files to special psfile.
  • Added support for Ghostscript 9.50 which introduced incompatible changes regarding option -dSAFER. Due to security reasons SAFER is now active by default and therefore conflicts with DELAYBIND and WRITESYSTEMDICT. Since dvisvgm requires the latter two to work correctly, Ghostscript must now be called with -dDELAYSAFER. Otherwise, it prints some warning messages and stops with a PostScript error, e.g. like so:
    *** WARNING - you have selected SAFER, indicating you want Ghostscript
                  to execute in a safer environment, but at the same time
                  have selected DELAYBIND. Unless you use this option with
                  care (and specifically, remember to call .bindnow) it is
                  possible that malicious code may be able to evade the
                  limited security offered by the SAFER option.
    *** WARNING - you have selected SAFER, indicating you want Ghostscript
                  to execute in a safer environment, but at the same time
                  have selected WRITESYSTEMDICT. Unless you use this option with
                  care and specifically, remember to execute code like:
                         "systemdict readonly pop"
     PostScript error: invalidfileaccess in run

    dvisvgm 2.8 fixes this issue. All versions prior to 2.8 don’t work together with GS 9.50 (and later).
  • Added support for elliptical arc segments in graphics paths.
  • Added support for CMap operator begincidchar (thanks to Akira Kakuto for sending the patch).
  • Added suport for experimental 128-bit XXH3 hashes.
  • The SVG optimizer module simplify-transform has been extended to incorporate translation and scaling components into positional and size attributes if possible.
  • The CRC32 checksums used to verify the sanity of cache files has been replaced with XXH32 hashes.
  • The bundled potrace library has been updated to version 1.16.
  • The bundled xxHash library has been updated to version 0.7.2.
  • The bundled Google Test library has been updated to version 1.10.
  • Lots of code has been refactored and improved.
28 July 2019: dvisvgm 2.7.4 has been released

This is another small maintenance release with the following changes:

  • Fixed a memory issue occurred when calling Metafont.
  • Fixed potential rounding issues in conversion of color values (issue #116).
  • Changed the location of the cache files from ~/.dvisvgm/cache to $XDG_CACHE_HOME/dvisvgm which usually expands to ~/.cache/dvisvgm (issue #112).
  • Some minor refactorings.
12 July 2019: dvisvgm 2.7.3 has been released

This is a small maintenance release with the following changes:

  • Fixed randomly missing glyph paths referenced by use elements (issue #110).
  • Minor updates of the manual page.
  • Some code refactorings.
7 June 2019: dvisvgm 2.7.2 has been released

This maintenance release fixes an issue introduced with Ghostscript 9.27. The removal of the PostScript dictionaries GS_PDF_ProcSet and pdfdict from the public interface leads to an error message when processing PDF files with dvisvgm.

The changes in Ghostscript 9.27 also break the PDF functionality of GSview 5.0 by Russell Lang. An unofficial, fixed version can be downloaded here.