DVI (TeX)

У этого термина существуют и другие значения, см. DVI (значения).

Device-independent (DVI)

Предпросмотр DVI-файла в Evince.
Расширение |  `.`.dvi``
MIME-тип |  `application/x-dvi `(неофициальный)
Разработчик |  David R. Fuchs
Тип формата |  Документ

DVI (от англ. DeVice Independent — аппаратно независимый) — формат выходных файлов издательской системы ΤΕΧ. Для генерации файлов в формате DVI используются текстовые файлы на языке ΤΕΧ, но в отличие от них файлы DVI не приспособлены для чтения человеком; они содержат двоичные данные, описывающие визуальное представление документа способом, не ориентированным на какой-либо формат изображения, монитор или принтер (отсюда название формата). Файлы DVI обычно подаются на вход другой программы (называемой DVI-драйвером), которая преобразует их в графические данные. Например, многие дистрибутивы ΤΕΧ включают программу предпросмотра файлов DVI на мониторе; эта программа является драйвером. Драйверы также используются для конвертирования файлов DVI в другие форматы (такие как PostScript, PDF) и для печати. Википедия использует PNG-драйвер для получения изображений математических формул.

Исходный текст на языке ΤΕΧ может быть (по крайней мере частично) восстановлен из файлов DVI, хотя получаемые при этом конструкции могут и не совпадать с оригинальными высокоуровневыми конструкциями языка, особенно если в исходном тексте использовались расширения обычного ΤΕΧ (например, LAΤΕΧ).

Формат DVI отличается от PostScript и PDF в том, что не поддерживает встроенных шрифтов. Документы в форматах PostScript и PDF могут содержать как непосредственно встроенные шрифты, так и ссылки на внешние шрифты. При печати или просмотре файла DVI не нужно иметь все шрифты, на которые он ссылается; будут показаны только символы имеющихся шрифтов.

## Описание

[править | править код]

Формат DVI разрабатывался с условием быть компактным и простым для машинной обработки. По этой причине файл DVI представляет собой последовательность команд на «машинно-подобном языке». Каждая команда начинается с 8-битного кода команды, за которым следуют необязательные байты параметров. Например, команды с кодами в группе от `0x00` до `0x7F` (0–127 в десятичной системе), `set_char_i`, печатают один символ и сдвигают воображаемый курсор вправо на ширину соответствующего изображения. В то же время команда с кодом `0xF7` (247), `pre` (преамбула; эта команда должна быть первой в DVI файле), имеет как минимум 14 байтов параметров и необязательный комментарий длиной до 255 байт.

В общих чертах файл формата DVI состоит из преамбулы, одной или более страниц и заключительной части. Имеется 6 переменных состояния, хранящихся как кортеж знаковых 32-битных целых чисел: (h, v, w, x, y, z). h и v — текущее горизонтальное и вертикальное смещения от верхнего левого угла (увеличение v сдвигает позицию на странице вниз), w и x содержат значения горизонтальных промежутков, y и z — вертикальных. Эти переменные могут обрабатываться в стеке.

Шрифты загружаются из файлов TFM и как таковые не содержатся непосредственно в DVI файле. Вместо этого хранятся лишь ссылки на них. На каждый загруженный один раз шрифт можно сослаться с помощью внутреннего индекса. Это сделано для уменьшения размеров файлов.

Формат DVI также ориентирован на кодировку символов в шрифтах, а не на кодировку используемой системы. Это означает, что, например, основанная на EBCDIC система может свободно обрабатывать файл DVI, созданный в системе, основанной на ASCII.

## Программы для просмотра DVI файлов

[править | править код]

* xdvi, работает в среде X Window System на большинстве UNIX-совместимых платформ;
* xdvik, улучшенный вариант xdvi;
* Evince, входит в состав GNOME; кроме DVI поддерживает форматы PDF, PostScript, DjVu и TIFF.
* Okular, универсальный просмотрщик документов, входящий в состав KDE.
* yap (в составе MiKTeX, реализации TeX для платформы Windows)

## Ссылки

[править | править код]

* DVIType.web (недоступная ссылка с 10-08-2013 [4375 дней] — история, копия), синтаксический анализатор файлов формата DVI, написанный на WEB и содержащий полную спецификацию формата DVI
* Описание формата DVI (англ.)

ΤΕΧ

Макропакеты|

* AMS-LaTeX
* ArabTeX
* ConTeXt
* FarsiTeX
* Texinfo
* LAΤΕΧ
* MusiXTeX
* Plain TeX
* PSTricks
* TIPA
* XyMTeX

Альтернативные движки ΤΕΧ|

* eTeX
* luaTeX
* pdfTeX
* XeTeX
* New Typesetting System
* Omega

Дистрибутивы|

* TeX Live
* teTeX
* fpTeX
* MiKTeX
* proTeXt
* MacTeX
* gwTeX
* OzTeX
* Latexian
* PasTeX

Сообщество|

* CTAN
* TUGboat
* The PracTeX Journal
* Deutschsprachige Anwendervereinigung TeX

Разное|

* DVI
* Computer Modern
* Metafont
* MetaPost
* WEB
* CWEB
* TeX Directory Structure
* TeX font metric