Из Википедии, бесплатной энциклопедии
  (Перенаправлено с 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 год Комитет по стандартам на драйверы TUG для DVI составлял компиляцию спецификаций, которые должен реализовывать драйвер DVI. [2] Похоже, это основано на одноименной статье TUGboat 1992 года, но она намного короче. [3] В этих документах не указывается порядок байтов , который, однако, является прямым порядком байтов , что можно увидеть в самом файле DVI.

Спецификация [ править ]

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

В более широком смысле файл 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 имеет общий механизм выхода / расширения, известный как специальные (выраженный \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 в растровое изображение: dvipng (генерирует GIF или PNG) или используйте dvips и Ghostscript
  • Конвертеры DVI в 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-to-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 - это расширенная версия переводчика dvipdfm DVI-to-PDF, включенная в текущие дистрибутивы TeX, такие как TeX Live 2014 [21] и MiKTeX 2.9. [22] Основная цель проекта dvipdfmx - поддержка многобайтовых кодировок символов и наборов символов CJK для языков Восточной Азии. [23] dvipdfmx также включен (в несколько измененной форме) в XeTeX . [4] : 798

2-е издание LaTeX Graphics Companion , 2008 г., предлагает следующие рабочие процессы: [4] : 803

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

Ссылки и примечания [ править ]

  1. ^ a b Дональд Э. Кнут (декабрь 1995 г.). «DVItype» ( исходный WEB- код; извлеките полную документацию с помощью WEAVE ) . Версия 3.6 . Проверено 7 мая 2008 . Цитировать журнал требует |journal=( помощь )
  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 (2-е изд.). Эддисон-Уэсли. ISBN 978-0-321-50892-8.CS1 maint: несколько имен: список авторов ( ссылка )
  5. ^ "Y&Y Inc. - DVIWindo" . www.tug.org .
  6. ^ "Y&Y Inc. - DVIPSONE" . www.tug.org .
  7. ^ "CTAN: / tex-archive / dviware / dvitops" . ctan.org .
  8. ^ https://www.tug.org/TUGboat/tb27-2/tb87frischauf.pdf
  9. ^ "CTAN: / tex-archive / dviware" . ctan.org .
  10. ^ В 1986 году Томас Рокицки напечатал свою первую страницу с dvisw, ранним драйвером принтера DVI для Amiga, на QMS SmartWriter с использованием AmigaTeX от Radical Eye Software . Ссылка на реликтовую информацию об основных этапах истории LaTeX доступна на этом внешнем сайте .
  11. ^ Rokicki, Tomas (апрель 1988). "Коммодор Амига: Волшебная машина TeX" (PDF) . ТУГбоат . 9 (1): 40–41 . Проверено 19 ноября 2010 .
  12. ^ "Архивная копия" . Архивировано из оригинала на 2015-09-09 . Проверено 3 августа 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  13. ^ https://www.tug.org/TUGboat/tb17-3/tb52lese.pdf
  14. ^ https://www.tug.org/TUGboat/tb18-3/tb56lese.pdf
  15. ^ http://tex.loria.fr/general/eurotex98/eurotex98-lesenko.ps.gz
  16. ^ Helmut Копка; Патрик В. Дейли (февраль 2008 г.) [2004 г.]. Руководство по LaTeX (4-е; 9-е изд.). Pearson Education. § 13.2.2 драйвер dvipdfm. ISBN 0-321-17385-6.
  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. ^ Helmut Копка; Патрик В. Дейли (февраль 2008 г.) [2004 г.]. Руководство по LaTeX (4-е; 9-е изд.). Pearson Education. § 13.2.3 Программа pdfTEX. ISBN 0-321-17385-6.
  21. ^ "Debian - Подробная информация о пакете texlive-base в sid" . packages.debian.org .
  22. ^ "Пакеты MiKTeX AZ" . miktex.org .
  23. ^ "Проект DVIPDFMx" . project.ktug.org .
  • Фукс, Дэвид (октябрь 1982 г.). «Формат файлов TeX DVI» (PDF) . ТУГбоат . 3 (2): 13–19 . Проверено 19 августа 2009 .

Внешние ссылки [ править ]

  • (Неофициальное) описание формата файла DVI
  • Утилита TeX DVI File Information
  • CTAN: / текс-архив / dviware
  • pdftex - Почему pdflatex производит файлы вывода большего размера, чем latex + dvipdfm?