DESCRIPTION

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.