Независимый от устройства формат файла


Из Википедии, бесплатной энциклопедии
  (Перенаправлено из специальных выпусков DVI )
Перейти к навигации Перейти к поиску

Независимый от устройства формат файла ( DVI ) — это формат выходного файла программы набора текста TeX , разработанный Дэвидом Р. Фуксом и реализованный Дональдом Э. Кнутом в 1982 году. [1] В отличие от файлов разметки 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». [2] Кажется, он основан на одноименной статье TUGboat 1992 года, но она намного короче. [3] В этих документах не указывается порядок следования байтов , который, однако, является прямым порядком байтов, как видно из самого файла DVI.

Технические характеристики

Формат DVI был разработан, чтобы быть компактным и легко читаемым компьютером. С этой целью файл DVI представляет собой последовательность команд, которые образуют « машиноподобный язык », по словам Кнута . [1] Каждая команда начинается с восьмибитного кода операции , за которым следует ноль или более байтов параметров. Например, код операции из группы 0x00через 0x7F(десятичное число 127) набирает один символ и перемещает неявный курсор вправо на ширину этого символа. Напротив, код операции (десятичное число 247) (преамбула, которая должна быть первым кодом операции в файле DVI) принимает не менее четырнадцати байтов параметров плюс необязательный комментарий размером до 255 байт.set_char_i0xF7pre

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

Эти переменные могут быть помещены в стек или извлечены из него . Кроме того, текущий шрифт f сохраняется как целочисленное значение, но не выдвигается и не извлекается вместе с остальными переменными состояния при обнаружении кодов операции pushили pop. Информация о интервалах между шрифтами загружается из файлов TFM . Сами шрифты не встроены в файл DVI, на них ссылается только целочисленное значение, определенное в соответствующей операции. (Это делается ровно дважды для каждого загруженного шрифта: один раз перед ссылкой на него и один раз в постамбуле.) f содержит целочисленное значение длиной до четырех байтов, хотя на практике TeX всегда выводит только номера шрифтов в диапазоне от 0 до 255.fnt_defi

Точно так же формат DVI поддерживает коды символов длиной до четырех байтов, хотя обычно виден только диапазон 0–255, поскольку формат TFM ограничен этим диапазоном. Коды символов в файлах DVI относятся к кодировке символов текущего шрифта, а не к кодировке системы, обрабатывающей его. Это означает, например, что система на основе EBCDIC может обрабатывать файл DVI, созданный системой на основе ASCII , если в ней установлены те же шрифты.

Графика как спец.

Формат DVI не поддерживает графику , за исключением самых простых черно-белых блоков. Вместо этого DVI имеет общий механизм выхода/расширения, известный как specials (выражаемый \specialкомандой в TeX), который откладывает графику (и цвет) на фильтры постобработки. Существует множество специальных программ DVI, наиболее заметными из которых являются специальные программы PostScript , но другие программы, такие как tpic , имеют свои собственные. [4] : 6, 17 

версии DVI

Программное обеспечение, связанное с DVI

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

  • Программы просмотра DVI: YAP (входит в состав MiKTeX ), xdvi , windvi , Evince , KDVI , Okular , dviout , dviwin , DView (входит в состав коммерческого дистрибутива BaKoMa TeX), javaDVI , MDVI и DVIWindo (из ныне несуществующего коммерческого Y&Y TeX, который находится в открытом доступе). [5]
  • DVI в удобочитаемый формат: dvitype (своего рода дизассемблер)
  • Преобразователи DVI в PDF: dvipdf, dvipdfm, dvipdfmx
  • Преобразователи DVI-to-PS: стандартом де-факто является dvips . CTAN включает в себя некоторые более старые, такие как dvitops (и DVIPSONE [6] ) с примечанием, что они давно потеряли свою долю рынка. [7]
  • Преобразователи DVI-to-bitmap: dvipng (генерирует GIF или PNG) или используйте dvips и Ghostscript.
  • Преобразователи DVI-to-SVG: dvisvg , [4] : ​​13  dvisvgm , [4] : ​​13  dvi2svg; [4] : 13  [8] По состоянию на 2014 год единственным включенным в CTAN и активно поддерживаемым является dvisvgm. [9]

Первые средства предварительного просмотра DVI, способные просматривать на экране и изменять документы LaTeX, работали на Amigas . [10] [11]

Преобразователи DVI в PDF

dvipdf — это инструмент для преобразования файлов DVI (сгенерированных TeX ) в файлы PDF . В текущих дистрибутивах Linux, таких как Ubuntu , это тонкая оболочка вокруг dvips и Ghostscript , авторские права на которую принадлежат Artifex Software (создатели Ghostscript). [12] Возможно, другая программа с тем же названием, описываемая как модифицированная версия dvips, была анонсирована в конце 1990-х Сергеем Лесенко, [13] [14] [15] , однако она, по-видимому, так и не была выпущена . [16] [17]

dvipdfm — это транслятор DVI в PDF, разработанный Марком А. Уиксом. В ранней документации dvipdfm специально упоминается ограниченная доступность dvipdf Лесенко как причина для создания dvipdfm. [18] dvipdfm поддерживает большинство новых специальных функций формата PDF, включая закладки , аннотации , эскизы и специальные функции dvips — функция, позволяющая включать файлы Encapsulated PostScript (.eps), такие как вывод METAPOST , — а также включение JPEG и PNG - изображения; другие функции dvipdfm включают частичное встраивание шрифта(уменьшение размера файла) и балансировка внутренних деревьев документов PDF для ускорения рендеринга больших документов. [4] : 798  Многие из этих функций (за исключением прямой поддержки файлов .eps [19] ) также присутствуют в pdfTeX , который печатает TeX непосредственно в PDF. В 4-м издании Руководства по LaTeX 2004 г. они сравниваются следующим образом: [20]

Программа dvipdfm соответствует первоначальному духу TEX, который использует DVI в качестве универсального промежуточного формата для всех выходных данных. Пуристы могут уважать этот идеал. В конце концов, никто никогда не думал о том, чтобы переписать TEX для прямого вывода в формате PostScript. Тем не менее, следует учитывать, что TEX был изобретен в те дни, когда ни одна спецификация принтера не доминировала в этой области. Сегодня PDF — это гораздо больше, чем формат для печати; это средство представления документов в электронном виде. Это само по себе не оправдывает предпочтение pdfTEX перед конвертером DVI-to-PDF, равно как и тот факт, что он экономит этап обработки; решающим аргументом является то, что pdfTEX зарекомендовал себя как надежный, надежный и гибкий. В конце концов, скорее всего, вопрос в том, какая программа более удобна и какая из них дала лучшие результаты для конкретного пользователя.

dvipdfmx — это расширенная версия транслятора DVI-to-PDF dvipdfm, включенная в текущие дистрибутивы TeX, такие как TeX Live 2014 [21] и MiKTeX 2.9. [22] Основной целью проекта dvipdfmx является поддержка многобайтовых кодировок символов и наборов символов CJK для языков Восточной Азии. [23] dvipdfmx также включен (в несколько измененной форме) в XeTeX . [4] : 798 

Во втором выпуске LaTeX Graphics Companion за 2008 г. предлагается следующий рабочий процесс: [4] : ​​803. 

Путь, по которому вы должны следовать, зависит главным образом от графического материала, который вы хотите включить. Если большая часть из них находится в формате EPS, проще всего использовать латекс, затем dvips и, наконец , ps2pdf . Если все ваши графические файлы уже в формате PDF с некоторыми изображениями в формате JPEG и PNG, более прямой путь — запустить pdflatex. Вы также можете комбинировать оба подхода, запустив латекс и программу dvipdfmx. Если вы часто используете PSTricks , вам следует посмотреть [...] пакет pst-pdf.

Ссылки и примечания

  1. ^ a b Дональд Э. Кнут (декабрь 1995 г.). "DVItype" ( исходный код WEB ; извлечение полной документации с помощью WEAVE ) . Версия 3.6 . Проверено 7 мая 2008 г. .
  2. ^ Комитет по стандартам драйверов TUG DVI. «Стандарт драйвера DVI, уровень 0» (PDF) . ctan.org .
  3. ^ Комитет по стандартам драйверов TUG DVI (1992). «Стандарт драйвера DVI, уровень 0» (PDF) . БУКСИР . 13 : 54.
  4. ^ a b c d e f g Мишель Гуссенс, Франк Миттельбах, Себастьян Ратц , Денис Рогель, Герберт Фосс (2008). LaTeX Graphics Companion (2-е изд.). Эддисон-Уэсли. ISBN 978-0-321-50892-8.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  5. ^ "Y&Y Inc. - DVIWindo" . www.tug.org .
  6. ^ "Y&Y Inc. - DVIPSONE" . www.tug.org .
  7. ^ "CTAN: /tex-архив/dviware/dvitops" . ctan.org .
  8. ^ https://www.tug.org/TUGboat/tb27-2/tb87frischauf.pdf [ голый URL PDF ]
  9. Викискладе есть медиафайлы по теме CTAN . ctan.org .
  10. ↑ В 1986 году Томас Рокицки напечатал свою первую страницу с помощью dvisw, раннего драйвера принтера DVI для Amiga, на QMS SmartWriter с использованием AmigaTeX от Radical Eye Software . Ссылка на реликтовую информацию о вехах истории LaTeX доступна на этом внешнем сайте .
  11. ↑ Рокицки , Томас (апрель 1988 г.). «Commodore Amiga: волшебная машина TeX» (PDF) . БУКСИР . 9 (1): 40–41 . Проверено 19 ноября 2010 г. .
  12. ^ "Архивная копия" . Архивировано из оригинала 09.09.2015 . Проверено 3 августа 2014 г. .{{cite web}}: CS1 maint: заархивированная копия как заголовок ( ссылка )
  13. ^ https://www.tug.org/TUGboat/tb17-3/tb52lese.pdf [ необработанный URL в формате PDF ]
  14. ^ https://www.tug.org/TUGboat/tb18-3/tb56lese.pdf [ необработанный URL в формате PDF ]
  15. Викискладе есть медиафайлы по теме навигатора TeX .
  16. ^ Гельмут Копка; Патрик В. Дейли (февраль 2008 г.) [2004 г.]. Руководство по LaTeX (4-е; 9-е изд.). Пирсон Образование. § 13.2.2 драйвер dvipdfm. ISBN 978-0-321-17385-0.
  17. ^ "Где арт dvipdf? - comp.text.tex" . compgroups.net .
  18. Марк А. Викс, Руководство пользователя Dvipdfm , заархивировано 6 июля 2015 г. на Wayback Machine , версия 0.12.4, 19 сентября 1999 г., стр. 2.
  19. ^ «Перенаправление texfaq2html, эмулирующее поиск cgi-bin на исходном сайте» . www.texfaq.org .
  20. ^ Гельмут Копка; Патрик В. Дейли (февраль 2008 г.) [2004 г.]. Руководство по LaTeX (4-е; 9-е изд.). Пирсон Образование. § 13.2.3 Программа pdfTEX. ISBN 978-0-321-17385-0.
  21. ^ «Debian — Подробная информация о пакете texlive-base в sid» . пакеты.debian.org .
  22. ^ "Пакеты MiKTeX AZ" . miktex.org .
  23. ^ "Проект DVDFMx" . проект.ktug.org .
  • Фукс, Дэвид (октябрь 1982 г.). «Формат файлов DVI TeX» (PDF) . БУКСИР . 3 (2): 13–19 . Проверено 19 августа 2009 г. .

внешние ссылки

  • (Неофициальное) описание формата файла DVI
  • Информационная утилита файла TeX DVI
  • CTAN: /tex-архив/dviware
  • pdftex - Почему pdflatex создает выходные файлы большего размера, чем латекс + dvipdfm?
Получено с https://en.wikipedia.org/w/index.php?title=Device_independent_file_format&oldid=1091586123 "