dvisvgm

A fast DVI, EPS, and PDF to SVG converter

171
17
C++

dvisvgm – A DVI to SVG converter

DESCRIPTION

dvisvgm is a utility for TeX/LaTeX users. It converts DVI, EPS, and
PDF files to the XML-based scalable vector graphics format SVG.

DEPENDENCIES

dvisvgm relies on the following free libraries:

  • Clipper (http://www.angusj.com/delphi/clipper.php)
    To compute the intersections of two curved paths, dvisvgm flattens the paths
    to polygons, intersects them using Clipper, and reconstructs the curves
    afterwards.

  • FreeType 2 (http://www.freetype.org)
    This library is used to extract the glyph outlines from vector fonts
    (PFB, OTF, TTF).

  • Ghostscript (https://www.ghostscript.com)
    The PostScript special handler requires the Ghostscript shared library
    libgs.so.N (Linux) or gsdll32.dll/gsdll64.dll (Windows) to be installed.
    If the configure script finds the corresponding Ghostscript development
    files on the system, it directly links against libgs.so.N, where N is the
    library’s ABI version. Otherwise, the library is looked up during runtime,
    and the PostScript support is enabled only if the shared library can be
    found. Due to incompatible changes of the Ghostscript API, dvisvgm requires
    Ghostscript 8.31 or later.

  • kpathsea (https://tug.org/kpathsea)
    This library is part of the Web2C package and is usually installed in
    conjunction with a TeX distribution. kpathsea provides functions for
    searching files in the large texmf tree. Please ensure that you use the
    kpathsea version coming with or matching your TeX system.

  • potracelib (http://potrace.sourceforge.net)
    Peter Selinger’s bitmap tracing library is utilized to vectorize Metafont’s
    bitmap output. A recent version is also part of the dvisvgm sources.

  • ttfautohint (https://www.freetype.org/ttfautohint)
    dvisvgm can optionally be built with ttfautohint support to allow for
    autohinting the generated TrueType, WOFF, and WOFF2 fonts. Since this is
    still an experimental feature, ttfautohint support is disabled by default.
    The development files required for Windows can be found at
    https://github.com/mgieseki/ttfautohint-dll.

  • woff2 and brotli (https://github.com/google/woff2)
    These Google libraries are bundled with the dvisvgm sources. They are used
    to create WOFF2 from TrueType fonts.

  • xxHash (https://github.com/Cyan4973/xxHash)
    The xxHash library provides a fast hash algorithm. dvisvgm uses it to
    create unique integer values from PostScript character names in order to
    store them in a compact way together with their Unicode points. A recent
    version of xxHash is bundled with the dvisvgm sources.

  • zlib (http://www.zlib.org)
    This library is required to create compressed SVGZ files.

BUILDING DVISVGM FROM SOURCE

dvisvgm is written in C11 (ISO C standard 2011) and requires an appropriate
compiler, like GCC 4.9, Clang 3.3, or any later version. The configure script
checks for the availability of C++11 support and adds the proper compiler
options if necessary.

Quick installation info:

  • ensure that the development packages of all libraries, listed above,
    are installed
  • type “autoreconf -fi” if “configure” is not present in the dvisvgm
    root folder
  • either type “./configure” if you don’t want to use the bundled libraries
    brotli, potrace, woff2, and xxHash but link against the corresponding
    system libraries,
    or type “./configure --enable-bundled-libs” in order to build and
    statically link the bundled libraries.
  • type “make”
  • type “make install” as root (or “sudo make install”)

For generic configuration instructions see the file INSTALL.

The configure script should recognize all necessary parameters.
If a library is installed but not detected, specify its location
as commandline parameter of configure, e.g.
./configure --with-freetype=/usr/local/freetype
(all available options can be displayed with ./configure --help)

The tracer module calls Metafont in case of lacking TFM or PFB files
via a system call. Please ensure that Metafont is installed and
reachable through the system’s search path.

If you don’t like compiling the sources yourself, you can
download pre-compiled executables for Windows and MiKTeX
from the project website instead (see below).

USAGE
Information about the command-line interface and the available options can be
found in the manual page.

ADDITIONAL INFORMATION
This package is available from CTAN (dviware/dvisvgm) and can be downloaded
from the project website as well:

https://dvisvgm.de

Here you can find the sources, pre-compiled binaries and further additional
information about the converter and related topics.

If you’ve found a bug, please let me know. You can either send me an email or
preferably use the bug tracker at GitHub (https://github.com/mgieseki/dvisvgm).

COPYRIGHT

Copyright © 2005-2024 Martin Gieseking [email protected]

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.

See file COPYING for details.