The device independent file format (DVI) is the output
file format
A file format is a Computer standard, 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 format, pr ...
of the
TeX
Tex, TeX, TEX, may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Tex Earnhardt (1930–2020), U.S. businessman
* Joe Tex (1933–1982), stage name of American soul singer ...
typesetting
Typesetting is the composition of text for publication, display, or distribution by means of arranging physical ''type'' (or ''sort'') in mechanical systems or '' glyphs'' in digital systems representing '' characters'' (letters and other ...
program, designed by David R. Fuchs in 1979.
Unlike the TeX markup files used to generate them, DVI files are not intended to be
human-readable; they consist of
binary data
Binary data is data whose unit can take on only two possible states. These are often labelled as 0 and 1 in accordance with the binary numeral system and Boolean algebra.
Binary data occurs in many different technical and scientific fields, wh ...
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 and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
,
PDF
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
) 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
Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well.
In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
).
DVI differs from
PostScript
PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
and
PDF
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
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
In computability theory, a system of data-manipulation rules (such as a model of computation, a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be ...
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
file:Gullivers_travels.jpg, ''Gulliver's Travels'' by Jonathan Swift, the novel from which the term was coined
In computing, endianness is the order in which bytes within a word (data type), word of digital data are transmitted over a data comm ...
, 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) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
, 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'' 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. 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
Tex, TeX, TEX, may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Tex Earnhardt (1930–2020), U.S. businessman
* Joe Tex (1933–1982), stage name of American soul singer ...
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
Character encoding is the process of assigning numbers to graphical character (computing), characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical v ...
of the current font rather than that of the system processing it. This means, for instance, that an
EBCDIC
Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight- bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding si ...
-based system can process a DVI file that was generated by an
ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
-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 the data, as in design and manufa ...
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 and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
specials, but other programs like
tpic have their own.
DVI versions
DVI related software
DVI files are often converted into PDF, PostScript, or
PCL format for reading and printing. They can be also viewed directly by using DVI viewers.
* DVI viewers:
YAP (included in
MiKTeX),
xdviwindvi EvinceKDVI Okulardvioutdviwin 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: (disassembler of sorts)
* DVI-to-PDF converters: , ,
* DVI-to-PS converters:
dvips is the de facto standard.
CTAN
C mathematical operations are a group of functions in the C standard library, standard library of the C programming language implementing basic mathematical functions. Different C standards provide different, albeit backwards-compatible, sets of ...
includes some older ones like (and DVIPSONE) with a note that they lost their market share a long time ago.
* DVI-to-bitmap converters:
dvipng (generates GIF or PNG), or use
dvips and
Ghostscript
* DVI-to-SVG converters
dvisvg[dvisvgm]
dvi2svg; the only one included in CTAN
C mathematical operations are a group of functions in the C standard library, standard library of the C programming language implementing basic mathematical functions. Different C standards provide different, albeit backwards-compatible, sets of ...
and actively maintained is .
The first DVI previewers capable of on-screen previewing and modification of LaTeX documents ran on Amiga
Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
s.
DVI-to-PDF converters
dvipdf is a tool to translate DVI files (generated by TeX
Tex, TeX, TEX, may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Tex Earnhardt (1930–2020), U.S. businessman
* Joe Tex (1933–1982), stage name of American soul singer ...
) to PDF
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
files. In current Linux distributions like Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
, it is a thin wrapper around dvips and Ghostscript, and copyrighted by 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, annotation
An annotation is extra information associated with a particular point in a document or other piece of information. It can be a note that includes a comment or explanation. Annotations are sometimes presented Marginalia, in the margin of book page ...
s, thumbnails
Thumbnails are reduced-size versions of pictures or videos, used to help in recognizing and organizing them, serving the same role for images as a normal text index (publishing), index does for words. In the age of digital images, visual search ...
, and dvips specials—a feature making possible the inclusion of Encapsulated PostScript (.eps) files like METAPOST output—as well inclusion of JPEG
JPEG ( , short for Joint Photographic Experts Group and sometimes retroactively referred to as JPEG 1) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degr ...
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
TeX Live is a cross-platform, free software, free software distribution for the TeX typesetting system that includes major TeX-related programs, macro packages, and fonts. It is the replacement of its no-longer supported counterpart teTeX.
It is ...
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