'\" t .\" Title: dvisvgm .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 03/09/2012 .\" Manual: dvisvgm Manual .\" Source: dvisvgm 1.0.11 .\" Language: English .\" .TH "DVISVGM" "1" "03/09/2012" "dvisvgm 1\&.0\&.11" "dvisvgm Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" dvisvgm \- converts DVI files to the XML\-based SVG format .SH "SYNOPSIS" .sp \fBdvisvgm\fR [ \fIoptions\fR ] \fIfile\fR [\&.dvi] .SH "DESCRIPTION" .sp The command\-line utility \fBdvisvgm\fR converts DVI files, as generated by TeX/LaTeX, to the XML\-based scalable vector graphics format SVG\&. Since the current SVG standard 1\&.1 doesn\(cqt specify multi\-page graphics, dvisvgm creates separate SVG files for each DVI page\&. Because of compatibility reasons, only the first page is converted by default\&. In order to select a different page or arbitrary page sequences, use option \fB\-p\fR which is described below\&. .sp dvisvgm should properly convert all pages that are made up of fonts and rules only\&. However, the utility also supports a couple of DVI extensions defined in terms of \fIDVI specials\fR\&. For a more detailed overview, see section \fBsupport of specials\fR below\&. .sp As SVG is a vector based graphics format, dvisvgm tries to convert the glyph outlines of all used fonts into scalable path descriptions\&. The fastest way to do that is to extract the path information from PFB (PostScript Type 1) files\&. So, if dvisvgm is able to find a PFB file for a required font, it will read the necessary information from this file\&. .sp TeX\(cqs main source for font descriptions is Metafont though, which produces bitmap output\&. That\(cqs why not all obtainable TeX fonts are available in PFB format\&. In these cases, dvisvgm tries to vectorize Metafont\(cqs output (GF fonts) by tracing the glyph bitmaps\&. The results are not as perfect as most (manually optimized) PFB outlines but are nonetheless really nice in most cases\&. .SH "OPTIONS" .PP \fB\-a, \-\-trace\-all\fR=[\fIretrace\fR] .RS 4 This option forces dvisvgm to trace not only the actually needed glyphs but all glyphs of all bitmap fonts used in the DVI file\&. Since the tracing results are stored in the font cache, all following DVI conversions (without option \fB\-\-trace\-all\fR) where these fonts are involved, will be much faster\&. By default, dvisvgm traces only the actually needed glyphs, and adds them to the cache\&. The boolean option \fIretrace\fR determines how to handle glyphs already stored in the cache\&. By default, these glyphs are skipped\&. Setting argument \fIretrace\fR to \fIyes\fR or \fItrue\fR forces dvisvgm to trace the corresponding bitmaps again\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br This option only takes affect if font caching is active\&. Thus, \fB\-\-trace\-all\fR cannot be combined with option \fB\-\-cache=none\fR\&. .sp .5v .RE .RE .PP \fB\-b, \-\-bbox\fR=\fIfmt\fR .RS 4 Sets the bounding box of the generated graphic to the specified format\&. The parameter \fIfmt\fR takes either one of the format specifiers listed below, or a sequence of four comma\- or whitespace\-separated length values \fIx1\fR, \fIy1\fR, \fIx2\fR and \fIy2\fR\&. The latter define two diagonal corners of the bounding box\&. Each length value consists of a floating point number and an optional length unit (pt, bp, cm, mm, in, or pc)\&. If the unit is omitted, TeX points (pt) are assumed\&. .sp It\(cqs also possible to give only one length value \fIl\fR\&. In this case, the minimal bounding box is computed and enlarged by adding (\-\fIl\fR,\-\fIl\fR) to the upper left and (\fIl\fR,\fIl\fR) to the lower right corner\&. .sp Alternatively, the following format specifiers are supported: .PP \fBInternational DIN/ISO paper sizes\fR .RS 4 A\fIn\fR, B\fIn\fR, C\fIn\fR, D\fIn\fR, where \fIn\fR is a non\-negative integer, e\&.g\&. A4 or a4 for DIN/ISO A4 format (210mm \(mu 297mm)\&. .RE .PP \fBNorth American paper sizes\fR .RS 4 invoice, executive, legal, letter, ledger .RE .PP \fBSpecial bounding box sizes\fR .RS 4 .TS tab(:); lt lt lt lt lt lt. T{ \fBdvi\fR T}:T{ page size stored in the DVI file T} T{ \fBmin\fR T}:T{ computes the minimal/tightest bounding box T} T{ \fBnone\fR T}:T{ no bounding box is assigned T} .TE .sp 1 .RE .RE .PP \fBPage orientation\fR .RS 4 The default page orientation for DIN/ISO and American paper sizes is \fIportrait\fR, i\&.e\&. \fIwidth\fR < \fIheight\fR\&. Appending \fB\-landscape\fR or simply \fB\-l\fR to the format string switches to \fIlandscape\fR mode (\fIwidth\fR > \fIheight\fR)\&. For symmetry reasons you can also explicitly add \fB\-portrait\fR or \fB\-p\fR to indicate the default portrait format\&. Note that these suffixes are part of the size string and not separate options\&. Thus, they must directly follow the size specifier without additional blanks\&. Furthermore, the orientation suffixes can\(cqt be used with \fBdvi\fR, \fBmin\fR, and \fBnone\fR\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br Option \fB\-b, \-\-bbox\fR only affects the bounding box and does not transform the page content\&. Hence, if you choose a landscape format, the page won\(cqt be rotated\&. .sp .5v .RE .RE .PP \fB\-c, \-\-scale\fR=\fIsx\fR[,\fIsy\fR] .RS 4 Scales the page content horizontally by \fIsx\fR and vertically by \fIsy\fR\&. This option is equivalent to \fB\-TS\fR\fIsx\fR,\fIsy\fR\&. .RE .PP \fB\-C, \-\-cache\fR[=\fIdir\fR] .RS 4 To speed up the conversion process of bitmap fonts, dvisvgm saves intermediate conversion information in cache files\&. By default, these files are stored in $HOME/\&.dvisvgm/cache\&. If you prefer a different location, use option \fB\-\-cache\fR to overwrite the default\&. Furthermore, it is also possible to disable the font caching mechanism completely with option \fB\-\-cache=none\fR\&. If argument \fIdir\fR is omitted, dvisvgm prints the path of the default cache directory and some information about the stored fonts\&. Additionally, outdated and corrupted cache files are removed\&. .RE .PP \fB\-\-color\fR .RS 4 Enables colorization of messages printed during the conversion process\&. The colors can be customized via the environment variable DVISVGM_COLORS\&. See the ENVIRONMENT section below for further information\&. .RE .PP \fB\-e, \-\-exact\fR .RS 4 If this option is given, dvisvgm computes the precise bounding box of each character\&. By default, the values stored in a font\(cqs TFM file are used to determine a glyph\(cqs extent\&. As these values are intended to realize optimal character placements and are not designed to represent the exact dimensions, they don\(cqt necessarily correspond with the bounds of the visual glyphs\&. Thus, width and/or height of some glyphs may be larger than the respective TFM values\&. As a result, this can lead to clipped characters at the bounds of the SVG graphic\&. With option \fB\-\-exact\fR, dvisvgm analyzes the actual shape of each character and derives a usually tight bounding box\&. .RE .PP \fB\-h, \-\-help\fR .RS 4 Prints a short summary of all available command\-line options\&. This is also the default action if dvisvgm is called without parameters\&. .RE .PP \fB\-\-libgs=filename\fR .RS 4 This option is only available if the Ghostscript library is not directly linked to dvisvgm and if PostScript support was not completely disabled during compilation\&. In this case, dvisvgm tries to load the shared GS library dynamically during runtime\&. By default, it expects the library\(cqs name to be libgs\&.so (on Unix\-like systems) or gsdll32\&.dll (Windows)\&. Option \fB\-\-libgs\fR can be used to give a different name\&. Alternatively, it\(cqs also possible to set the GS library name by the environment variable LIBGS\&. The latter has less precedence than the command\-line option\&. .RE .PP \fB\-l, \-\-list\-specials\fR .RS 4 Prints a list of registered special handlers and exits\&. Each handler processes a set of special statements belonging to the same category\&. In most cases, the categories are identified by the prefix of the special statements\&. It\(cqs usually a leading word separated from the rest of the statement by a colon or a blank, e\&.g\&. \fIcolor\fR or \fIps\fR\&. .RE .PP \fB\-\-keep\fR .RS 4 Disables the removal of temporary files as created by Metafont (usually \&.gf, \&.tfm, and \&.log files)\&. .RE .PP \fB\-m, \-\-map\-file\fR=\fIfile\fR .RS 4 Sets the map file used to look up font names and encodings\&. dvisvgm does not provide its own map file but tries to read available ones coming with dvips or dvipdfm\&. If option \fB\-m\fR is not given, dvisvgm looks for ps2pk\&.map, dvipdfm\&.map, and psfonts\&.map (in this order)\&. Without further options, the file specified by option \fB\-m\fR will be used instead of the default maps\&. If you want dvisgvm to load the given file additionally to the default maps, add a leading \fI+\fR to the file/path, e\&.g\&. \-\-map\-file=+myfonts\&.map\&. For further information about the map file formats, see the manuals of dvips and dvipdfm\&. .RE .PP \fB\-M, \-\-mag\fR=\fIfactor\fR .RS 4 Sets the maginfication factor applied in conjunction with Metafont calls prior tracing the glyphs\&. The larger this value, the better the tracing results\&. Nevertheless, large magnification values can cause Metafont arithmetic errors due to number overflows\&. So, use this option with care\&. The default setting usually produces nice results\&. .RE .PP \fB\-n, \-\-no\-fonts\fR[=\fIvariant\fR] .RS 4 If this option is given, dvisvgm doesn\(cqt create SVG \fIfont\fR elements but uses \fIpaths\fR instead\&. The resulting SVG files tends to be larger but concurrently more compatible with most applications that don\(cqt support SVG fonts yet\&. The optional argument \fIvariant\fR selects the method how to substitute fonts by paths\&. Variant 0 creates \fIpath\fR and \fIuse\fR elements\&. Variant 1 creates \fIpath\fR elements only\&. Option \fB\-\-no\-fonts\fR implies \fB\-\-no\-styles\fR\&. .RE .PP \fB\-S, \-\-no\-specials\fR[=\fInames\fR] .RS 4 Disable processing of special commands embedded in the DVI file\&. If no further parameter is given, all specials are ignored\&. To selectively disable sets of specials, an optional comma\-separated list of names can be appended to this option\&. A \fIname\fR is the unique identifier referencing the intended special handler\&. Option \fB\-\-list\-specials\fR lists all currently available handlers and their names\&. All unsupported special statements are silently ignored\&. .RE .PP \fB\-\-no\-styles\fR .RS 4 By default, dvisvgm creates CSS styles and class attributes to reference fonts because it\(cqs more compact than repeatedly set the complete font information in each text element\&. However, if you prefer direct font references, the default behavior can be disabled with option \fB\-\-no\-styles\fR\&. .RE .PP \fB\-\-no\-mktexmf\fR .RS 4 Suppresses the generation of missing font files\&. If dvisvgm can\(cqt find a font file through the kpathsea lookup mechanism, it calls the external tools mktextfm or mktexmf by\&. This option disables these calls\&. .RE .PP \fB\-o, \-\-output\fR=\fIpattern\fR .RS 4 Sets the name pattern of the output file\&. Parameter \fIpattern\fR is a string that may contain the variables \fB%f\fR and \fB%p\fR\&. \fB%f\fR stands for the base name of the DVI file, i\&.e\&. the DVI filename without suffix, and \fB%p\fR is the current page number\&. The default pattern is \fB%f\-%p\&.svg\fR if the DVI file consists of more than one page, and \fB%f\&.svg\fR otherwise\&. That means, a DVI file \fIfoo\&.dvi\fR is converted to \fIfoo\&.svg\fR if \fIfoo\&.dvi\fR is a single\-page document\&. Otherwise, multiple SVG files \fIfoo\-01\&.svg\fR, \fIfoo\-02\&.svg\fR, etc\&. are produced\&. In Windows environments, the percent sign indicates dereferenced environment variables, and must therefore be protected by a second percent sign, e\&.g\&. \fB\-\-output=%%f\-%%p\fR\&. .RE .PP \fB\-p, \-\-page\fR=\fIranges\fR .RS 4 This option sets the pages to be processed\&. Parameter \fIranges\fR consists of a comma\-separated list of single page numbers and/or page ranges\&. A page range is a pair of numbers separated by a hyphen, e\&.g\&. 5\-12\&. Thus, a page sequence might look like this: 2\-4,6,9\-12,15\&. It doesn\(cqt matter if a page is given more than once or if page ranges overlap\&. dvisvgm always extracts the page numbers in ascending order and converts them only once\&. In order to stay compatible with previous versions, the default page sequence is 1\&. dvisvgm therefore converts only the first page and not the whole document in case option \fB\-\-page\fR is omitted\&. Usually, page ranges consist of two numbers denoting the first and last page to be converted\&. If the conversion is to be started at page 1, or if it should continue up to the last DVI page, the first or second range number can be omitted, respectively\&. Example: \fB\-\-page=\-10\fR converts all pages up to page 10, \fB\-\-page=10\-\fR converts all pages starting with page 10\&. Please consider that the page values don\(cqt refer to the page numbers printed on the page\&. Instead, the physical page count is expected, where the first page always gets number 1\&. .RE .PP \fB\-P, \-\-progress\fR[=\fIdelay\fR] .RS 4 Enables a simple progress indicator shown when time\-consuming operations like PostScript specials are processed\&. The indicator doesn\(cqt appear before the given delay (in seconds) has elapsed\&. The default delay value is 0\&.5 seconds\&. .RE .PP \fB\-r, \-\-rotate\fR=\fIangle\fR .RS 4 Rotates the page content clockwise by \fIangle\fR degrees around the page center\&. This option is equivalent to \fB\-TR\fR\fIangle\fR\&. .RE .PP \fB\-s, \-\-stdout\fR .RS 4 Don\(cqt write the SVG output to a file but redirect it to \fBstdout\fR\&. .RE .PP \fB\-t, \-\-translate\fR=\fItx\fR[,\fIty\fR] .RS 4 Translates (moves) the page content in direction of vector (\fItx\fR,\fIty\fR)\&. This option is equivalent to \fB\-TT\fR\fItx\fR,\fIty\fR\&. .RE .PP \fB\-T, \-\-transform\fR=\fIcommands\fR .RS 4 Applies a sequence of transformations to the SVG content\&. Each transformation is described by a \fIcommand\fR beginning with a capital letter followed by a list of comma\-separated parameters\&. Following transformation commands are supported: .PP \fBT\fR \fItx\fR[,\fIty\fR] .RS 4 Translates (moves) the page in direction of vector (\fItx\fR,\fIty\fR)\&. If \fIty\fR is omitted, \fIty\fR=0 is assumed\&. The expected unit length of \fItx\fR and \fIty\fR are TeX points (1pt = 1/72\&.27in)\&. However, there are several constants defined to simplify the unit conversion (see below)\&. .RE .PP \fBS\fR \fIsx\fR[,\fIsy\fR] .RS 4 Scales the page horizontally by \fIsx\fR and vertically by \fIsy\fR\&. If \fIsy\fR is omitted, \fIsy\fR=\fIsx\fR is assumed\&. .RE .PP \fBR\fR \fIangle\fR[,\fIx\fR,\fIy\fR] .RS 4 Rotates the page clockwise by \fIangle\fR degrees around point (\fIx\fR,\fIy\fR)\&. If the optional arguments \fIx\fR and \fIy\fR are omitted, the page will be rotated around its center depending on the chosen page format\&. When option \fB\-bnone\fR is given, the rotation center is origin (0,0)\&. .RE .PP \fBKX\fR \fIangle\fR .RS 4 Skews the page along the \fIx\fR\-axis by \fIangle\fR degrees\&. Argument \fIangle\fR can take any value except 90+180\fIk\fR, where \fIk\fR is an integer\&. .RE .PP \fBKY\fR \fIangle\fR .RS 4 Skews the page along the \fIy\fR\-axis by \fIangle\fR degrees\&. Argument \fIangle\fR can take any value except 90+180\fIk\fR, where \fIk\fR is an integer\&. .RE .PP \fBFH\fR [\fIy\fR] .RS 4 Mirrors (flips) the page at the horizontal line through point (0,\fIy\fR)\&. Omitting the optional argument leads to \fIy\fR=\fIh\fR/2, where \fIh\fR denotes the page height (see \fIpre\-defined constants\fR below)\&. .RE .PP \fBFV\fR [\fIx\fR] .RS 4 Mirrors (flips) the page at the vertical line through point (\fIx\fR,0)\&. Omitting the optional argument leads to \fIx\fR=\fIw\fR/2, where \fIw\fR denotes the page width (see \fIpre\-defined constants\fR below)\&. .RE .PP \fBM\fR \fIm1\fR,\&...,\fIm6\fR .RS 4 Applies a transformation described by the 3\(mu3 matrix ((\fIm1\fR,\fIm2\fR,\fIm3\fR),(\fIm4\fR,\fIm5\fR,\fIm6\fR),(0,0,1)), where the inner triples denote the rows\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br All transformation commands of option \fB\-T, \-\-transform\fR are applied in the order of their appearance\&. Multiple commands can optionally be separated by spaces\&. In this case the whole transformation string has to be enclosed in double quotes\&. All parameters are expressions of floating point type\&. You can either give plain numbers or arithmetic terms combined by the operators \fB+\fR (addition), \fB\-\fR (subtraction), \fB*\fR (multiplication), \fB/\fR (division) or \fB%\fR (modulo) with common associativity and precedence rules\&. Parentheses may be used as well\&. .sp Additionally, some pre\-defined constants are provided: .TS tab(:); lt lt lt lt lt lt lt lt. T{ \fBux\fR T}:T{ horizontal position of upper left page corner in TeX point units T} T{ \fBuy\fR T}:T{ vertical position of upper left page corner in TeX point units T} T{ \fBh\fR T}:T{ page height in TeX point units (0 in case of \fB\-bnone\fR) T} T{ \fBw\fR T}:T{ page width in TeX point units (0 in case of \fB\-bnone\fR) T} .TE .sp 1 Furthermore, you can use the length constants \fBpt\fR, \fBmm\fR, \fBcm\fR and \fBin\fR, e\&.g\&. 2cm or 1\&.6in\&. Thus, option \-TT1in,0R45 moves the page content 1 inch to the right and rotates it by 45 degrees around the page center afterwards\&. .sp For single transformations you can also use options \fB\-c\fR, \fB\-t\fR and \fB\-r\fR\&. Note that the order in which these options are given is not significant, i\&.e\&. you can\(cqt use them to describe transformation sequences\&. They are simply independent shorthand options for common transformations\&. .sp .5v .RE .RE .RE .PP \fB\-v, \-\-verbosity\fR=\fIlevel\fR .RS 4 Controls the type of messages printed during a dvisvgm run: .TS tab(:); lt lt lt lt lt lt lt lt. T{ \fB0\fR T}:T{ no message output T} T{ \fB1\fR T}:T{ error messages only T} T{ \fB2\fR T}:T{ warning messages only T} T{ \fB4\fR T}:T{ informational messages only T} .TE .sp 1 .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br By adding these values you can combine the categories\&. The default level is 7, i\&.e\&. all messages are printed\&. .sp .5v .RE .RE .PP \fB\-V, \-\-version\fR[=\fIextended\fR] .RS 4 Prints the version of dvisvgm and exits\&. If the optional argument is set to \fIyes\fR, the version numbers of the linked libraries are printed as well\&. .RE .PP \fB\-z, \-\-zip\fR[=\fIlevel\fR] .RS 4 Creates a compressed SVG file with suffix \&.svgz\&. The optional argument specifies the compression level\&. Valid values are in the range of 1 to 9 (default value is 9)\&. Larger values cause better compression results but take more computation time\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBCaution\fR .ps -1 .br This option cannot be combined with \fB\-s, \-\-stdout\fR\&. .sp .5v .RE .RE .SH "SUPPORT OF SPECIALS" .sp dvisvgm supports several sets of \fIspecial commands\fR that can be used to enrich DVI files with additional features, like color, graphics or hyperlinks\&. The evaluation of special commands is delegated to various handlers\&. Each handler is responsible for all special statements of the same command set, i\&.e\&. commands beginning with the same prefix\&. To get a list of actually provided special handlers, use option \fB\-\-list\-specials\fR (see above)\&. .PP \fBbgcolor\fR .RS 4 Special statement for changing the background/page color\&. Since SVG 1\&.1 doesn\(cqt support background colors, dvisvgm inserts a rectangle of the chosen color\&. In the current version, this rectangle always gets the size of the minimal bounding box\&. This command is part of the color special set but is handled separately in order to let the user turn it off\&. For an overview of the command syntax, see the documentation of dvips, for instance\&. .RE .PP \fBcolor\fR .RS 4 Statements of this command set provide instructions to change the text/paint color\&. For an overview of the exact syntax, see the documentation of dvips, for instance\&. .RE .PP \fBdvisvgm\fR .RS 4 dvisvgm offers its own small set of specials\&. The following list gives a brief overview\&. .PP \fBdvisvgm:raw\fR \fItext\fR .RS 4 Adds an arbitrary sequence of characters to the SVG output\&. dvisvgm does not perform any validation here, thus the user has to ensure that the resulting SVG is still valid\&. Parameter \fItext\fR may contain the macros \fB{?x}\fR, \fB{?y}\fR, and \fB{?color}\fR that are expanded to the current \fIx\fR or \fIy\fR coordinate and the current color, respectively\&. Also, macro \fB{?nl}\fR expands to a newline character\&. .RE .PP \fBdvisvgm:img\fR \fIwidth\fR \fIheight\fR \fIfile\fR .RS 4 Creates an image element at the current graphic position referencing the given file\&. JPEG, PNG, and SVG images can be used here\&. However, dvisvgm does not check the file format or the file name suffix\&. The lengths \fIwidth\fR and \fIheight\fR must be given as plain floating point numbers in TeX point units (1in = 72\&.27pt)\&. .RE .PP \fBdvisvgm:bbox\fR n[ew] \fIname\fR .RS 4 Defines or resets a local bounding box called \fIname\fR\&. The name may consist of letters and digits\&. While processing a DVI page, dvisvgm continuously updates the (global) bounding box of the current page in order to determine the minimal rectangle containing all visible page components (characters, images, drawing elements etc\&.) Additionally to the global bounding box, the user can request an arbitrary number of named local bounding boxes\&. Once defined, these boxes are updated together with the global bounding box starting with the first character that follows the definition\&. Thus, the local boxes can be used to compute the extent of parts of the page\&. This is useful for scenarios where the generated SVG file is post\-processed\&. In conjunction with special dvisvgm:raw, the macro \fB{?bbox \fR\fB\fIname\fR\fR\fB}\fR expands to the four values \fIx\fR, \fIy\fR, \fIw\fR, and \fIh\fR (separated by spaces) specifying the coordinates of the upper left corner, width, and height of the local box \fIname\fR\&. If box \fIname\fR wasn\(cqt previously defined, all four values equal zero\&. .RE .PP \fBdvisvgm:bbox\fR \fIwidth\fR \fIheight\fR [\fIdepth\fR] .RS 4 Updates the bounding box of the current page by embedding a virtual rectangle (\fIx\fR, \fIy\fR, \fIwidth\fR, \fIheight\fR) where the lower left corner is located at the current DVI drawing position (\fIx\fR,\fIy\fR)\&. If the optional parameter \fIdepth\fR is specified, dvisvgm embeds a second rectangle (\fIx\fR, \fIy\fR, \fIwidth\fR, \-\fIdepth\fR)\&. The lengths \fIwidth\fR, \fIheight\fR and \fIdepth\fR must be given as plain floating point numbers in TeX point units (1in = 72\&.27pt)\&. Depending on size and position of the virtual rectangle, this command either enlarges the overall bounding box or leaves it as is\&. It\(cqs not possible to reduce its extent\&. This special should be used in conjunction with \fBdvisvgm:raw\fR in order to update the viewport of the page properly\&. .RE .PP \fBdvisvgm:bbox\fR a[bs] \fIx1\fR \fIy1\fR \fIx2\fR \fIy2\fR .RS 4 This variant of the bbox special updates the bounding box by embedding a virtual rectangle (\fIx1\fR,\fIy1\fR,\fIx2\fR,\fIy2\fR)\&. The points (\fIx1\fR,\fIy1\fR) and (\fIx2\fR,\fIy2\fR) denote two diagonal corners of the rectangle given in TeX point units\&. .RE .PP \fBdvisvgm:bbox\fR f[ix] \fIx1\fR \fIy1\fR \fIx2\fR \fIy2\fR .RS 4 This variant of the bbox special assigns an absolute (final) bounding box to the resulting SVG\&. After executing this command, dvisvgm doesn\(cqt further alter the bounding box coordinates, except this special is called again later\&. The points (\fIx1\fR,\fIy1\fR) and (\fIx2\fR,\fIy2\fR) denote two diagonal corners of the rectangle given in TeX point units\&. .sp The following TeX snippet adds two raw SVG elements to the output and updates the bounding box accordingly: .sp .if n \{\ .RS 4 .\} .nf \especial{dvisvgm:raw } \especial{dvisvgm:bbox 20 10 10} \especial{dvisvgm:raw } \especial{dvisvgm:bbox abs 10 200 100 250} .fi .if n \{\ .RE .\} .RE .RE .PP \fBem\fR .RS 4 These specials were introduced with the emTeX distribution by Eberhard Mattes\&. They provide line drawing statements, instructions for embedding MSP, PCX, and BMP image files, as well as two PCL commands\&. dvisvgm supports only the line drawing statements and ignores all other em specials silently\&. A description of the command syntax can be found in the DVI driver documentation coming with emTeX (see CTAN)\&. .RE .PP \fBps\fR .RS 4 The famous DVI driver dvips introduced its own set of specials in order to embed PostScript code into DVI files, which greatly improves the capabilities of DVI documents\&. One aim of dvisvgm is to completely evaluate all PostScript snippets and to convert a large amount of it to SVG\&. However, in contrast to dvips, dvisvgm uses floating point arithmetics to compute the precise position of each graphic element, i\&.e\&. it doesn\(cqt round the corrdinates\&. Therefore, the relative locations of the graphic elements may slightly differ from those computed by dvips\&. .sp Since PostScript is a rather complex language, dvisvgm does not try to implement its own PostScript interpreter but relies on Ghostscript instead\&. If the Ghostscript library was not linked while building dvisvgm, it is looked up and dynamically loaded during runtime\&. In this case, dvisvgm looks for \fIlibgs\&.so\fR on Unix\-like systems, and for \fIgsdll32\&.dll\fR on Windows\&. You can override these default file names with the environment variable LIBGS\&. The library must be installed and must be reachable through the ld search path (*nix) or the PATH environment variable (Windows)\&. If it cannot be found, the evaluation of PostScript specials is disabled\&. Use option \fB\-\-list\-specials\fR to check whether PS support is available, i\&.e\&. the entry \fIps\fR is present\&. .RE .PP \fBtpic\fR .RS 4 The TPIC special set defines instructions for drawing simple geometric objects\&. Some LaTeX packages, like eepic and tplot, use these specials to describe graphics\&. .RE .SH "EXAMPLES" .sp .if n \{\ .RS 4 .\} .nf dvisvgm file .fi .if n \{\ .RE .\} .sp Converts the first page of \fIfile\&.dvi\fR to \fIfile\&.svg\fR\&. .sp .if n \{\ .RS 4 .\} .nf dvisvgm \-z file .fi .if n \{\ .RE .\} .sp Converts the first page of \fIfile\&.dvi\fR to \fIfile\&.svgz\fR with default compression level 9\&. .sp .if n \{\ .RS 4 .\} .nf dvisvgm \-p5 \-z3 \-ba4\-l \-onewfile file .fi .if n \{\ .RE .\} .sp Converts the fifth page of \fIfile\&.dvi\fR to \fInewfile\&.svgz\fR with compression level 3\&. The bounding box is set to DIN/ISO A4 in landscape format\&. .sp .if n \{\ .RS 4 .\} .nf dvisvgm \-\-transform="R20,w/3,2h/5 T1cm,1cm S2,3" file .fi .if n \{\ .RE .\} .sp Converts the first page of \fIfile\&.dvi\fR to \fIfile\&.svg\fR where three transformations are applied\&. .SH "ENVIRONMENT" .sp dvisvgm uses the \fBkpathsea\fR library for locating the files that it opens\&. Hence, the environment variables described in the library\(cqs documentation influence the converter\&. .sp If dvisvgm was linked without the Ghostscript library, and if PostScript support has not been disabled, the shared Ghostscript library is looked up during runtime via dlopen()\&. The environment variable LIBGS can be used to specify path and file name of the library\&. .sp The pre\-compiled Windows version of dvisvgm requires a working installation of MiKTeX 2\&.9 or above\&. To enable evaluation of PostScript specials, the original Ghostscript DLL \fIgsdll32\&.dll\fR must be present and reachable through the search path\&. .sp The environment variable DVISVGM_COLORS specifies the colors used to highlight various parts of dvisvgm\(cqs message output\&. It is only evaluated if option \fB\-\-color\fR is given\&. The value of DVISVGM_COLORS is a list of colon\-separated entries of the form \fIgg\fR=\fIBF\fR, where \fIgg\fR denotes one of the color group indicators listed below, and \fIBF\fR are two hexadecimal digits specifying the background (first digit) and foreground/text color (second digit)\&. The color color values are defined as follows: 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=gray, 8=bright red, 9=bright green, A=bright yellow, B=bright blue, C=bright magenta, D=bright cyan, E=bright gray, F=white\&. Depending on the terminal, the colors may differ\&. Rather than changing both the text and background color, it\(cqs also possible to change only one of them: An asterisk (*) in place of a hexadecimal digit indicates the default text or background color of the terminal\&. .sp All malformed entries in the list are silently ignored\&. .TS tab(:); lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt. T{ .sp \fBer\fR T}:T{ .sp error messages T} T{ .sp \fBwn\fR T}:T{ .sp warning messages T} T{ .sp \fBpn\fR T}:T{ .sp messages about page numbers T} T{ .sp \fBps\fR T}:T{ .sp page size messages T} T{ .sp \fBfw\fR T}:T{ .sp information about the files written T} T{ .sp \fBsm\fR T}:T{ .sp state messages T} T{ .sp \fBtr\fR T}:T{ .sp messages of the glyph tracer T} T{ .sp \fBpi\fR T}:T{ .sp progress indicator T} .TE .sp 1 .sp \fBExample:\fR er=01:pi=*5 sets the colors of error messages (er) to red (1) on black (0), and those of progress indicators (pi) to cyan (5) on default background (*)\&. .SH "FILES" .sp The location of the following files is determined by the kpathsea library\&. To check the actual kpathsea configuration you can use the \fBkpsewhich\fR utility\&. .TS tab(:); lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt. T{ .sp \fB*\&.enc\fR T}:T{ .sp Font encoding files T} T{ .sp \fB*\&.fgd\fR T}:T{ .sp Font glyph data files (cache files created by dvisvgm) T} T{ .sp \fB*\&.map\fR T}:T{ .sp Font map files T} T{ .sp \fB*\&.mf\fR T}:T{ .sp Metafont input files T} T{ .sp \fB*\&.pfb\fR T}:T{ .sp PostScript Type 1 font files T} T{ .sp \fB*\&.pro\fR T}:T{ .sp PostScript header/prologue files T} T{ .sp \fB*\&.tfm\fR T}:T{ .sp TeX font metric files T} T{ .sp \fB*\&.ttf\fR T}:T{ .sp TrueType font files T} T{ .sp \fB*\&.vf\fR T}:T{ .sp Virtual font files T} .TE .sp 1 .SH "SEE ALSO" .sp \fBtex(1), mf(1), mktexmf(1), grodvi(1), potrace(1)\fR, and the \fBkpathsea library\fR info documentation\&. .SH "RESOURCES" .PP Project home page .RS 4 http://dvisvgm\&.sourceforge\&.net .RE .PP SourceForge project site .RS 4 http://sourceforge\&.net/projects/dvisvgm .RE .SH "AUTHOR" .sp Written by Martin Gieseking .SH "COPYING" .sp Copyright \(co 2005\-2012 Martin Gieseking\&. Free use of this software is granted under the terms of the GNU General Public License (GPL) version 3 or, (at your option) any later version\&.