This article needs additional citations for verification. (August 2014) |
Filename extension |
.dvi |
---|---|
Internet media type | application/x-dvi (unofficial) |
Developed by | David R. Fuchs |
Type of format | document |
The device independent file format (DVI) is the output file format of the TeX typesetting program, designed by David R. Fuchs and implemented by Donald E. Knuth in 1982.[1] Unlike the TeX markup files used to generate them, DVI files are not intended to be human-readable; they consist of binary data describing the visual layout of a document in a manner not reliant on any specific image format, display hardware or printer. DVI files are typically used as input to a second program (called a DVI driver) which translates DVI files to graphical data. For example, most TeX software packages include a program for previewing DVI files on a user's computer display; this program is a driver. Drivers are also used to convert from DVI to popular page description languages (e.g. PostScript, PDF) and for printing.
TeX markup may be at least partially reverse-engineered from DVI files, although this process is unlikely to produce high-level constructs identical to those present in the original markup, especially if the original markup used high-level TeX extensions (e.g. LaTeX).
DVI differs from PostScript and PDF in that it does not support any form of font embedding, instead merely referencing external font names. (Both PostScript and PDF formats can embed their fonts inside the documents.) For a DVI file to be printed or even properly previewed, the fonts it references must be already installed. Like PDF, DVI uses a limited sort of machine language with termination guarantees that is not a full, Turing-complete programming language like PostScript.
As of 2004 there is a compilation of the specifications a DVI driver must implement by the "TUG DVI Driver Standards Committee".[2] It seems to be based on a TUGboat article of the same name from 1992, but which is much shorter.[3] These documents do not specify the endianness, which is however big endian, as can be seen looking into a DVI file itself.