HOME

TheInfoList



OR:

The device independent file format (DVI) is the output
file format A file format is a standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free. Some file formats ...
of the TeX typesetting program, designed by David R. Fuchs and implemented by Donald E. Knuth in 1982. 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 PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
,
PDF Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
) 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 PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
and
PDF Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
in that it does not support any form of font embedding. (Both PostScript and PDF formats can either embed their fonts inside the documents, or reference external ones.) 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". It seems to be based on a TUGboat article of the same name from 1992, but which is much shorter. These documents do not specify the endianness, which is however big endian, as can be seen looking into a DVI file itself.


Specification

The DVI format was designed to be compact and easily machine-readable. Toward this end, a DVI file is a sequence of commands which form "a machine-like language", in Knuth's words. Each command begins with an eight-bit
opcode In computing, an opcode (abbreviated from operation code, also known as instruction machine code, instruction code, instruction syllable, instruction parcel or opstring) is the portion of a machine language instruction that specifies the operat ...
, followed by zero or more bytes of parameters. For example, an opcode from the group 0x00 through 0x7F (decimal 127), set_char_''i'', typesets a single character and moves the implicit cursor right by that character's width. In contrast, opcode 0xF7 (decimal 247), pre (the preamble, which must be the first opcode in the DVI file), takes at least fourteen bytes of parameters, plus an optional comment of up to 255 bytes. In a broader sense, a DVI file consists of a preamble, one or more pages, and a postamble. Six state variables are maintained as a tuple of signed, 32-bit integers: (h,v,w,x,y,z). ''h'' and ''v'' are the current horizontal and vertical offsets from the upper-left corner (increasing ''v'' moves down the page), ''w'' and ''x'' hold horizontal space values, ''y'' and ''z'', vertical. These variables can be pushed to or popped from the
stack Stack may refer to: Places * Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group * Blue Stack Mountains, in Co. Donegal, Ireland People * Stack (surname) (including a list of people ...
. In addition, the current font ''f'' is held as an integer value, but is not pushed and popped with the rest of the state variables when the opcodes push or pop are encountered. Font spacing information is loaded from TFM files. The fonts themselves are not embedded in the DVI file, only referenced by an integer value defined in the relevant fnt_def''i'' op. (This is done exactly twice for each loaded font: once before it is referenced, and once in the postamble.) ''f'' contains an integer value of up to four bytes in length, though in practice, TeX only ever outputs font numbers in the range 0 through 255. Similarly, the DVI format supports character codes up to four bytes in length, even though only the 0–255 range is commonly seen, as the TFM format is limited to that range. Character codes in DVI files refer to the character encoding of the current font rather than that of the system processing it. This means, for instance, that an EBCDIC-based system can process a DVI file that was generated by an ASCII-based system, so long as it has the same fonts installed.


Graphics as specials

The DVI format does not have support for
graphics Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of data, as in design and manufacture ...
except for the most basic black-and-white boxes. Instead DVI has a general escape/extension mechanism, known as specials (expressed by the \special command in TeX), which defers graphics (and color) to post-processing filters. There are numerous DVI specials, the most notable of which are
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
specials, but other programs like tpic have their own.


DVI versions


DVI related software

DVI files are often converted into PDF, PostScript, or
PCL PCL may refer to: Aviation *FAP Captain David Abenzur Rengifo International Airport, near Pucallpa, Peru (IATA code: PCL) *Pilot-controlled lighting, a system by which aircraft pilots can control the lighting of runways and taxiways via radio cont ...
format for reading and printing. They can be also viewed directly by using DVI viewers. * DVI viewers: YAP (included in MiKTeX), xdvi
windvi
Evince
KDVI
Okular
dvioutdviwin
DView (included in the commercial BaKoMa TeX distribution)
javaDVIMDVI
and DVIWindo (of the now defunct commercial Y&Y TeX, which has been open-sourced). * DVI to human-readable format: dvitype (disassembler of sorts) * DVI-to-PDF converters: dvipdf, dvipdfm, dvipdfmx * DVI-to-PS converters:
dvips dvips is a computer program that converts the Device Independent file format (DVI) output of TeX typography into a printable or otherwise presentable form. was written by Tomas Rokicki to produce printable PostScript files from DVI input, and ...
is the de facto standard. CTAN includes some older ones like dvitops (and DVIPSONE) with a note that they lost their market share a long time ago. * DVI-to-bitmap converters:
dvipng dvipng is a cross-platform program for converting the DVI output of the TeX typesetting system into PNG image format. Dvipng was written by Jan-Åke Larsson. The traditional TeX82 outputs device independent (DVI) files, which as the name impli ...
(generates GIF or PNG), or use
dvips dvips is a computer program that converts the Device Independent file format (DVI) output of TeX typography into a printable or otherwise presentable form. was written by Tomas Rokicki to produce printable PostScript files from DVI input, and ...
and Ghostscript * DVI-to-SVG converters
dvisvg
dvisvgm
dvi2svg; the only one included in CTAN and actively maintained is dvisvgm. The first DVI previewers capable of on-screen previewing and modification of LaTeX documents ran on
Amiga Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphi ...
s.


DVI-to-PDF converters

dvipdf is a tool to translate DVI files (generated by TeX) to
PDF Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
files. In current Linux distributions like Ubuntu, it is a thin wrapper around dvips and Ghostscript, and copyrighted to Artifex Software (the makers of Ghostscript). A possibly different program with the same name—described as a modified version of dvips—was announced in the late 1990s by Sergey Lesenko, however it was apparently never released. dvipdfm is a DVI-to-PDF translator developed by Mark A. Wicks. The early documentation of dvipdfm specifically mentions the limited availability of Lesenko's dvipdf as a reason for creating dvipdfm. dvipdfm supports most of the newer special functions of the PDF format, including bookmarks, annotations, thumbnails, and dvips specials—a feature making possible the inclusion of
Encapsulated PostScript Encapsulated PostScript (EPS) is a Document Structuring Convention (DSC) conforming PostScript document format usable as a graphics file format. The format was developed as early as 1987 by John Warnock and Chuck Geschke, the founders of Adobe, ...
(.eps) files like METAPOST output—as well inclusion of
JPEG JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and imag ...
and PNG images; other features of dvipdfm include partial font embedding (reducing file size) and balancing the internal PDF document trees to speed up rendering of large documents. Many of these features (except for the direct support for .eps files) are also present in pdfTeX, which typesets TeX directly to PDF. The 2004, 4th edition of the ''Guide to LaTeX'' compares them in the following way: dvipdfmx is an extended version of the dvipdfm DVI-to-PDF translator, included in current TeX distributions like TeX Live 2014 and MiKTeX 2.9. The primary goal of the dvipdfmx project is to support multi-byte character encodings and CJK character sets for East Asian languages. dvipdfmx is also included (in a somewhat modified form) in XeTeX. The 2nd, 2008 edition of the ''LaTeX Graphics Companion'' makes the following workflow suggestion:


References and notes

*


External links


(Unofficial) description of the DVI file format

TeX DVI file Information utility

CTAN: /tex-archive/dviware

pdftex - Why does pdflatex produce bigger output files than latex+dvipdfm?
{{TeX navbox Page description languages Computer file formats Open formats TeX