Name

dvips — convert a DVI file to PostScript

Synopsis

dvips [option...] dvifile

Description

dvips takes a DVI file produced by TeX (or by some other processor such as gftodvi) and converts it to PostScript. The DVI file may be specified without the .dvi extension.

Options

Many of the parameterless options listed here can be turned off by suffixing the option with a zero (0); for instance, to turn off page reversal, use -r0. Such options are marked with a trailing *.

-a*

Conserve memory by making three passes over the DVI file instead of two and only loading those characters actually used.

-A

Print only the odd pages. This option uses TeX page numbers, not physical page numbers.

-b num

Generate num copies of each page, but duplicating the page body rather than using the /#copies PostScript variable. This can be useful in conjunction with a header file setting bop-hook to do color separations or other neat tricks.

-B

Print only the even pages. This option uses TeX page numbers, not physical page numbers.

-c num

Generate num consecutive copies of every page, i.e., the output is uncollated. This merely sets the builtin PostScript variable /#copies.

-C num

Generate num copies, but collated (by replicating the data in the PostScript file). Slower than the -c option, but easier on the hands, and faster than resubmitting the same PostScript file multiple times.

-d num

Set the debug flags, showing what Dvips (thinks it) is doing. See the Dvips manual, for the possible values of num. Use -d -1 as the first option for maximum output.

-D num

Set both the horizontal and vertical resolution to num, given in dpi (dots per inch). 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 -Z flag should probably also be used. If you are using fonts made with METAFONT, such as Computer Modern, makepk needs to know about the value for num that you use or METAFONT will fail. See the file modes.mf for a list of resolutions and mode names for most devices.

-e num

Maximum drift in pixels of each character from its `true' resolution-independent position on the page. The default value of this parameter is resolution dependent (it is the number of entries in the list [100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1600, 2000, 2400, 2800, 3200, ] that are less than or equal to the resolution in dots per inch). 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*

Generate an EPSF file with a tight bounding box. This only looks at marks made by characters and rules, not by any included graphics. In addition, it gets the glyph metrics from the TFM file, so characters that print outside their enclosing TFM box 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 enough for creating small EPSF files for equations or tables or the like. (Of course, dvips output, especially when using bitmap fonts, 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 care.) For multiple page input files, also specify -i to get each page as a separate EPSF file; otherwise, all the pages are overlaid in the single output file.

-f*

Read the DVI file from standard input and write the PostScript to standard output. The standard input must be seekable, so it cannot be a pipe. If your input must be a pipe, write a shell script that copies the pipe output to a temporary file and then points dvips at this file. It turns off the automatic sending of control-D if it was turned on with the -F option or in the configuration file; use -F after the -f to send it anyway.

-F*

Write control-D (ASCII code 4) 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 personal systems. On systems shared by more than one person, this is not recommended.

-G

Shift low chars to higher pos.

-h name

Prepend name as an additional header file, or, if name is -, suppress all header files. Any definitions in the header file get added to the PostScript userdict.

-i*

Make each section be a separate file; a section is a part of the document processed independently, most often created to avoid memory overflow. The filenames 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 -S option which sets the maximum section length in pages; if -i is specified and -S is not, each page is output as a separate file. 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.

-I imageoptions

Specify image options:

1, 2, 3

Select PostScript level 1, 2 or 3.

c, g

Use c if you have a color printer or g for conversion to grayscale. Color printing requires PostScript level 2 or higher.

f, r, 8, h

Use f to get flate encoding (requires PostScript level 3), r to get run-length-encoding (requires PostScript level 2), 8 to get ASCII85-encoding instead ASCII-Hex-encoding (requires PostScript level 2) or h to use ASCII-Hex-encoding.

Flate encoding, run-length-encoding and one from ASCII85- or ASCII-Hex-encoding can be used combined.

d

Use d to turn draft mode on. Bitmap images are not printed, only the place is marked.

a, o, t, l, m, s,

To convert an alpha channel into an EPS level 3 masked bitmap use the a option. By use of o you can specify the alpha channel expresses opacity (default), t specifies transparency. Normally only pixels with 0 opacity are masked, all others are drawn. The alternative behaviour is to draw only pixels with full opacity and mask all others, this can be reached by option l.

Option m advices the program to mix foreground and background color for a pixel depending on its alpha value.

You can specify a background color like 128,255,128 for light green. The color specification must appar after the a option. Normally this background color is used only if there is no background color chunk in the file. Option s gives this command line background color higher priority than the background color from chunk.

-j*

Download only needed characters from Type 1 fonts. This is the default. Some debugging flags trace this operation. You can also control partial downloading on a per-font basis (by editing updmap.cfg). See the section called “Managing Font Map Files”.

-k*

Print crop marks. This option increases the paper size (which should be specified, either with a paper size special or with the -T option) 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. This works by downloading crop.pro.

-K*

Remove comments in included PostScript graphics, font files, and headers; only 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 other graphics to fail, however, since the PostScript header macros from some software packages read portion the input stream line by line, searching for a particular comment.

-l [=]num

The last page printed will be the first one numbered num. Default is the last page in the document. If num is prefixed by an equals sign, then it (and the argument to the -p option, if specified) is treated as a physical (absolute) page number, rather than a value to compare with the TeX \count0 values stored in the DVI file. Thus, using -l =9 will end with the ninth page of the document, no matter what the pages are actually numbered.

-m*

Specify manual feed, if supported by the output device.

-M*

Turns off automatic font generation.

-n num

Print at most num pages. Default is 100000.

-N*

Turns off generation of structured comments such as %%Page; this may be necessary on some systems that try to interpret PostScript comments in weird ways, or on some PostScript printers. Beware: This also disables page movement, etc., in PostScript viewers such as GSview.

-o name

Send output to the file name. If -o is specified without name, the default is file.ps where the input DVI file was file.dvi. If -o isn't given at all, the configuration file default is used.

If name is -, output goes to standard output. If the first character of name is ! or |, then the remainder will be used as an argument to popen; thus, specifying |lpr as the output file will automatically queue the file for printing as usual. dvips will print to the local printer device PRN when name is |lpr and a program by that name cannot be found.

-o turns off the automatic sending of control-D. See the -f option for how to override this.

-O x-offset,y-offset

Move the origin by x-offset,y-offset, a comma-separated pair of dimensions such as .1in,-.3cm. 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. This is usually best specified in the printer-specific configuration file.

This is useful for a printer that consistently offsets output pages by a certain amount. You can use the file testpage.tex to determine the correct value for your printer. Be sure to do several runs with the same O value-some printers vary widely from run to run.

If your printer offsets every other page consistently, instead of every page, your best recourse is to use bop-hook (see the Dvips manual for more information).

-p [=]num

The first page printed will be the first one numbered num. Default is the first page in the document. If num is prefixed by an equals sign, then it (and the argument to the -l option, if specified) is treated as a physical (absolute) page number, rather than a value to compare with the TeX \count0 values stored in the DVI file. Thus, using -p =3 will start with the third page of the document, no matter what the pages are actually numbered.

-pp first-last

Print pages first through last; equivalent to -p first -l last, except that multiple -pp options accumulate, unlike -p and -l. The - separator can also be :.

-P printer

Read the configuration file config.printer, which can set the output name (most likely o |lpr -Pprinter), resolution, METAFONT mode, and perhaps font paths and other printer-specific defaults. It works best to put sitewide defaults in the one master config.ps file and only things that vary printer to printer in the config.printer files; config.ps is read before config.printer.

-q*

Run quietly. Don't chatter about pages converted, etc. to standard output; report no warnings (only errors) to standard error.

-r*

Output pages in reverse order. By default, page 1 is output first.

-R

Run securely. This disables shell command execution in \special (via `) and config files (via the E), pipes as output files, and opening of any absolute filenames.

-s*

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

-S num

Set the maximum number of pages in each “section”. This option is most commonly used with the -i option; see its description above for more information.

-t papertype

Set the paper type to papertype, usually defined in one of the configuration files, along with the appropriate PostScript code to select it. You can also specify a papertype of landscape, which rotates a document by 90 degrees. To rotate a document whose paper type is not the default, you can use the -t option twice, once for the paper type, and once for landscape.

-T hsize,vsize

Set the paper size to (hsize,vsize), a comma-separated pair of dimensions such as .1in,-.3cm . It overrides any paper size special in the DVI file.

-u name

Examine name for PostScript font aliases. Default is psfonts.map. This option allows you to specify different resident fonts that different printers may have. If name starts with a + character, then the rest of the name (after any leading spaces) is used as an additional map file.

-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, which has a bug that puts garbage on the bottom of each character. Not recommended unless you must drive this printer.

-V*

Download non-resident PostScript fonts as bitmaps. This requires use of makepk to generate the required bitmap fonts. The bitmap must be put into psfonts.map as the downloadable file for that font. This is useful only for those fonts for which you do not have real outlines, being downloaded to printers that have no resident fonts, i.e., very rarely.

-x num

Set the x magnification ratio to num/1000. Overrides the magnification specified in the DVI file. Must be between 10 and 100000. It is recommended that you use standard magstep values (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help reduce the total number of PK files generated. num may be a real number, not an integer, for increased precision.

-X num

Set the horizontal resolution in dots per inch to num.

-y num

Set the y magnification ratio to num/1000. 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*

Compress bitmap fonts in the output file, thereby reducing the size of what gets downloaded. Especially useful at high resolutions or when very large fonts are used. May slow down printing, especially on early 68000-based PostScript printers. Generally recommend today, and can be enabled in the configuration file.

See Also

Dvips: A DVI-to-PostScript Translator

Run mthelp dvips