9 September 2018: Recent Fedora packages of dvisvgm available via Copr

Fedora packages of the latest dvisvgm release are now available through my Copr repository. They replace the older package texlive-dvisvgm coming with Fedora. Run the follwowing commands to enable the repository and to install the new dvisvgm package:

dnf copr enable mgieseki/dvisvgm
dnf install dvisvgm
8 September 2018: dvisvgm 2.6 has been released

The main feature of this release is enabled by the new command-line option --page-hashes. It allows for skipping the conversion of a page if its content hasn’t changed and the corresponding SVG file already exists. When this option is given, dvisvgm computes a hash value from the DVI pages and adds it to the name of the SVG file to be written. As the hash value only changes if the contents of the DVI page change, there’s normally no need to convert existing SVG files again which should speed up the conversion of large documents significantly. Here’s the output of two successive conversions:

$ dvisvgm --page-hashes --page=1-3 -d2 tplot
pre-processing DVI file (format version 2)
processing page 1
  graphic size: 463.13pt x 659.91pt (162.77mm x 231.93mm)
  output written to tplot-d0ab8a85f0307c6e.svg
processing page 2
  graphic size: 433.16pt x 680.74pt (152.24mm x 239.25mm)
  output written to tplot-d3b405aceca3a5c0.svg
processing page 3
  graphic size: 426.79pt x 763.01pt (150mm x 268.17mm)
  output written to tplot-e695ce8f0abfea95.svg
3 of 7 pages converted in 0.384216 seconds
$ dvisvgm --page-hashes --page=1-4 -d2 tplot
pre-processing DVI file (format version 2)
skipping page 1
  file tplot-d0ab8a85f0307c6e.svg exists
skipping page 2
  file tplot-d3b405aceca3a5c0.svg exists
skipping page 3
  file tplot-e695ce8f0abfea95.svg exists
processing page 4
  graphic size: 427.37pt x 684.56pt (150.21mm x 240.59mm)
  output written to tplot-886a8783a56c4ee7.svg
4 of 7 pages converted in 0.147861 seconds

Besides the DVI input, a couple of dvisvgm’s options, like --no-fonts or --precision also affect the SVG output. Therefore, it’s possible to include command-line information in the hash value as well so that a new SVG file is created when using different options although the DVI pages haven’t changed. For further information on this topic and the available hash algorithms see the sections about option --page-hashes and --output on the manual page.

In addition to this new option, the following changes have been made:

  • The plausibility check of the total number of pages given in the DVI postamble has been relaxed. This value overflows if the DVI file contains more than 65535 pages which previously led to an error message.
  • Validity checks of the BOP (begin of page) offsets specified as part of each BOP and POST command have been added to detect DVI files with incorrect, e.g. cyclic, page references.
8 August 2018: dvisvgm 2.5 has been released

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

  • Added multi-page support to PDF mode, i.e. when converting PDF file using option --pdf, the pages to be processed can be selected with option --page:
    $ dvisvgm –pdf –page=2-3 -d2 sample.pdf
    processing PDF file
      graphic size: 597.23pt x 845.16pt (209.9mm x 297.04mm)
      output written to sample-2.svg
    processing PDF file
      graphic size: 597.23pt x 845.16pt (209.9mm x 297.04mm)
      output written to sample-3.svg
    2 of 3 pages converted in 1.328 seconds
    
  • All transformation options, like --scale, --rotate, and --transform, now work in the PDF mode too.
  • Added support for all nine length units to option --transform. Previously, only some of them were available. For further information see the manual page.
  • TeX Live 32-bit Windows binaries only: The Ghostscript DLL is now looked up in the TeX Live folders as well (thanks to Akira Kakuto for sending the patch).
  • At the request of the TeX Live maintainers, potrace has been added to the bundled third-party libraries again, in order to simplify maintaining this dependency.
  • Instead of linking the bundled libraries brotli, potrace, woff2, and xxhash, the configure script now looks for the corresponding system libraries by default (issue #90).
  • Added option --enable-bundled-libs to the configure script to build and statically link the bundled libraries.
  • Some code refactorings.
18 July 2018: dvisvgm 2.4.2 has been released

This is another small maintenance release.

  • Fixed the height and depth values computed when using the preview package (issue #89).
  • Slightly reduced the size of the bounding boxes applied to hyperlinked areas to obtain tight bounds.
  • No longer print warnings if special psfile is called with argument /dev/null. For example, option psfixbb of the preview package adds these specials in order to help dvips to compute correct bounding boxes. Those DVI files used to produce a couple of redundant warnings when processed with dvisvgm.
  • make install no longer fails if the manual page can’t be created due to missing conversion utilities.
7 July 2018: dvisvgm 2.4.1 has been released

This is a small maintenance release with the following changes:

  • Fixed the handling of the optional delay parameter of option --progress.
  • Updated the brotli library to version 1.0.5.
  • Updated the woff2 library to version 1.0.2
  • Updated several URLs in the manual page.
  • Several minor code refactorings.
6 July 2018: Website moved to the new domain dvisvgm.de

To simplify the maintenance of both the website and the program code, I rebuilt the former wiki-based website with a static site generator and moved everything to GitHub Pages. The site is now reachable under the new domain dvisvgm.de.

The old SourceForge (dvisvgm.sf.net) and bplaced (dvisvgm.bplaced.net) addresses now redirect to the new location. Since I’ve kept the page structure, all former URLs should still be valid. If you find a page, a resource, or link that doesn’t work, let me know.

3 May 2018: dvisvgm 2.4 has been released

This feature release brings the following additions/changes:

  • Added special pdffile similar to psfile to embed PDF graphics.
  • Added option --pdf to convert single-page PDF documents to SVG:

    $ dvisvgm –pdf -d2 helix.pdf
    processing PDF file
      graphic size: 597.51pt x 845.05pt (210mm x 297mm)   
      output written to helix.svg
    file converted in 1.61882 seconds
    

  • Reassigned short option -P from --progress to --pdf.

  • Added option --stdin to receive input from stdin. Alternatively, a single dash can be used as well:

    $ dvisvgm -d2 - < frktest.dvi
    reading from <stdin>
    pre-processing DVI file (format version 2)
    processing page 1
      graphic size: 398.34pt x 456.34pt (140mm x 160.39mm)
      output written to stdin.svg
    1 of 1 page converted in 0.0790408 seconds
    

  • Option --stdout can now be combined with option --zip to redirect SVGZ data to stdout.

  • Added processing of Ghostscript operators .setshapealpha and .setblendmode that allow for conversion of more transparency parameters, e.g.:
    blend modes

  • Fixed outer transformations applied to psfile specials.

  • Fixed computation of bounding boxes triggered by psfile specials.

  • Several code refactorings.

23 March 2018: dvisvgm 2.3.5 has been released

This is a small maintenance release with the following changes:

  • Added the evaluation of PostScript operator setpagedevice in psfile specials. This enables the conversion of a broader range of EPS files created with dvips which sometimes contain this operator although not allowed according to the EPS specification.
  • Fixed the evaluation of dvips color names.
  • Fixed the warning message printed when using Ghostscript as of version 9.23.