The intended result of a run is the creation of a .dvi
file containing a device-independent description of each page of
the document. Sometimes, in order to create this, it will be necessary
to run
on the document twice-similarly to a programming language
compiler,
often needs two passes at a document to resolve forward
references. An obvious case of this is the contents page, which
appears at the front of a document, but cannot be created until
has seen the whole of the document.
The .dvi file contains details of the size, style and placement of
each character to be found on each page of the final document.
If can be considered to be a document compiler, then a DVI
post-processor,
to continue the analogy, combines some of the functionality of an assembler
and a linker.
The same .dvi file may be used to
generate device-dependent output for any number of output devices,
the only limitation being the availability of the desired output device.
The DVI post-processor takes the device-independent form of the
document page descriptions, and produces output in a
format suitable for delivery to a printer or similar device.
In general, on this site, there are two DVI post-processing routes to consider: one for on-screen presentation (if desired) and one for generation of the Postscript page description language understood by local laser-printers. The former route is handled mostly by the xdvi package described in Chapter 7, and the latter by a program called dvips. There is at least one other driver available, but only for local compatibility with old documents that require it; new users should not even consider attempting to use it.