These drivers are written in C, and with C preprocessor conditional
compilation features, are all derived from one master set of files, so
that there is substantial code sharing among them. Host machine and
output device dependencies are parametrized to allow easy movement to
new hosts and new output devices. Implementations now exist on
Gould ,
Hewlett-Packard ,
,
,
, and
,
with others in progress.
The command options are (letter case is ignored):
- -a
- Implement virtual font caching, if possible.
When a font file is opened, a buffer is allocated
to contain the entire file, and the file is then
read with one system call. This is important
primarily on networked file systems, where the
many random-access calls in the font file for
small amounts of data entail substantial network
overhead. With the entire file cached in local
memory, this overhead is removed. The
additional memory required for the font file
buffers amounts to 100K to 200K bytes (assuming
the compact .PK font file format), which is
not excessive. If memory cannot be allocated for
a font file, then normal buffering of small
blocks is used. A trace option (-d64) is
provided to monitor the font caching; see below.
- -b
- Backwards order printing from the default. For example,
laser printers using the Canon engine print normally
receive pages in reverse order because they stack
printed side up. Some have page handling mechanisms
that stack them face down, and in such a case
-b will
ensure that they come out in order
1, 2,…
instead of
n, n - 1, n - 2,…
- -c#
- Print # copies of each output page. Page copies
are printed consecutively; this does not
give multiple collated copies of the entire job.
- -d#
- Produce debugging output on stderr if a
non-zero value is given. Only the last switch
given is used. Add values of the
following possible options to obtain the switch
value:
- 1
- (DVIJET only) print page bitmap in hexadecimal;
- 2
- display page coordinates and metrics of
each output character, and print each
character bitmap in hexadecimal;
- 4
- (DVIJEP only) display updated page
coordinate of each character after each call
to fixpos();
- 8
- print filename and open mode of
each successful file opening;
- 16
- print filename and open mode of
each unsuccessful file opening;
- 32
- show discarded off-page text;
- 64
- trace virtual font caching.
For example, -d24 will trace all attempted
file openings.
- -eVAR=value
- Define an environment variable on the command
line (see the later section Environment
Variables). The acceptable values for VAR are DVIHELP,
FONTLIST,
TEXFONTS, and
TEXINPUTS. Under normal use of the
translators, these can be set by and
define VAR: value commands, or by
CSH setenv VAR=value or SH
VAR=value commands. When the
translator is invoked by another program, such as
a print spooler, on some systems it may not be
possible to set a
particular value of an environment variable for
the subprocess, so this option gets around this
limitation. On most systems, it should
be possible to use the call system("VAR=value; dvixxx filename").
- -ffontsubfile
- Define an alternate font substitution file which
is to be used instead of the default ones (see below).
- -l
- Inhibit logging.
- -m#
- Reset magnification to #. The default for low
resolution printers is -m603, corresponding
to 1/1.25 magnification of 300-dot/inch
fonts. By TEX
conventions, magnification 1000 corresponds to a
200-dot/inch output device. The default
magnification is always adjusted according to the
output device resolution in order to give a
normal page size, so this parameter should rarely
be required. Legal values are
int((1000 or 1440 or 1500)×1.2k/2) (k = - 16…16);
other values will be set to the nearest in this
family. Not all fonts will be available in this
wide range, and most installations will probably
have only a half dozen or so magnifications.
Magnification values less than 25 are taken to be a
TEX magstep parameter which is applied to the
standard magnification for that device. For
example, -m-0.5 selects a smaller size, and
-m2 selects a size 1.44 times larger than
normal.
- -o#
- -o#:#
- -o#:#:#
- Specify a page number, or range of page numbers,
to be selected for output. In the third form,
the last number is the page number step size; it
is normally 1. This option may be
specified any number of times. If it is not
specified, then all pages will be printed. Pages
are numbered in order
1, 2, 3,… in the
file, but any page number recorded by TEX on
the printed page will in general be different.
Negative page numbers count backward; -1 is the
last page in the document, -2 the second last
page, and so on. As pages are selected for
printing,
[#{#}
will be printed on stderr, where the first #
is the page
number in the file, and the second #
is
the value of the TEX counter, \count0
,
which usually records the printed page number.
When the page is completely output, a closing
] will be printed on stderr. Any
error messages from processing of that page will
therefore occur between the square brackets. For
example, -o1:3 -o12 -o17:23 -o-3:-1 would
select pages 1, 2, 3, 12, 17, 18, 19, 20, 21, 22,
and 23, plus the last three pages. Pages are
processed in the order found in the DVI file;
there is intentionally no attempt made to sort
them according the \count0
values, since
different macro packages may use this counter for
different purposes, and in the case of floating
tables and figures, the pages may not be in order
anyway. Pages will always be printed in an order
appropriate for the device so that the first
document page occurs first face up in the
document stack; the -b option can be used
to reverse this order. For example, some
Hewlett-Packard LaserJet Plus printers are
equipped with a page flipper which stacks output
face down; for these, the -b option will
ensure that the pages come out in the expected
order.
Specification of a page number step size is
useful for producing duplex (two-sided) printing.
For example, with laser printers using the Canon
LBP-CX engine, the first run could specify -o1:9999:2, which would stack output face up,
beginning with the last page, and ending with
page 1 on top. The printed pages can then be
reinserted in the input tray face up, page
1 on the top, exactly as they were found in the
output tray, with the top of the page in the tray
closest to the end which is inserted first into the
printer. A second run with -b -o2:9999:2
would then print pages 2, 4, ..., on the backs
of pages 1, 3, ...; note the -b option
to get backwards order on the second run.
There is a bug in Microsoft C's sscanf() on
the IBM PC; it does not correctly parse input on
the format "%d:%d:%d" in option()
for the page number switch. It correctly returns
the numbers, but instead of returning the number
of such items parsed, it returns -1, which should
only happen if none are parsed. A work around
seems to be to supply a trailing colon on the
switch, so that you write -o17: instead of
-o17.
- -p
- Inhibit font preloading. This may produce output a few
seconds earlier when all pages are output, but should
have negligible effect on the execution time, and
consequently, should normally not be specified. When
individual pages are being printed with the -o# option,
preloading is necessary (and will be forced) to ensure
that all fonts are defined before they are referenced.
- -q
- Quiet mode. Status displays to stderr are
suppressed, unless warning or error messages are
issued. For interactive devices (DVIBIT), warning
messages are suppressed.
- -r#
- (Device = HP LaserJet only). Specify the Laser
Jet output resolution in dots per inch. #
must be one of 75, 100, 150, or 300. The actual
plot file is identical in each case; only the
size on the output page is changed, because the
resolution change is effected by printing 1
× 1, 2 × 2, 3 × 3, or 4
× 4 pixel blocks.
- -r
- (Device = Golden Laser 100 only). Select
run-length encoding of the output file. This
reduces disk space typically by 10% to 40%, but
increases host CPU time for the preparation of
the output file.
- -r
- (Device = Apple ImageWriter only). Select run-length
encoding of the output file.
- -r
- (Device = Toshiba P-1351 only). Select
run-length encoding of the output file. This
reduces disk space typically by 10% to 40%, but
increases host CPU time for the preparation of
the output file, and because of poor logic in the
printer, may double the print time! The print
quality is also substantially worse, so this
option is generally not recommended.
- -s#
- (Device = Apple LaserWriter only). Force
characters larger than # pixels wide or high to
be reloaded each time they are required. The
Version 23.0 interpreter has a bug
which manifests itself in fatal VM error
messages when large characters are sent. A
reasonable default value has been set for this
which should normally avoid the problem.
Specifying -s0 will cause reloading of
every character each time it is used.
- -v
- (Device = Apple LaserWriter only). Force reloading of
all required fonts at start of each page.
- -x#bp
- big point (
1in = 72bp)
- -x#cc
- cicero (
1cc = 12dd)
- -x#cm
- centimeter (
1in = 2.54cm)
- -x#dd
- didot point (
1157dd = 1238pt)
- -x#in
- inch
- -x#mm
- millimeter (
10mm = 1cm)
- -x#pc
- pica (
1pc = 12pt)
- -x#pt
- point (
72.27pt = 1in)
- -x#sp
- scaled point (
65536sp = 1pt)
The -x options specify the left margin of
the TEX page on the output page in any of the
indicated units. Letter case is not significant
in the unit field, which must not be
separated from the number by any space. #
may be fractional. For example, -x1.0in,
-x2.54cm, -x72.27pt, and -x6.0225pc all specify a one-inch left margin.
Negative values are permissible, and may be used
to shift the output page left (possibly
truncating it on the left) in order to display a
wide TEX page.
- -y#bp
- big point (
1in = 72bp)
- -y#cc
- cicero (
1cc = 12dd)
- -y#cm
- centimeter (
1in = 2.54cm)
- -y#dd
- didot point (
1157dd = 1238pt)
- -y#in
- inch
- -y#mm
- millimeter (
10mm = 1cm)
- -y#pc
- pica (
1pc = 12pt)
- -y#pt
- point (
72.27pt = 1in)
- -y#sp
- scaled point (
65536sp = 1pt)
The -y options specify the top margin of
the TEX page
on the output page in any of the indicated units.
Letter case is not significant in the unit field,
which must not be separated from the number by
any space. # may be fractional. For example,
-y1.0in, -y2.54cm, -y72.27pt,
and -y6.0225pc all specify a one-inch top
margin. Negative values are permissible, and may
be used to shift the output page up (possibly
truncating it on the top) in order to display a
long TEX page.
- -z
- (Device = Apple LaserWriter or HP LaserJet Plus
on only). For each DVI file processed,
type in an EXEC command DVISPOOL: dvifilename
followed by a newline; the user may then define
DVISPOOL: to be a program which sends the
translation of the DVI file to the appropriate
output spooler.
If no -ffontsubfile option is given, and font substitution
is required, if the current DVI file is foo.dvi, then the
files foo.sub, texfonts.sub, and texinputs:texfonts.sub will be tried in order. The first two
will be found on the current directory, and the last is the
system default. This gives the option of document-specific,
user-specific, and system-specific substitutions, and the -f option allows all of these to be overridden.
Font substitution lines have the form:
% comment
oldname.oldmag -> subname.submag % comment
oldname oldmag -> subname submag % comment
oldname -> subname % comment
Examples are:
% These provide replacements for some LaTeX invisible fonts:
iamr10 1500 -> amr10 1500 % comment
iamr10.1500 -> amr10.1500 % comment
iamssb8 -> amssb8 % comment
The first two forms request substitution of a particular font and
magnification. The third form substitutes an entire font family; the
closest available magnification to the required one will be used. Any
dots in the non-comment portion will be converted to spaces, and
therefore, cannot be part of a name field.
The first matching substitution will be selected, so
magnification-specific substitutions should be given first,
before family substitutions.
Comments are introduced by percent and continue to end-of-line,
just as for TEX. One whitespace character is equivalent to
any amount of whitespace. Whitespace and comments are optional.