1. NAME

dvips - convert a TeX DVI file to PostScript

2. SYNOPSIS

dvips [ options] file [.dvi]

3. DESCRIPTION

THIS MAN PAGE IS OBSOLETE! See the Texinfo documentation instead. You can read it either in Emacs or with the standalone

info program which comes with the GNU texinfo distribution as prep.ai.mit.edu:pub/gnu/texinfo*.tar.gz.

The program

dvips takes a DVI file file [.dvi] produced by TeX (or by some other processor such as GFtoDVI) and converts it to PostScript, normally sending the result directly to the (laser)printer. The DVI file may be specified without the

.dvi extension. Fonts used may either be resident in the printer or defined as bitmaps in PK files, or a `virtual' combination of both. If the

mktexpk program is installed,

dvips will automatically invoke METAFONT to generate fonts that don't already exist.

For more information, see the Texinfo manual dvips.texi , which should be installed somewhere on your system, hopefully accessible through the standard Info tree.

4. OPTIONS

-a

    Conserve memory by making three passes over the .dvi file instead of two and only loading those characters actually used. Generally only useful on machines with a very limited amount of memory, like some PCs.

-A

    Print only odd pages (TeX pages, not sequence pages).

-b num

    Generate numcopies of each page, but duplicating the page body rather than using the #numcopiesoption. This can be useful in conjunction with a header file setting \bop-hookto do color separations or other neat tricks.

-B

    Print only even pages (TeX pages, not sequence pages).

-c num

    Generate numcopies of every page. Default is 1. (For collated copies, see the -Coption below.)

-C num

    Create numcopies, but collated (by replicating the data in the PostScript file). Slower than the -coption, but easier on the hands, and faster than resubmitting the same PostScript file multiple times.

-d num

    Set the debug flags. This is intended only for emergencies or for unusual fact-finding expeditions; it will work only if

dvips has been compiled with the DEBUG option. If nonzero, prints additional information on standard error. The number is taken as a set of independent bits. The meaning of each bit follows. 1=specials; 2=paths; 4=fonts; 8=pages; 16=headers; 32=font compression; 64=files; 128=memory; 256=Kpathsea stat(2) calls; 512=Kpathsea hash table lookups; 1024=Kpathsea path element expansion; 2048=Kpathsea searches. To trace everything having to do with file searching and opening, use 3650 (2048 + 1024 + 512 + 64 + 2). To track all classes, you can use `-1' (output is extremely voluminous).

-D num

    Set the resolution in dpi (dots per inch) to num . This affects the choice of bitmap fonts that are loaded and also the positioning of letters in resident PostScript fonts. Must be between 10 and 10000. This affects both the horizontal and vertical resolution. If a high resolution (something greater than 400 dpi, say) is selected, the -Zflag should probably also be used.

-e num

    Make sure that each character is placed at most this many pixels from its `true' resolution-independent position on the page. The default value of this parameter is resolution dependent. Allowing individual characters to `drift' from their correctly rounded positions by a few pixels, while regaining the true position at the beginning of each new word, improves the spacing of letters in words.

-E

    makes

dvips attempt to generate an EPSF file with a tight bounding box. This only works on one-page files, and it only looks at marks made by characters and rules, not by any included graphics. In addition, it gets the glyph metrics from the tfmfile, so characters that lie outside their enclosing tfmbox may confuse it. In addition, the bounding box might be a bit too loose if the character glyph has significant left or right side bearings. Nonetheless, this option works well for creating small EPSF files for equations or tables or the like. (Note, of course, that

dvips output is resolution dependent and thus does not make very good EPSF files, especially if the images are to be scaled; use these EPSF files with a great deal of care.)

-f

    Run as a filter. Read the .dvifile from standard input and write the PostScript to standard output. The standard input must be seekable, so it cannot be a pipe. If you must use a pipe, write a shell script that copies the pipe output to a temporary file and then points

dvips at this file. This option also disables the automatic reading of the PRINTERenvironment variable, and turns off the automatic sending of control D if it was turned on with the -Foption or in the configuration file; use -Fafter this option if you want both.

-F

    Causes Control-D (ASCII code 4) to be appended as the very last character of the PostScript file. This is useful when

dvips is driving the printer directly instead of working through a spooler, as is common on extremely small systems. NOTE! DO NOT USE THIS OPTION!

-G

    Causes

dvips to shift non-printing characters to higher-numbered positions. This may be useful sometimes.

-h name

    Prepend file nameas an additional header file. (However, if the name is simply `-' suppress all header files from the output.) This header file gets added to the PostScript userdict .

-i

    Make each section be a separate file. Under certain circumstances,

dvips will split the document up into `sections' to be processed independently; this is most often done for memory reasons. Using this option tells

dvips to place each section into a separate file; the new file names are created replacing the suffix of the supplied output file name by a three-digit sequence number. This option is most often used in conjunction with the -Soption which sets the maximum section length in pages. For instance, some phototypesetters cannot print more than ten or so consecutive pages before running out of steam; these options can be used to automatically split a book into ten-page sections, each to its own file.

-j

    Download only needed characters from Type 1 fonts. This is the default in the current release. Some debugging flags trace this operation. You can also control partial downloading on a per-font basis, via the

psfonts.map file.

-k

    Print crop marks. This option increases the paper size (which should be specified, either with a paper size special or with the -Toption) by a half inch in each dimension. It translates each page by a quarter inch and draws cross-style crop marks. It is mostly useful with typesetters that can set the page size automatically.

-K

    This option causes comments in included PostScript graphics, font files, and headers to be removed. This is sometimes necessary to get around bugs in spoolers or PostScript post-processing programs. Specifically, the %%Page comments, when left in, often cause difficulties. Use of this flag can cause some included graphics to fail, since the PostScript header macros from some software packages read portions of the input stream line by line, searching for a particular comment. This option has been turned off by default because PostScript previewers and spoolers have been getting better.

-l num

    The last page printed will be the first one numbered numDefault is the last page in the document. If the numis prefixed by an equals sign, then it (and any argument to the -poption) is treated as a sequence number, rather than a value to compare with \count0values. Thus, using -l =9will end with the ninth page of the document, no matter what the pages are actually numbered.

-m

    Specify manual feed for printer.

-mode mode

    Use modeas the Metafont device name for path searching and font generation. This overrides any value from configuration files. With the default paths, explicitly specifying the mode also makes the program assume the fonts are in a subdirectory named mode .

-M

    Turns off the automatic font generation facility. If any fonts are missing, commands to generate the fonts are appended to the file missfont.login the current directory; this file can then be executed and deleted to create the missing fonts.

-n num

    At most numpages will be printed. Default is 100000.

-N

    Turns off structured comments; this might be necessary on some systems that try to interpret PostScript comments in weird ways, or on some PostScript printers. Old versions of TranScript in particular cannot handle modern Encapsulated PostScript.

-noomega

    This will disable the use of Omega extensions when interpreting DVI files. By default, the additional opcodes 129and 134are recognized by dvips as Omega extensions and interpreted as requests to set 2-byte characters. The only drawback is that the virtual font array will (at least temporarily) require 65536 positions instead of the default 256 positions, i.e. the memory requirements of dvips will be slightly larger. If you find this unacceptable or encounter another problem with the Omega extensions, you can switch this extension off by using

-noomega (but please do send a bug report if you find such problems - see the bug address in the

AUTHORS section below).

-o name

    The output will be sent to file nameIf no file name is given (i.e., -o is last on the command line), the default name is file.pswhere the .dvi file was called file.dvi ; if this option isn't given, any default in the configuration file is used. If the first character of the supplied output file name is an exclamation mark, then the remainder will be used as an argument to popen ; thus, specifying !lpras the output file will automatically queue the file for printing. This option also disables the automatic reading of the PRINTERenvironment variable, and turns off the automatic sending of control D if it was turned on with the -Foption or in the configuration file; use -Fafter this option if you want both.

-O offset

    Move the origin by a certain amount. The offsetis a comma-separated pair of dimensions, such as .1in,-.3cm(in the same syntax used in the papersizespecial). The origin of the page is shifted from the default position (of one inch down, one inch to the right from the upper left corner of the paper) by this amount.

-p num

    The first page printed will be the first one numbered num . Default is the first page in the document. If the numis prefixed by an equals sign, then it (and any argument to the -loption) is treated as a sequence number, rather than a value to compare with \count0values. Thus, using -p =3will start with the third page of the document, no matter what the pages are actually numbered.

-pp pagelist

    A comma-separated list of pages and ranges (a-b) may be given, which will be interpreted as \count0values. Pages not specified will not be printed. Multiple

-pp options may be specified or all pages and page ranges can be specified with one

-pp option.

-P printername

    Sets up the output for the appropriate printer. This is implemented by reading in config.printername, which can then set the output pipe (as in, !lpr -Pprinternameas well as the font paths and any other config.psdefaults for that printer only. Note that config.psis read before config.printernameIn addition, another file called ~/.dvipsrcis searched for immediately after config.ps ; this file is intended for user defaults. If no -Pcommand is given, the environment variable PRINTERis checked. If that variable exists, and a corresponding configuration file exists, that configuration file is read in.

-q

    Run in quiet mode. Don't chatter about pages converted, etc.; report nothing but errors to standard error.

-r

    Stack pages in reverse order. Normally, page 1 will be printed first.

-R[0|1|2]

    Run securely.

R -R2 disables both shell command execution in \special'{}(via backticks

R ` ) and config files (via the Eoption), and opening of any absolute filenames.

R -R1 , the default, forbids shell escapes but allows absolute filenames.

R -R0 allows both. The config file option is z

-s

    Causes the entire global output to be enclosed in a save/restore pair. This causes the file to not be truly conformant, and is thus not recommended, but is useful if you are driving the printer directly and don't care too much about the portability of the output.

-S num

    Set the maximum number of pages in each `section'. This option is most commonly used with the -ioption; see that documentation above for more information.

-t papertype

    This sets the paper type to papertype . The papertypeshould be defined in one of the configuration files, along with the appropriate code to select it. (Currently known types include

R letter ,

R legal ,

R ledger ,

R a4 ,

R a3 ). You can also specify

R -t which rotates a document by 90 degrees. To rotate a document whose size is not letter, you can use the -toption twice, once for the page size, and once for landscape. You should not use any -toption when the DVI file already contains a papersizespecial, as is done by some LaTeX packages, notably hyperref.sty. The upper left corner of each page in the .dvifile is placed one inch from the left and one inch from the top. Use of this option is highly dependent on the configuration file. Note that executing the

letter or

a4 or other PostScript operators cause the document to be nonconforming and can cause it not to print on certain printers, so the paper size should not execute such an operator if at all possible.

-T papersize

    Set the paper size to the given pair of dimensions. This option takes its arguments in the same style as -O . It overrides any paper size special in the dvi file.

-u psmapfile

    Set psmapfileto be the file that dvips uses for looking up PostScript font aliases. If psmapfilebegins with a

+ character, then the rest of the name is used as the name of the map file, and the map file is appended to the list of map files (instead of replacing the list). In either case, if psmapfilehas no extension, then

.map is added at the end.

-U

    Disable a PostScript virtual memory saving optimization that stores the character metric information in the same string that is used to store the bitmap information. This is only necessary when driving the Xerox 4045 PostScript interpreter. It is caused by a bug in that interpreter that results in `garbage' on the bottom of each character. Not recommended unless you must drive this printer.

-v

    Print the

dvips version number and exit.

-V

    Download non-resident PostScript fonts as bitmaps. This requires use of `gsftopk' or `pstopk' or some other such program(s) in order to generate the required bitmap fonts; these programs are supplied with

R dvips .

-x num

    Set the magnification ratio to num /1000. Overrides the magnification specified in the .dvi file. Must be between 10 and 100000. Instead of an integer, nummay be a real number for increased precision.

-X num

    Set the horizontal resolution in dots per inch to num .

-y num

    Set the magnification ratio to num /1000 times the magnification specified in the .dvi file. See

-x above.

-Y num

    Set the vertical resolution in dots per inch to num .

-z

    Pass

html hyperdvi specials through to the output for eventual distillation into PDF. This is not enabled by default to avoid including the header files unnecessarily, and use of temporary files in creating the output.

-Z

    Causes bitmapped fonts to be compressed before they are downloaded, thereby reducing the size of the PostScript font-downloading information. Especially useful at high resolutions or when very large fonts are used. Will slow down printing somewhat, especially on early 68000-based PostScript printers.

5. SEE ALSO

mf(1), afm2tfm(1), tex(1), latex(1), lpr(1), dvips.texi .

6. ENVIRONMENT

Dvipsk uses the same environment variables and algorithms for finding font files as TeX and its friends do. See the documentation for the Kpathsea library for details. (Repeating it here is too cumbersome.)

KPATHSEA_DEBUG: Trace Kpathsea lookups; set to -1 for complete tracing.

PRINTER: see above.

7. NOTES

PostScript is a registered trademark of Adobe Systems Incorporated.

8. AUTHOR

Tomas Rokicki <>; extended to virtual fonts by Don Knuth. Path searching and configuration modifications by .