diff options
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in | 1008 |
1 files changed, 0 insertions, 1008 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in deleted file mode 100644 index 739f6e5c16d..00000000000 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.txt.in +++ /dev/null @@ -1,1008 +0,0 @@ -////////////////////////////////////////////////////////////////////////// -// This file is part of dvisvgm -- a fast DVI to SVG converter // -// Copyright (C) 2005-2021 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. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program; if not, see <http://www.gnu.org/licenses/>. // -////////////////////////////////////////////////////////////////////////// - -dvisvgm(1) -========== -Martin Gieseking <@PACKAGE_BUGREPORT@> -:man source: dvisvgm -:man version: @VERSION@ -:man manual: dvisvgm Manual -:revdate: 2021-01-03 19:25 +0100 - -Name ----- -dvisvgm - converts DVI and EPS files to the XML-based SVG format - - -Synopsis --------- -*dvisvgm* [ 'options' ] 'file' [.dvi] - -*dvisvgm* --eps [ 'options' ] 'file' [.eps] - -*dvisvgm* --pdf [ 'options' ] 'file' [.pdf] - - -Description ------------ -The command-line utility *dvisvgm* converts DVI files, as generated by TeX/LaTeX, to the -XML-based scalable vector graphics format SVG. It supports the classic DVI version 2 as -well as version 3 (created by pTeX in vertical mode), and the XeTeX versions 5 to 7 which are -also known as XDV. Besides the basic DVI commands, dvisvgm also evaluates many so-called -'specials' which heavily extend the capabilities of the plain DVI format. For a more detailed -overview, see section <<specials,*Supported Specials*>> below. - -Since the current SVG standard 1.1 doesn't 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 *-p* which is described below. - -SVG is a vector-based graphics format and therefore dvisvgm tries to convert the glyph outlines -of all fonts referenced in a DVI page section to scalable path descriptions. The fastest way -to achieve this is to extract the path information from vector-based font files available in -PFB, TTF, or OTF format. If dvisvgm is able to find such a file, it extracts all necessary -outline information about the glyphs from it. - -However, TeX's main source for font descriptions is Metafont, which produces bitmap output -(GF files). That's why not all obtainable TeX fonts are available in a scalable format. -In these cases, dvisvgm tries to vectorize Metafont's output by tracing the glyph bitmaps. -The results are not as perfect as most (manually optimized) PFB or OTF counterparts, but are -nonetheless really nice in most cases. - -When running dvisvgm without option *--no-fonts*, it creates 'font' elements (+<font>+...+</font>+) -to embed the font data into the SVG files. Unfortunately, only few SVG renderers support these -elements yet. Most web browsers and vector graphics applications don't evaluate them properly so -that the text components of the resulting graphics might look strange. In order to create more -compatible SVG files, command-line option *--no-fonts* can be given to replace the font elements -by plain graphics paths. Most web browsers (but only few external SVG renderers) also suppport -WOFF and WOFF2 fonts that can be used instead of the default SVG fonts. Option *--font-format* -offers the functionality to change the format applied to the fonts being embedded. This, however, -only works when converting DVI files. Text present in PDF and PostScript files is always -converted to path elements. - - -Options -------- -dvisvgm provides a POSIX-compliant command-line interface with short and long option names. -They may be given before and/or after the name of the file to be converted. Also, the order of -specifying the options is not significant, i.e. you can add them in any order without changing -dvisvgm's behavior. Certain options accept or require additional parameters which are directly -appended to or separated by whitespace from a short option (e.g. +-v0+ or +-v 0+). Long options -require an additional equals sign (+=+) between option name and argument but without any surrounding -whitespace (e.g. +--verbosity=0+). Multiple short options that don't expect a further parameter can -be combined after a single dash (e.g. +-ejs+ rather than +-e -j -s+). - -Long option names may also be shortened by omitting trailing characters. As long as the shortened -name is unambiguous, it's recognized and applied. For example, option +--exact-bbox+ can be shortened -to +--exact+, +--exa+, or +--ex+. In case of an ambiguous abbreviation, dvisvgm prints an error -message together with all matching option names. - -*-b, --bbox*='fmt':: -Sets the bounding box of the generated SVG graphic to the specified format. This option only affects -the conversion of DVI files. SVG documents generated from PDF and PostScript always inherit the -bounding boxes of the input files. -+ -Parameter 'fmt' takes either one of the format specifiers listed below, or a sequence of four comma- -or whitespace-separated length values 'x1', 'y1', 'x2' and 'y2'. The latter define the absolute -coordinates of 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, pc, dd, cc, or sp). If the unit is -omitted, TeX points (pt) are assumed. -+ -It's also possible to give only one length value 'l'. In this case, the minimal bounding box -is computed and enlarged by adding (-'l',-'l') to the upper left and ('l','l') to the lower -right corner. -+ -Additionally, dvisvgm also supports the following format specifiers: - - *International DIN/ISO paper sizes*;; - A__n__, B__n__, C__n__, D__n__, where 'n' is a non-negative integer, e.g. A4 or a4 for DIN/ISO A4 - format (210mm × 297mm). - - *North American paper sizes*;; - invoice, executive, legal, letter, ledger - - *Special bounding box sizes*;; -[horizontal] - *dvi* ::: page size stored in the DVI file - *min* ::: computes the minimal/tightest bounding box - *none* ::: no bounding box is assigned - *papersize* ::: box sizes specified by 'papersize' specials present in the DVI file - *preview* ::: bounding box data computed by the preview package (if present in the DVI file) -// - *Page orientation*;; - The default page orientation for DIN/ISO and American paper sizes is 'portrait', - i.e. 'width' < 'height'. Appending *-landscape* or simply *-l* to the format - string switches to 'landscape' mode ('width' > 'height'). For symmetry reasons you can - also explicitly add *-portrait* or *-p* 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't be used with *dvi*, *min*, and *none*. -+ -[NOTE] -Option *-b, --bbox* only affects the bounding box and does not transform the page content. -Hence, if you choose a landscape format, the page won't be rotated. -+ -// - -// -*-B, --bitmap-format*='fmt':: -This option sets the image format used to embed bitmaps extracted from PostScript or PDF data. -By default, dvisvgm embeds all bitmaps as JPEG images because it's the most compact of the two formats -supported by SVG. To select the alternative lossless PNG format, *--bitmap-format=png* can be used. -There are some more format variants dvisvgm currently supports even though +jpeg+ and +png+ should be -sufficient in most cases. The following list gives an overview of the known format names which -correspond to names of Ghostscript output devices. -+ --- -[horizontal] -*none* ::: disable processing of bitmap images -*jpeg* ::: color JPEG format -*jpeggray* ::: grayscale JPEG format -*png* ::: grayscale or 24-bit color PNG format depending on current color space -*pnggray* ::: grayscale PNG format -*pngmono* ::: black-and-white PNG format -*pngmonod* ::: dithered black-and-white PNG format -*png16* ::: 4-bit color PNG format -*png256* ::: 8-bit color PNG format -*png16m* ::: 24-bit color PNG format --- -+ -Since the collection of supported output devices can vary among local Ghostscript installations, -not all formats may be available in some environments. dvisvgm quits with a PostScript error message -if the selected output format requires a locally unsupported output device. -+ -The two JPEG format specifiers accept an optional parameter to set the IJG quality level -which must directly follow the format specifier separated by a colon, e.g. *--bitmap-format=jpeg:50*. -The quality value is an integer between 0 and 100. Higher values result in better image quality but -lower compression rates and therefore larger files. The default quality level is 75 which is applied -if no quality parameter is given or if it's set to 0. - -*-C, --cache*[='dir']:: -To speed up the conversion process of bitmap fonts, dvisvgm saves intermediate conversion -information in cache files. By default, these files are stored in +$XDG_CACHE_HOME/dvisvgm/+ -or +$HOME/.cache/dvisvgm+ if +XDG_CACHE_HOME+ is not set. -If you prefer a different location, use option *--cache* to overwrite the default. Furthermore, -it is also possible to disable the font caching mechanism completely with option *--cache=none*. -If argument 'dir' is omitted, dvisvgm prints the path of the default cache directory together -with further information about the stored fonts. Additionally, outdated and corrupted cache files -are removed. - -*-j, --clipjoin*:: -This option tells dvisvgm to compute all intersections of clipping paths itself rather than -delegating this task to the SVG renderer. The resulting SVG files are more portable because -some SVG viewers don't support intersecting clipping paths which are defined by 'clipPath' -elements containing a 'clip-path' attribute. - -*--color*:: -Enables colorization of messages printed during the conversion process. The colors can be -customized via environment variable *DVISVGM_COLORS*. See the <<environment, Environment section>> -below for further information. - -*--colornames*:: -By default, dvisvgm exclusively uses RGB values of the form '#RRGGBB' or '#RGB' to represent -colors in the SVG file. The latter is a short form for colors whose RGB components each -consist of two identical hex digits, e.g. +#123+ equals +#112233+. -According to the SVG standard, it's also possible to use color names (like +black+ and +darkblue+) -for a limited number of https://www.w3.org/TR/SVG11/types.html#ColorKeywords[predefined colors]. -In order to apply these color names rather than their RGB values, call dvisvgm with option -*--colornames*. All colors without an SVG color name will still be represented by RGB values. - -*--comments*:: -Adds comments with further information about selected data to the SVG file. Currently, only -font elements and font CSS rules related to native fonts are annotated. - -*-E, --eps*:: -If this option is given, dvisvgm does not expect a DVI but an EPS input file, and tries to convert -it to SVG. In order to do so, a single 'psfile' special command is created and forwarded to the -PostScript special handler. -This option is only available if dvisvgm was built with PostScript support enabled, and requires -Ghostscript to be available. See option *--libgs* for further information. - -*-e, --exact-bbox*:: -This option tells dvisvgm to compute the precise bounding box of each character. By default, -the values stored in a font's TFM file are used to determine a glyph's extent. As these values are -intended to implement optimal character placements and are not designed to represent the exact -dimensions, they don't necessarily correspond with the bounds of the visual glyphs. Thus, width -and/or height of some glyphs may be larger (or smaller) than the respective TFM values. As a result, -this can lead to clipped characters at the bounds of the SVG graphics. With option *--exact-bbox* -given, dvisvgm analyzes the actual shape of each character and derives a usually tight bounding box. - -*-f, --font-format*='format':: -Selects the file format used to embed font data into the generated SVG output when converting DVI -files. It has no effect when converting PDF or PostScript files. Text fragments present in these -files are always converted to path elements. -+ -Following formats are supported: +SVG+ (that's the default), +TTF+ (TrueType), +WOFF+, and +WOFF2+ -(Web Open Font Format version 1 and 2). -By default, dvisvgm creates unhinted fonts that might look bad on low-resolution devices. In order to -improve the display quality, the generated TrueType, WOFF, or WOFF2 fonts can be autohinted. The -autohinter is enabled by appending +,autohint+ or +,ah+ to the font format, -e.g. +--font-format=woff,autohint+ or +--fwoff,ah+. -+ -Option *--font-format* is only available if dvisvgm was built with WOFF support enabled. - -*-m, --fontmap*='filenames':: -Loads and evaluates a single font map file or a sequence of font map files. These files are required -to resolve font file names and encodings. dvisvgm does not provide its own map files but tries to read -available ones coming with dvips or dvipdfm. If option *--fontmap* is omitted, dvisvgm looks for the -default map files 'ps2pk.map', 'pdftex.map', 'dvipdfm.map', and 'psfonts.map' (in this order). -Otherwise, the files given as option arguments are evaluated in the given order. Multiple filenames -must be separated by commas without leading and/or trailing whitespace. -+ -By default, redefined mappings do not replace previous ones. However, each filename can be preceded by -an optional mode specifier (*+*, *-*, or *=*) to change this behavior: - - +mapfile;; - Only those entries in the given map file that don't redefine a font mapping are applied, i.e. - fonts already mapped keep untouched. That's also the default mode if no mode specifier is given. - - -mapfile;; - Ensures that none of the font mappings defined in the given map file are used, i.e. previously - defined mappings for the specified fonts are removed. - - =mapfile;; - All mappings defined in the map file are applied. Previously defined settings for the same fonts - are replaced. -+ -If the first filename in the filename sequence is preceded by a mode specifier, dvisvgm loads the -default font map (see above) and applies the other map files afterwards. Otherwise, none of default -map files will be loaded automatically. -+ -Examples: +--fontmap=myfile1.map,+myfile2.map+ loads 'myfile1.map' followed by 'myfile2.map' where all -redefinitions of `myfile2.map` are ignored. -+--fontmap==myfile1.map,-myfile2.map+ loads the default map file followed by 'myfile1.map' and 'myfile2.map' -where all redefinitions of 'myfile1.map' replace previous entries. Afterwards, all definitions for the fonts -given in 'myfile2.map' are removed from the font map tree. -+ -For further information about the map file formats and the mode specifiers, see the manuals of -https://tug.org/texinfohtml/dvips.html[dvips] and https://ctan.org/tex-archive/dviware/dvipdfm[dvipdfm]. - -*--grad-overlap*:: -Tells dvisvgm to create overlapping grid segments when approximating color gradient fills (also see -option *--grad-segments* below). By default, adjacent segments don't overlap but only touch each other -like separate tiles. However, this alignment can lead to visible gaps between the segments -because the background color usually influences the color at the boundary of the segments if the -SVG renderer uses anti-aliasing to create smooth contours. -One way to avoid this and to create seamlessly touching color regions is to enlarge the segments so -that they extend into the area of their right and bottom neighbors. Since the latter are drawn on top -of the overlapping parts, the visible size of all segments keeps unchanged. Just the former gaps -disappear as the background is now completely covered by the correct colors. -Currently, dvisvgm computes the overlapping segments separately for each patch of the mesh (a patch mesh -may consist of multiple patches of the same type). Therefore, there still might be visible gaps -at the seam of two adjacent patches. - -*--grad-segments*='number':: -Determines the maximal number of segments per column and row used to approximate gradient color fills. -Since SVG 1.1 only supports a small subset of the shading algorithms available in PostScript, -dvisvgm approximates some of them by subdividing the area to be filled into smaller, monochromatic -segments. Each of these segments gets the average color of the region it covers. Thus, increasing the -number of segments leads to smaller monochromatic areas and therefore a better approximation of the -actual color gradient. As a drawback, more segments imply bigger SVG files because every segment is -represented by a separate path element. -+ -Currently, dvisvgm supports free- and lattice-form triangular patch meshes as well as Coons and -tensor-product patch meshes. They are approximated by subdividing the area of each patch into a -__n__×__n__ grid of smaller segments. The maximal number of segments per column and row can be -changed with option *--grad-segments*. - -*--grad-simplify*='delta':: -If the size of the segments created to approximate gradient color fills falls below the given delta -value, dvisvgm reduces their level of detail. For example, Bézier curves are replaced by straight -lines, and triangular segments are combined to tetragons. For a small 'delta', these simplifications -are usually not noticeable but reduce the size of the generated SVG files significantly. - -*-h, --help*[='mode']:: -Prints a short summary of all available command-line options. The optional 'mode' parameter is -an integer value between 0 and 2. It selects the display variant of the help text. Mode 0 -lists all options divided into categories with section headers. This is also the default if -dvisvgm is called without parameters. Mode 1 lists all options ordered by the short option names, -while mode 2 sorts the lines by the long option names. -+ -A values in brackets after the description text indicate the default parameter of the option. They -are applied if an option with a mandatory parameter is not used or if an optional parameter is omitted. -For example, option *--bbox* requires a size parameter which defaults to +min+ if *--bbox* is not -used. Option *--zip*, which isn't applied by default, accepts an optional compression level parameter. -If it's omitted, the stated default value 9 is used. - -*--keep*:: -Disables the removal of temporary files as created by Metafont (usually .gf, .tfm, and .log files) or -the TrueType/WOFF module. - -*--libgs*='path':: -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's name -to be +libgs.so.X+ (on Unix-like systems, where +X+ is the ABI version of the library) or -+gsdll32.dll+/+gsdll64.dll+ (Windows). If dvisvgm doesn't find the library, option *--libgs* can be -used to specify the correct path and filename, e.g. +--libgs=/usr/local/lib/libgs.so.9+ or -+--libgs=\gs\gs9.25\bin\gsdll64.dll+. -+ -Alternatively, it's also possible to assign the path to environment variable *LIBGS*, e.g. -+export LIBGS=/usr/local/lib/libgs.so.9+ or +set LIBGS=\gs\gs9.25\bin\gsdll63.dll+. *LIBGS* has -less precedence than the command-line option, i.e. dvisvgm ignores variable *LIBGS* if *--libgs* -is given. - -*-L, --linkmark*='style':: -Selects the method how to mark hyperlinked areas. The 'style' argument can take one of the values -'none', 'box', and 'line', where 'box' is the default, i.e. a rectangle is drawn around -the linked region if option *--linkmark* is omitted. Style argument 'line' just draws the lower edge of -the bounding rectangle, and 'none' tells dvisvgm not to add any visible objects to hyperlinks. -The lines and boxes get the current text color selected. In order to apply a different, constant color, -a colon followed by a color specifier can be appended to the style string. A 'color specifier' is either -a hexadecimal RGB value of the form '#RRGGBB', or a -https://en.wikibooks.org/wiki/LaTeX/Colors#The_68_standard_colors_known_to_dvips[dvips color name]. -+ -Moreover, argument 'style' can take a single color specifier to highlight the linked region by -a frameless box filled with that color. An optional second color specifier separated by a colon -selects the frame color. -+ -Examples: +box:red+ or +box:#ff0000+ draws red boxes around the linked areas. +yellow:blue+ creates -yellow filled rectangles with blue frames. - -*-l, --list-specials*:: -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's usually a leading string followed by a colon or a blank, -e.g. 'color' or 'ps'. The listed handler names, however, don't need to match these prefixes, e.g. -if there is no common prefix or if functionality is split into separate handlers in order to allow -to disable them separately with option *--no-specials*. All special statements not covered by one -of the special handlers are silently ignored. - -*-M, --mag*='factor':: -Sets the magnification 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. - -*--no-merge*:: -Puts every single character in a separate 'text' element with corresponding 'x' and 'y' attributes. -By default, new 'text' or 'tspan' elements are only created if a string starts at a location that -differs from the regular position defined by the characters' advance values. - -*--no-mktexmf*:: -Suppresses the generation of missing font files. If dvisvgm can't find a font file -through the kpathsea lookup mechanism, it calls the external tools 'mktextfm' or 'mktexmf'. -This option disables these calls. - -*-n, --no-fonts*[='variant']:: -If this option is given, dvisvgm doesn't create SVG 'font' elements but uses 'paths' instead. The -resulting SVG files tend to be larger but are concurrently more compatible with most applications that -don't support SVG fonts. The optional argument 'variant' selects the method how to substitute fonts -by paths. Variant 0 creates 'path' and 'use' elements in order to avoid lengthy duplicates. -Variant 1 creates 'path' elements only. -Option *--no-fonts* implies *--no-styles*. - -*-c, --scale*='sx'[,'sy']:: -Scales the page content horizontally by 'sx' and vertically by 'sy'. This option is equivalent -to *-TS*'sx','sy'. - -*-S, --no-specials*[='names']:: -Disable processing of special commands embedded in the DVI file. If no further parameter is given, -all specials are ignored. To disable a selected set of specials, an optional comma-separated list -of names can be appended to this option. A 'name' is the unique identifier referencing the intended -special handler as listed by option *--list-specials*. - -*--no-styles*:: -By default, dvisvgm creates CSS styles and class attributes to reference fonts. This variant is -more compact than adding the complete font information to each text element over and over again. -However, if you prefer direct font references, the default behavior can be disabled with -option *--no-styles*. - -*-O, --optimize*[='modules']:: -Applies several optimizations on the generated SVG tree to reduce the file size. The optimizations -are performed by running separate optimizer modules specified by optional argument 'modules'. -It may consist of a single module name or a comma-separated list of several module names. -The corresponding modules are executed one by one in the given order and thus transform the -XML tree gradually. -+ -The following list describes the currently available optimizer modules. - - *list*;; - Lists all available optimizer modules and exits. - - *none*;; - If this argument is given, dvisvgm doesn't apply any optimization. *none* can't be combined - with other module names. - - *all*;; - Performs all optimizations listed below. This is also the default if option *--optimize* is - used without argument. The modules are executed in a predefined order that usually leads to the - best results. *all* can't be combined with other module names. - - *collapse-groups*;; - Combines nested group elements (+<g>+...+</g>+) that contain only a single group each. If possible, - the group attributes are moved to the outermost element of the processed subtree. This module also - unwraps group elements that have no attributes at all. - - *group-attributes*;; - Creates groups (+<g>+...+</g>+) for common attributes around adjacent elements. Each attribute is - moved to a separate group so that multiple common attributes lead to nested groups. They can be - combined by applying optimizer module 'collapse-groups' afterwards. The algorithm only takes - inheritable properties, such as +fill+ or +stroke-width+, into account and only removes them from - an element if none of the other attributes, like +id+, prevents this. - - *remove-clippath*;; - Removes all redundant 'clipPath' elements. This optimization was already present in former versions - of dvisvgm and was always applied by default. This behavior is retained, i.e. dvisvgm executes - this module even if option *--optimize* is not given. You can use argument 'none' to prevent that. - - *simplify-text*;; - If a +text+ element only contains whitespace nodes and +tspan+ elements, all common inheritable - attributes of the latter are moved to the enclosing text element. All +tspan+ elements without - further attributes are unwrapped. - - *simplify-transform*;; - Tries to shorten all 'transform' attributes. This module combines the transformation commands of - each attribute and decomposes the resulting transformation matrix into a sequence of basic - transformations, i.e. translation, scaling, rotation, and skewing. If this sequence is shorter - than the equivalent 'matrix' expression, it's assigned to the attribute. Otherwise, the matrix - expression is used. - -*-o, --output*='pattern':: -Sets the pattern specifying the names of the generated SVG files. Parameter 'pattern' is a string -that may contain static character sequences as well as the variables +%f+, +%p+, +%P+, +%hd+, -+%ho+, and +%hc+. +%f+ expands to the base name of the DVI file, i.e. the filename without -suffix, +%p+ is the current page number, and +%P+ the total number of pages in the DVI file. An -optional number (0-9) given directly after the percent sign specifies the minimal number of digits -to be written. If a particular value consists of less digits, the number is padded with leading -zeros. Example: +%3p+ enforces 3 digits for the current page number (001, 002, etc.). Without an -explicit width specifier, +%p+ gets the same number of digits as +%P+. -+ -If you need more control over the numbering, you can use arithmetic expressions as part of a pattern. -The syntax is +%(+'expr'+)+ where 'expr' may contain additions, subtractions, multiplications, and -integer divisions with common precedence. The variables *p* and *P* contain the current page number -and the total number of pages, respectively. For example, +--output="%f-%(p-1)"+ creates filenames -where the numbering starts with 0 rather than 1. -+ -The variables +%hX+ contain different hash values computed from the DVI page data and the options -given on the command-line. +%hd+ and +%hc+ are only set if option *--page-hashes* is present. -Otherwise, it's empty. For further information, see the description of option *--page-hashes* below. -+ -The default pattern is +%f-%p.svg+ if the DVI file consists of more than one page, and -+%f.svg+ otherwise. That means, a DVI file 'foo.dvi' is converted to 'foo.svg' if 'foo.dvi' -is a single-page document. Otherwise, multiple SVG files 'foo-01.svg', 'foo-02.svg', 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. +--output=%%f-%%p+. - -*-p, --page*='ranges':: -This option selects the pages to be processed. Parameter 'ranges' 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't 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 if option *--page* is omitted. -Usually, page ranges consist of two numbers denoting the first and last page to be converted. -If the conversion should start 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: +--page=-10+ converts all -pages up to page 10, +--page=10-+ converts all pages starting with page 10. -Please consider that the page values don't refer to the page numbers printed on the -corresponding page. Instead, the physical page count is expected, where the first page always -gets number 1. - -*-H, --page-hashes*[='params']:: -If this option is given, dvisvgm computes hash values of all pages to be processed. As long as the -page contents don't change, the hash value of that page stays the same. This property can be used -to determine whether a DVI page must be converted again or can be skipped in consecutive runs of -dvisvgm. This is done by propagating the hash value to variable +%hd+ which can be accessed in -the output pattern (see option *--output*). By default, dvisvgm changes the output pattern to -+%f-%hd+ if option *--page-hashes* is given. As a result, all SVG file names contain the hash -value instead of the page number. When calling dvisvgm again with option *--page-hashes* with the -same output pattern, it checks the existence of the SVG file to be created and skips the conversion -if it's already present. This also applies for consecutive calls of dvisvgm with different -command-line parameters. If you want to force another conversion of a DVI file that hasn't changed, -you must remove the corresponding SVG files beforehand or add the parameter +replace+ (see below). -If you manually set the output pattern to not contain a hash value, the conversion won't be skipped. -+ -Alternatively, the output pattern may contain the variables +%ho+ and +%hc+. +%ho+ expands to a -32-bit hash representing the given command-line options that affect the generated SVG output, like -*--no-fonts* and *--precision*. Different combinations of options and parameters lead to different -hashes. Thus pattern +%f-%hd-%ho+ creates filenames that change depending on the DVI data and -the given command-line options. Variable +%hc+ provides a combined hash computed from the DVI data -and the command-line options. It has the same length as +%hd+. -+ -Since the page number isn't part of the file name by default, different DVI pages with identical -contents get the same file name. Therefore, only the first one is converted while the others are -skipped. To create separate files for each page, you can add the page number to the output pattern, -e.g. +--output="%f-%p-%hc"+. -+ -By default, dvisvgm uses the fast XXH64 hash algorithm to compute the values provided through +%hd+ and -+%hc+. 64-bit hashes should be sufficient for most documents with an average size of pages. Alternatively, -XXH32 and MD5 can be used as well. The desired algorithm is specified by argument 'params' of option -*--page-hashes*. It takes one of the strings +MD5+, +XXH32+, and +XXH64+, where the names can be given -in lower case too, like +--page-hashes=md5+. Since version 0.7.1, xxHash provides an experimental 128-bit -hash function whose algorithm has been stabilized as of version 0.8. When using a version prior to 0.8, -the 128-bit hash values can vary depending on the used xxHash version. If the corresponding API is -available, dvisvgm supports the new hash function, and option *--page-hashes* additionally accepts the -algorithm specifier +XXH128+. -+ -Finally, option *--page-hashes* can take a second argument that must be separated by a comma. -Currently, only the two parameters 'list' and 'replace' are evaluated, e.g. +--page-hashes=md5,list+ -or +--page-hashes=replace+. When 'list' is present, dvisvgm doesn't perform any conversion but just -lists the hash values +%hd+ and +%hc+ of the pages specified by option *--page*. Parameter 'replace' -forces dvisvgm to convert a DVI page even if a file with the target name already exists. - -*-P, --pdf*:: -If this option is given, dvisvgm does not expect a DVI but a PDF input file, and tries to convert -it to SVG. Similar to the conversion of DVI files, only the first page is processed by default. -Option *--page* can be used to select different pages, page ranges, and/or page sequences. -The conversion is realized by creating a single 'pdffile' special command which is forwarded to -the PostScript special handler. Therefore, this option is only available if dvisvgm was built -with PostScript support enabled, and requires Ghostscript to be accessible. See option *--libgs* -for further information. - -*-d, --precision*='digits':: -Specifies the maximal number of decimal places applied to floating-point attribute values. -All attribute values written to the generated SVG file(s) are rounded accordingly. The -parameter 'digits' accepts integer values from 0 to 6, where 0 enables the automatic selection -of significant decimal places. This is also the default value if dvisvgm is called without -option *--precision*. - -*--progress*[='delay']:: -Enables a simple progress indicator shown when time-consuming operations like PostScript specials -are processed. The indicator doesn't appear before the given delay (in seconds) has elapsed. -The default delay value is 0.5 seconds. - -*-r, --rotate*='angle':: -Rotates the page content clockwise by 'angle' degrees around the page center. -This option is equivalent to *-TR*'angle'. - -*-R, --relative*:: -SVG allows to define graphics paths by a sequence of absolute and/or relative path commands, -i.e. each command expects either absolute coordinates or coordinates relative to the -current drawing position. By default, dvisvgm creates paths made up of absolute commands. -If option *--relative* is given, relative commands are created instead. This slightly reduces -the size of the SVG files in most cases. - -*--stdin*:: -Tells dvisvgm to read the DVI or EPS input data from *stdin* instead from a file. Alternatively -to option *--stdin*, a single dash (-) can be given. The default name of the generated SVG file -is 'stdin.svg' which can be changed with option *--output*. - -*-s, --stdout*:: -Don't write the SVG output to a file but redirect it to *stdout*. - -*--tmpdir*[='path']:: -In some cases, dvisvgm needs to create temporary files to work properly. These files go to -the system's temporary folder by default, e.g. +/tmp+ on Linux systems. Option *--tmpdir* -allows to specify a different location if necessary for some reason. Please note that dvisvgm -does not create this folder, so you must ensure that it actually exists before running dvisvgm. -+ -If the optional parameter 'path' is omitted, dvisvgm prints the location of the system's -temp folder and exits. - -*-a, --trace-all*=['retrace']:: -This option forces dvisvgm to vectorize not only the glyphs actually required to render the -SVG file correctly – which is the default –, but processes all glyphs of all fonts referenced in -the DVI file. Because dvisvgm stores the tracing results in a font cache, all following conversions -of these fonts will speed up significantly. -The boolean option 'retrace' determines how to handle glyphs already stored in the cache. -By default, these glyphs are skipped. Setting argument 'retrace' to 'yes' or 'true' forces dvisvgm -to retrace the corresponding bitmaps again. -+ -[NOTE] -This option only takes effect if font caching is active. Therefore, *--trace-all* cannot be -combined with option *--cache=none*. -+ - -*-T, --transform*='commands':: -Applies a sequence of transformations to the SVG content. Each transformation is described -by a 'command' beginning with a capital letter followed by a list of comma-separated -parameters. Following transformation commands are supported: - - *T* 'tx'[,'ty'];; - Translates (moves/shifts) the page in direction of vector ('tx','ty'). If 'ty' is omitted, - 'ty'=0 is assumed. - The expected unit length of 'tx' and 'ty' are TeX points (1pt = 1/72.27in). However, there - are several constants defined to simplify the unit conversion (see below). - - *S* 'sx'[,'sy'];; - Scales the page horizontally by 'sx' and vertically by 'sy'. If 'sy' is omitted, - 'sy'='sx' is assumed. - - *R* 'angle'[,'x','y'];; - Rotates the page clockwise by 'angle' degrees around point ('x','y'). If the optional - arguments 'x' and 'y' are omitted, the page will be rotated around its center depending on - the chosen page format. When option *-bnone* is given, the rotation center is origin (0,0). - - *KX* 'angle';; - Skews the page along the 'x'-axis by 'angle' degrees. Argument 'angle' can take any value - except 90+180__k__, where 'k' is an integer. - - *KY* 'angle';; - Skews the page along the 'y'-axis by 'angle' degrees. Argument 'angle' can take any value - except 90+180__k__, where 'k' is an integer. - - *FH* ['y'];; - Mirrors (flips) the page at the horizontal line through point (0,'y'). Omitting the optional argument - leads to 'y'='h'/2, where 'h' denotes the page height (see <<constants,'pre-defined constants'>> below). - - *FV* ['x'];; - Mirrors (flips) the page at the vertical line through point ('x',0). Omitting the optional argument - leads to 'x'='w'/2, where 'w' denotes the page width (see <<constants,'pre-defined constants'>> below). - - *M* 'm1',...,'m6';; - Applies a transformation described by the 3×3 matrix - \(('m1','m2','m3'),('m4','m5','m6'),(0,0,1)), where the inner triples denote - the rows. -+ -[NOTE] -================================================================================================= -All transformation commands of option *-T, --transform* 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 to keep them together. All parameters are expressions of floating -point type. You can either give plain numbers or arithmetic terms combined by the operators *+* (addition), -*-* (subtraction), *** (multiplication), */* (division) or *%* (modulo) with common associativity and -precedence rules. Parentheses may be used as well. - -[[constants]] -Additionally, some pre-defined constants are provided: - -[horizontal] -*ux*:: horizontal position of upper left page corner in TeX point units -*uy*:: vertical position of upper left page corner in TeX point units -*h*:: page height in TeX point units (0 in case of *-bnone*) -*w*:: page width in TeX point units (0 in case of *-bnone*) - -Furthermore, you can use the 9 length constants +pt+, +bp+, +cm+, +mm+, +in+, +pc+, +dd+, +cc+, -and +sp+, 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. - -For single transformations, there are also the short-hand options *-c*, *-t* and *-r* available. -In contrast to the *--transform* commands, the order of these options is not significant, so -that it's not possible to describe transformation sequences with them. - -================================================================================================= -+ -// - -// -*-t, --translate*='tx'[,'ty']:: -Translates (moves) the page content in direction of vector ('tx','ty'). This option is -equivalent to *-TT*'tx','ty'. - - -*-v, --verbosity*='level':: -Controls the type of messages printed during a dvisvgm run: -[horizontal] - *0*;; no message output at all - *1*;; error messages only - *2*;; warning messages only - *4*;; informational messages only - -+ -[NOTE] -By adding these values you can combine the categories. The default level is 7, i.e. all -messages are printed. -+ - -*-V, --version*[='extended']:: -Prints the version of dvisvgm and exits. If the optional argument is set to 'yes', the -version numbers of the linked libraries are printed as well. - -*-z, --zip*[='level']:: -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 may take slightly more computation time. - -*-Z, --zoom*='factor':: -Multiplies the values of the 'width' and 'height' attributes of the SVG root element by argument 'factor' -while the coordinate system of the graphic content is retained. As a result, most SVG viewers zoom the -graphics accordingly. If a negative zoom factor is given, the 'width' and 'height' attributes are omitted. - -[[specials]] -Supported Specials ------------------- -dvisvgm supports several sets of 'special commands' that can be used to enrich DVI files with additional -features, like color, graphics, and hyperlinks. The evaluation of special commands is delegated to dedicated -handlers provided by dvisvgm. 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 the actually provided special handlers, use -option *--list-specials* (see above). This section gives an overview of the special commands currently -supported. - -*bgcolor*:: -Special statement for changing the background/page color. Since SVG 1.1 doesn't support background colors, -dvisvgm inserts a rectangle of the chosen color into the generated SVG document. This rectangle always gets -the same size as the selected or computed bounding box. This background color 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. - -*color*:: -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. - -*dvisvgm*:: -dvisvgm offers its own small set of specials. The following list gives a brief overview. - *dvisvgm:raw* 'text';; - Adds an arbitrary sequence of XML nodes to the page section of the SVG document. dvisvgm checks syntax and - proper nesting of the inserted elements but does not perform any validation, thus the user has to ensure - that the resulting SVG is still valid. Opening and closing tags may be distributed among different 'raw' - specials. The tags themselves can also be split but must be continued with the immediately following 'raw' - special. Both syntactically incorrect and wrongly nested tags lead to error messages. - Parameter 'text' may also contain the expressions *{?x}*, *{?y}*, *{?color}*, and *{?matrix}* that expand to - the current 'x' or 'y' coordinate, the current color, and current transformation matrix, respectively. - Character sequence *{?nl}* expands to a newline character. Finally, constructions of the form *{?(__expr__)}* - enable the evaluation of mathematical expressions which may consist of basic arithmetic operations including - modulo. Like above, the variables 'x' and 'y' represent the current coordinates. - Example: +{?(-10*(x+2y)-5)}+. - - *dvisvgm:rawdef* 'text';; - This command is similar to *dvisvgm:raw*, but puts the XML nodes into the <defs> section of the SVG document - currently being generated. - - *dvisvgm:rawset* 'name' ... *dvisvgm:endrawset*;; - This pair of specials marks the begin and end of a definition of a named raw SVG fragment. All *dvisvgm:raw* - and *dvisvgm:rawdef* specials enclosed by *dvisvgm:rawset* and *dvisvgm:endrawset* are not evaluated - immediately but stored together under the given 'name' for later use. Once defined, the named fragment can be - referenced throughout the DVI file by *dvisvgm:rawput* (see below). - The two commands *dvisvgm:rawset* and *dvisvgm:endrawset* must not be nested, i.e. each call of *dvisvgm:rawset* - has to be followed by a corresponding call of *dvisvgm:endrawset* before another *dvisvgm:rawset* may occur. - Also, the identifier 'name' must be unique throughout the DVI file. Using *dvisvgm:rawset* multiple times - together with the same 'name' leads to warning messages. - - *dvisvgm:rawput* 'name';; - Inserts raw SVG fragments previously stored under the given 'name'. dvisvgm distinguishes between fragments - that were specified with *dvisvgm:raw* or *dvisvgm:rawdef*, and handles them differently: It inserts all - *dvisvgm:raw* parts every time *dvisvgm:rawput* is called, whereas the *dvisvgm:rawdef* portions go to the - <defs> section of the current SVG document only once. - - *dvisvgm:img* 'width' 'height' 'file';; - 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 'width' - and 'height' can be given together with a unit specifier (see option *--bbox*) or as plain floating point numbers. - In the latter case, TeX point units are assumed (1in = 72.27pt). - - *dvisvgm:bbox* lock;; - Locks the bounding box of the current page and prevents it from further updating, i.e. graphics elements added - after calling this special are not taken into account in determining the extent of the bounding box. - - *dvisvgm:bbox* unlock;; - Unlocks the previously locked bounding box of the current page so that it gets updated again when adding - graphics elements to the page. - - *dvisvgm:bbox* n[ew] 'name';; - Defines or resets a local bounding box called 'name'. 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 *{?bbox 'name'}* expands to the four values 'x', 'y', 'w', and 'h' - (separated by spaces) specifying the coordinates of the upper left corner, width, and height of the local box 'name'. - If box 'name' wasn't previously defined, all four values equal to zero. - - *dvisvgm:bbox* 'width' 'height' ['depth'] [+transform+];; - Updates the bounding box of the current page by embedding a virtual rectangle ('x', 'y', 'width', 'height') - where the lower left corner is located at the current DVI drawing position ('x','y'). If the optional parameter 'depth' - is specified, dvisvgm embeds a second rectangle ('x', 'y', 'width', -__depth__). The lengths 'width', 'height', and - 'depth' can be given together with a unit specifier (see option *--bbox*) or as plain floating point numbers. - In the latter case, TeX point units are assumed (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's not possible to reduce its extent. This - special should be used together with *dvisvgm:raw* in order to update the viewport of the page properly. - By default, the box extents are assigned unchanged and, in particular, are not altered by transformation commands. - In order to apply the current transformation matrix, the optional modifier +transform+ can be added at the end of - the special statement. - - *dvisvgm:bbox* a[bs] 'x1' 'y1' 'x2' 'y2' [+transform+];; - This variant of the bbox special updates the bounding box by embedding a virtual rectangle ('x1','y1','x2','y2'). - The points ('x1','y1') and ('x2','y2') denote the absolute coordinates of two diagonal corners of the rectangle. - As with the relative special variant described above, the optional modifier +transform+ allows for applying the - current transformation matrix to the bounding box. - - *dvisvgm:bbox* f[ix] 'x1' 'y1' 'x2' 'y2' [+transform+];; - This variant of the bbox special assigns an absolute (final) bounding box to the resulting SVG. After executing - this command, dvisvgm doesn't further alter the bounding box coordinates, except this special is called again later. - The points ('x1','y1') and ('x2','y2') denote the absolute coordinates of two diagonal corners of the rectangle. - As with the relative special variant described above, the optional modifier +transform+ allows for applying the - current transformation matrix to the bounding box. -+ -The following TeX snippet adds two raw SVG elements to the output and updates the bounding box accordingly: -+ -[source,tex] -------------------------------------------------------------------------------------- -\special{dvisvgm:raw <circle cx='{?x}' cy='{?y}' r='10' stroke='black' fill='red'/>}% -\special{dvisvgm:bbox 10bp 10bp 10bp transform}% -\special{dvisvgm:bbox -10bp 10bp 10bp transform} - -\special{dvisvgm:raw <path d='M50 200 L10 250 H100 Z' stroke='black' fill='blue'/>}% -\special{dvisvgm:bbox abs 10bp 200bp 100bp 250bp transform} -------------------------------------------------------------------------------------- -+ - -*em*:: -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 -https://ctan.org/pkg/emtex[emTeX]. - -*html*:: -The hyperref specification defines several variants on how to mark hyperlinked areas in a DVI file. dvisvgm -supports the plain HyperTeX special constructs as created with hyperref package option 'hypertex'. -By default, all linked areas of the document are marked by a rectangle. Option *--linkmark* allows to change -this behavior. See above for further details. Information on syntax and semantics of the HyperTeX specials can be -found in the https://ctan.org/pkg/hyperref[hyperref manual]. - -*papersize*:: -The 'papersize' special, which is an extension introduced by dvips, can be used to specify the widths and -heights of the pages in the DVI file. It affects the page it appears on as well as all following pages until -another papersize special is found. If there is more than one papersize special present on a page, dvisvgm -applies the last one. However, in order to stay compatible with previous versions of dvisvgm that did not -evaluate these specials, their processing must be explicitly enabled by adding option *--bbox=papersize* on -the command-line. Otherwise, dvisvgm ignores them and computes tight bounding boxes. - -*pdf*:: -pdfTeX and dvipdfmx introduced several special commands related to the generation of PDF files. Currently, -only 'pdf:mapfile', 'pdf:mapline', 'pdf:pagesize', and PDF hyperlink specials are supported by dvisvgm. -The latter are the PDF pendants to the HTML HyperTeX specials generated by the hyperref package in PDF mode. -+ -'pdf:pagesize' is similar to the 'papersize' special (see above) which specifies the size of the current -and all folowing pages. In order to actually apply the extents to the generated SVG files, -option *--bbox=papersize* must be given. -+ -'pdf:mapfile' and 'pdf:mapline' allow for modifying the font map tree while processing the DVI file. -They are used by CTeX, for example. dvisvgm supports both, the dvips and dvipdfm font map format. For further -information on the command syntax and semantics, see the documentation of +\pdfmapfile+ in the -https://ctan.org/pkg/pdftex[pdfTeX user manual]. - -*ps*:: -The famous DVI driver https://www.tug.org/texinfohtml/dvips.html['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 fragments and to convert as many of them as possible -to SVG. In contrast to dvips, dvisvgm uses floating point arithmetics to compute the precise position of each -graphic element, i.e. it doesn't round the coordinates. Therefore, the relative locations of the graphic elements -may slightly differ from those computed by dvips. -+ -Since PostScript is a rather complex language, dvisvgm does not implement its own PostScript interpreter -but relies on https://ghostscript.com[Ghostscript] instead. If the Ghostscript library was not linked to the -dvisvgm binary, it is looked up and loaded dynamically during runtime. In this case, dvisvgm looks for -'libgs.so.X' on Unix-like systems (supported ABI versions: 7,8,9), for 'libgs.X.dylib' on macOS, and for -'gsdll32.dll' or 'gsdll64.dll' on Windows. You can override the default file names with environment variable -*LIBGS* or the command-line option *--libgs*. The library must be reachable through the ld search path (\*nix) -or the PATH environment variable (Windows). Alternatively, the absolute file path can be specified. If the library -cannot be found, dvisvgm disables the processing of PostScript specials and prints a warning message. -Use option *--list-specials* to check whether PostScript support is available, i.e. entry 'ps' is present. -+ -The PostScript handler also recognizes and evaluates bounding box data generated by the -https://ctan.org/pkg/preview[preview package] with option 'tightpage'. If such data is present in the DVI file -and if dvisvgm is called with option *--bbox=preview*, dvisvgm sets the width and total height of the SVG file to -the values derived from the preview data. Additionally, it prints a message showing the width, height, -and depth of the box in TeX point units to the console. Especially, the depth value can be read by a post-processor -to vertically align the SVG graphics with the baseline of surrounding text in HTML or XSL-FO documents, for example. -Please note that SVG bounding boxes are defined by a width and (total) height. In contrast to TeX, SVG provides -no means to differentiate between height and depth, i.e. the vertical extents above and below the baseline, -respectively. Therefore, it is generally not possible to retrieve the depth value from the SVG file itself. -+ -If you call dvisvgm with option *--bbox=min* (the default) and preview data is present in the DVI file, dvisvgm -doesn't apply the preview extents but computes a bounding box that tightly encloses the page contents. The height, -depth and width values written to console are adapted accordingly. - -*tpic*:: -The TPIC special set defines instructions for drawing simple geometric objects. Some LaTeX packages, like -eepic and tplot, use these specials to describe graphics. - - -Examples --------- -+dvisvgm file+:: - Converts the first page of 'file.dvi' to 'file.svg'. - -+dvisvgm -p1-5 file+:: - Converts the first five pages of 'file.dvi' to 'file-1.svg',...,'file-5.svg'. - -+dvisvgm -p1- file+:: - Converts all pages of 'file.dvi' to separate SVG files. - -+dvisvgm -p1,3 -O file+:: - Converts the first and third page of 'file.dvi' to optimized SVG files. - -+dvisvgm - < file.dvi+:: - Converts the first page of 'file.dvi' to 'stdin.svg' where the contents of 'file.dvi' is read from *stdin*. - -+dvisvgm -z file+:: - Converts the first page of 'file.dvi' to 'file.svgz' with default compression level 9. - -+dvisvgm -p5 -z3 -ba4-l -o newfile file+:: - Converts the fifth page of 'file.dvi' to 'newfile.svgz' with compression level 3. The bounding box is set to DIN/ISO A4 in landscape format. - -+dvisvgm --transform="R20,w/3,2h/5 T1cm,1cm S2,3" file+:: - Converts the first page of 'file.dvi' to 'file.svg' where three transformations are applied. - -[[environment]] -Environment ------------ -dvisvgm uses the *kpathsea* library for locating the files that it opens. -Hence, the environment variables described in the library's documentation influence the converter. - -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. - -The pre-compiled Windows versions of dvisvgm require a working installation of MiKTeX 2.9 or above. -dvisvgm does not work together with the portable edition of MiKTeX because it relies on MiKTeX's COM -interface that is only accessible in a local installation. -To enable the evaluation of PostScript specials, the original Ghostscript DLL 'gsdll32.dll' must be present -and reachable through the search path. 64-bit Windows builds require the 64-bit Ghostscript DLL 'gsdll64.dll'. -Both DLLs come with the corresponding Ghostscript installers available from https://ghostscript.com. - -The environment variable *DVISVGM_COLORS* specifies the colors used to highlight various parts of dvisvgm's -message output. It is only evaluated if option *--color* is given. The value of *DVISVGM_COLORS* is a list of -colon-separated entries of the form 'gg'='BF', where 'gg' denotes one of the color group indicators listed -below, and 'BF' are two hexadecimal digits specifying the background (first digit) and foreground/text color -(second digit). The 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's 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. - -All malformed entries in the list are silently ignored. - -[horizontal] -*er*:: error messages -*wn*:: warning messages -*pn*:: messages about page numbers -*ps*:: page size messages -*fw*:: information about the files written -*sm*:: state messages -*tr*:: messages of the glyph tracer -*pi*:: progress indicator - -*Example:* +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 (+*+). - -Files ------ -The location of the following files is determined by the kpathsea library. -To check the actual kpathsea configuration you can use the *kpsewhich* utility. - -[horizontal] -**.enc*:: Font encoding files -**.fgd*:: Font glyph data files (cache files created by dvisvgm) -**.map*:: Font map files -**.mf*:: Metafont input files -**.pfb*:: PostScript Type 1 font files -**.pro*:: PostScript header/prologue files -**.tfm*:: TeX font metric files -**.ttf*:: TrueType font files -**.vf*:: Virtual font files - -See also --------- -*tex(1), mf(1), mktexmf(1), grodvi(1), potrace(1)*, and the *kpathsea library* info documentation. - -Resources ---------- -Project home page::: https://dvisvgm.de -Code repository::: https://github.com/mgieseki/dvisvgm - -Bugs ----- -Please report bugs using the bug tracker at https://github.com/mgieseki/dvisvgm/issues[GitHub]. - -Author ------- -Written by {author} <{email}> - -Copying -------- -Copyright (C) 2005-2021 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. - -// vim: set syntax=asciidoc: |