- Added fallback mechanism for JFM-based virtual fonts as proposed by Takuji Tanaka (issue #144).
- Improved detection of proper CMap files for currently selected font encoding.
- Fixed processing of Unicode surrogates present in CMap files.
- Fixed handling of
pdf:mapline
andpdf:mapfile
specials.
This is a small maintenance release.
- Added support for the new Ghostscript transparency operators
.setfillconstantalpha
and.setstrokeconstantalpha
. - Added support for the new Ghostscript versioning scheme introduced with GS 9.53.0.
- Added few additional information to the manual page.
- Updated the bundled Brotli library to version 1.0.9.
This is a maintenance release with the following additions and changes:
- Added evaluation of LuaTEX native font definitions.
- Added computation of of italic correction for fake slanted glyphs.
- dvisvgm now creates dedicated temporary folders for each call of the program to prevent file collisions between different processes.
- Added evaluation of internal Ghostscript operators
.fillstroke
and.eofillstroke
introduced with GS 9.52 to implement PDF operatorsB
andB*
(issue #139). - Fixed and improved optimization of nested group elements.
- Fixed optimization of
scale
transformation. - Fixed optimization of
transform
attributes applied to images and clipping paths. - Fixed processing of PostScript operator
eoclip
. - Fixed processing of clipping path intersections that involve different fill rules.
- Fixed processing of
{?(...)}
expressions (issue #136). - Fixed error message about unmatched closing tags in XML parser.
- Updated bundled FreeType library to version 2.10.2.
- Updated bundled xxHash library to version 0.8.
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 asscale(c,c)
(issue #131). - Minor layout optimizations of the PDF version of the manual page.
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
andcolorimage
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
, andxyshow
for multibyte characters. - Fixed a PostScript error that was triggered by yet unsupported shading types < 4.
- Prevent negative
height
andwidth
attributes created by optimizer modulesimplify-transform
. - Fixed a potential segfault caused by deep recursion in huge SVG trees.
- Look for Ghostscript library name
libgs.dylib.N
additionally tolibgs.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.
This is a small maintenance release with the following changes:
- If available, dvisvgm now calls
mf-nowin
instead ofmf
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.
- Added SVG optimizer module
simplify-text
to move common attributes fromtspan
elements to the enclosingtext
element. Redundanttspan
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.
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.