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 reasonsSAFER
is now active by default and therefore conflicts withDELAYBIND
andWRITESYSTEMDICT
. 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.
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.
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.
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.
This is a small maintenance release with the following changes:
- Fixed a bug in PostScript operator
setmatrix
(issue #106). - Fixed a build issue reported on MacPorts.
- Added the source files required to access the MiKTeX session object as the MiKTeX SDK has been deprecated.
The main new feature of this release is command-line option --optimize
which
allows for optimization of the generated SVG tree after it has completely been built from the DVI data.
The optimizations are performed by running separate optimizer modules which are executed one by one in
a given order and thus transform the XML tree gradually. Currently, the following optimizations are available:
- Move common inheritable attributes of adjacent elements to group elements.
- Combine nested groups and unwrap groups without attributes.
- Remove redundant
clipPath
elements. - Simplify
transform
attributes.
More detailed information on option --optimize
and the optimizer modules can be found on the manual page.
Furthermore, a couple of smaller additions and changes have been made:
- All
raw
specials are now parsed and converted to proper XML nodes so that the optimizer can also process SVG fragments added by the user. - Several improvements to SVG graphics path descriptions:
- Redundant spaces and leading zeros are omitted.
- Line commands representing zero-length lines are removed.
- The detection of reflected control points in Bézier curve sequences has been improved. As a result, the shorthand curve commands are applied more often.
- Added support for PostScript operators
xshow
,yshow
, andxyshow
. - Added evaluation of optional
psfile
/pdffile
special attributeclip
which clips the drawing region to the bounding box of the image being processed. - Added the
\special
variantsdvisvgm:bbox lock
anddvisvgm:bbox unlock
to disable and enable updating of the bounding box. By default, dvisvgm adapts the bounding box of the current page if a new graphics element is added. This behaviour can be paused and resumed with the new specials. - Added optional modifier
transform
to dvisvgm’sbbox
specials to allow for applying the current transformation matrix to the bounding box. - Added macro
{?matrix}
to dvisvgm’sraw
specials. It expands to the current transformation matrix, e.g.matrix(0 -1 1 0 -214.88 106)
. - Option
--exact
has been renamed to--exact-bbox
. This change is backward compatible due to dvisvgm’s partial matching of option names. - The bundled xxHash library was updated to version 0.7.0.
- Lots of code refactorings.
This is mainly a bugfix release with the following changes:
- dvisvgm now creates short, three-digit RGB hex values for color attributes if possible, e.g.
#123
instead of#112233
. - Fixed the rejection of paper formats, like
A4
, given as argument to option--bbox
. - Fixed the adaption of the vertical orientation when processing EPS/PDF files.
- Fixed the handling of backslashes in EPS/PDF file paths (Windows only).
- Updated the bundled Google Test library to version 1.8.1.
- Some code refactorings and improvements of the build system.
This maintenance release resolves a couple of PostScript issues that were reported recently.
- Fixed the scaling of line properties in PS operator
grestore
. - Fixed the handling of PS operators
charpath
andshow
which may call each other internally. - Improved the processing of PS operator
clippath
. - Prevent visible side-effects of PS operator
stringwidth
. - Updated the bundled brotli library to version 1.0.7.
- Some modifications of the build system to simplify the maintenance of dvisvgm in TeX Live.