To convert a DVI file to SVG, just call dvisvgm with the name of the DVI file. The suffix
.dvi can be omitted.
In this example, the first page of
frktest.dvi has been converted and written to
frktest.svg. Since the font
yinitas wasn’t available as a vector font, dvisvgm called Metafont and vectorized the two glyphs of Metafont’s
bitmap output required for the document. They are stored in a cache file so that it’s not necessary to call Metafont
for these glyphs again which will speed up the conversion process.
Here is the resulting SVG file opened in the Opera browser. Great, the document looks as expected – all glyphs are rendered correctly.
And this screenshot shows the same SVG file opened in Firefox. Well, the result is not that convincing this time. Unfortunately, only few SVG renderers support the evaluation of SVG font elements properly which dvisvgm creates by default. Thus, in many cases, these SVG files look strange.
In order to avoid these problems, call dvisvgm with option
--no-fonts. It replaces the font
elements by paths which are supported by nearly all
As already mentioned above, dvisvgm doesn’t call Metafont again because the vectorial representation of the required glyphs is present in the font cache and allows a faster conversion.
The font-free SVG file looks identical to the previous one and Firefox, Chrome, Inkscape etc. render it correctly. However, as there are no longer font characters present in the SVG file, the drawn text can’t be selected in the browser.
If the PostScript specials couldn’t be processed, the resulting SVG usually lacks some parts of the graphic and/or text elements get the wrong position.
There are several ways to tell dvisvgm where to find the Ghostscript library (see the FAQ),
e.g. by setting the environment variable
LIBGS. The warning messages go away as soon as Ghostscript is accessible.
Now all graphic and positional instructions made it to the SVG file and the result looks as expected.