Введение

Формат файла набора текста (англ. device independent file format, DVI) — это формат выходного файла программы набора текста TeX, разработанный Дэвидом Р. Фуксом и реализованный Дональдом Э. Кнутом в 1982 году. В отличие от файлов разметки TeX, используемых для их генерации, файлы DVI не предназначены для чтения человеком; они состоят из бинарных данных, описывающих визуальное оформление документа способом, не зависящим от какого-либо конкретного формата изображения, оборудования отображения или принтера. Файлы DVI обычно используются в качестве входных данных для второй программы (называемой драйвером DVI), которая преобразует файлы DVI в графические данные. Например, большинство пакетов программного обеспечения TeX включают программу для предварительного просмотра файлов DVI на экране компьютера пользователя; эта программа и является драйвером. Драйверы также используются для преобразования из DVI в популярные языки описания страниц (например, PostScript, PDF) и для печати. Разметку TeX можно, по крайней мере частично, восстановить из файлов DVI, хотя этот процесс вряд ли позволит получить конструкции высокого уровня, идентичные тем, что присутствуют в исходной разметке, особенно если исходная разметка использовала расширения TeX высокого уровня (например, LaTeX). DVI отличается от PostScript и PDF тем, что не поддерживает встраивание шрифтов, а лишь ссылается на внешние имена шрифтов. (Как форматы PostScript, так и PDF могут встраивать шрифты непосредственно в документы.) Для того чтобы файл DVI был напечатан или даже правильно отображен, шрифты, на которые он ссылается, должны быть предварительно установлены. Как и PDF, DVI использует ограниченный тип машинного языка с гарантией завершения, который не является полноценным языком программирования Тьюринга, подобно PostScript. С 2004 года существует сборник спецификаций, которым должен соответствовать драйвер DVI, подготовленный "Комитетом по стандартам драйверов TUG DVI". Он, по-видимому, основан на статье TUGboat с тем же названием, опубликованной в 1992 году, но значительно короче. В этих документах не указан порядок байтов (endianness), однако, как видно из структуры самого файла DVI, он имеет старший порядок байтов (big endian).

Спецификация

Формат DVI был разработан, чтобы быть компактным и легко читаемым машиной. С этой целью файл DVI представляет собой последовательность команд, образующих, по словам Кнута, "язык, похожий на машинный".