Codebase list dvisvgm / HEAD
HEAD

Tree @HEAD (Download .tar.gz)

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.

 * FontForge library (https://fontforge.github.io)
   dvisvgm can be built with optional WOFF support that allows to embed the
   font data in WOFF or TrueType format rather than as SVG. The FontForge
   library provides the required functions to create font files in these
   formats. A reduced version of the library is bundled with the dvisvgm
   sources.

 * 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.

 * OpenSSL crypto library (https://www.openssl.org)
   dvisvgm comes with a bundled implementation of the MD5 hash algorithm which
   can optionally be replaced with the corresponding function of the OpenSSL
   crypto library. If the configuration script finds the OpenSSL development
   files on the build system, it links against libcrypto instead of the bundled
   MD5 module.

 * 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 replace the
   autohinting functionality of FontForge. Since it's 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 C++11 (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 "./autogen.sh" 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 (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de>

 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.