dvips — convert a DVI file to PostScript
dvips
[option
...] dvifile
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.
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.
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
where the
input DVI file was
file
.ps
. If
file
.dvi-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
, except that multiple
first
-l
last
-pp
options accumulate, unlike -p
and -l
. The -
separator can also be
:
.
-P printer
Read the configuration file
config.
, which can
set the output name (most likely printer
o |lpr
-P
), resolution,
METAFONT mode, and perhaps font paths and
other printer-specific defaults. It works best to put sitewide
defaults in the one master printer
config.ps
file and only
things that vary printer to printer in the
config.
files;
printer
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.