DVI, PostScript, PDF FAQ

VitMix

В последнее время на этом форуме всё чаще стали появляться вопросы про
DVI, PostScript, PDF и различные преобразования между ними. Поэтому я
решил составить небольшой FAQ на эту тему.
Q1: Что такое PostScript?
A: PostScript -- это язык программирования, обладающий развитыми
графическими возможностями. Представление документа в виде
программы на языке PostScript, рисующей этот документ, является
общепринятым стандартом.
Q2: Что такое PostScript Printer?
A: Принтер, содержащий интерпретатор языка PostScript. Может получать
на вход программы на языке PostScript, выполнять их и печатать на
бумаге то, что эти программы нарисуют.
Q3: Как сконвертировать .doc, .xls, .html, .txt, .bmp файл в
PostScript в системе Windows?
A: Надо скачать и установить драйвер для PostScript Printerа.
После установки принтера надо распечатать исходный документ на нём,
перенаправив выдачу в файл. Этот файл и будет PostScript версией
исходного документа.
Q4: Почему в полученном PostScript не пропечатались русские буквы?
A: В настройках драйвера для PostScript принтера надо выключить
подстановку шрифтов (Font Substitution).
Q5: Что такое PDF?
A: PDF (Portable Document Format) -- это де-факто стандарт для
представления документов в электронном виде.
Q6: Как сконвертировать .doc, .xls, .html, .txt, .bmp файл в PDF в
системе Windows?
A: Надо установить Adobe PDF Writer. После этого в Windows появится
принтер с аналогичным названием. Затем надо распечатать документ
на этом принтере, перенаправив выдачу в файл.
Q7: Как сконвертировать PostScript в PDF и обратно?
A: Надо скачать и установить программы GhostScript и GhostView. Затем
открыть исходный PostScript или PDF файл программой GhostView.
Выбрать в меню пункт "File" -> "Convert ...". Выбрать тип
результирующего файла (pdfwrite для PDF, pswrite для PostScript).
Q8: Как сконвертировать PostScript в PDF?
A: Надо установить Adobe Acrobat Distiller и воспользоваться им.
Q9: Как извлечь текст из PostScript или PDF?
A: Это можно сделать далеко не всегда. Adobe Acrobat Reader позволяет
извлекать текст из PDF, но русские буквы в большинстве случаев
извлекаются неправильно. GhistView позволяет извлекать текст из
PostScript и PDF, но также далеко не всегда правильно обрабатывает
русские буквы.
Q10: Как сконвертировать DVI в PostScript?
A: С помощью утилиты dvips. Она входит в большинство известных мне
дистрибутивов TeX для Windows. Использовать так:
dvipd -o filename.ps filename.dvi
Q11: Как сконвертировать DVI в PDF?
A: Проще всего сначала сконвертировать DVI в PostScript, а потом
переконвертировать его в PDF.
Q12: Что такое Encapsulated PostScript?
A: Encapsulated PostScript (EPS) -- это формат файла. В нём
содержится описание векторного изображения на языке PostScript плюс
некоторая даполниткльная информация в виде спецкомментариев.
Q12: Как переконвертировать .bmp, .jpg, .png, .gif в EPS?
A: Это умеет делать Adobe Photoshop, Adobe Illustrator и многие другие
продвинутые графические редакторы.
Q13: Как переконвертировать диаграмму, нарисованныю с помощью
Microsoft Visio в EPS?
A: В Microsoft Visio есть встроенная возможность експорта в EPS, но
она, мягко говоря, глючит. Вместо этого рекомендуется следующая
последовательность действий:
1. Открыть диаграмму в Microsoft Visio
2. Сконвертировать её в PostScript (см. Q3)
3. Сконвертировать полученный PostScript в PDF (см. Q7)
4. Открыть полученный PDF в GhostScript и выполнить операцию
"File" -> "PS to EPS"
Q14: Где можно достать упомянутые программы?
A: Adobe Acrobat Reader и Adobe PostScript Printer Driver можно
бесплатно скачать с http://www.adobe.com/, Adobe PDF Writer и Adobe
Distiller входят в пакет Adobe Acrobat, который можно найти в
локальной сети или купить. GhostScript и GhostView можно бесплатно
скачать с http://www.cs.wisc.edu/~ghost/doc/AFPL/get704.htm, dvips
входит в пакет MiKTeX, а также в большинство дистрибутивов TeX под
Windows.

petra-lyudmila

Атец, 10x a lot

artimon

Комментарии:
3. В windows есть драйвер PostScript принтера. Называется Linotronic. Если все, что нужно, это получить .ps файл, то можно пользоваться им.
11. В большинстве дистрибутивов TeX'а есть программки pdftex и pdflatex, которые делают .pdf файлы из .tex'овских исходников и умеют еще много разного. А еще если не ставить специальные шрифты, то полученные .pdf файлы в Acrobat'е (и Reader'е тоже) выглядят не очень хорошо.

The_fly

По моему
"Хороший FAQ - короткий FAQ"
Твой не короткий.

fjdfisjdkjf

Adobe Acrobat Reader позволяет сконвертить .pdf в .ps и .eps ( др форматы)

artimon

А не гонишь?
Adobe Acrobat (не Reader) умеет.

VitMix

> Adobe Acrobat Reader позволяет сконвертить .pdf в .ps и .eps ( др форматы)
Он неправильно рассчитывает Bounding Box при конвертации в EPS.

VitMix

11. В большинстве дистрибутивов TeX'а есть программки pdftex и pdflatex, которые делают .pdf файлы из .tex'овских исходников и умеют еще много разного.
Я говорил про конвертацию DVI -> PDF, а не TeX -> PDF
А еще если не ставить специальные шрифты, то полученные .pdf файлы в Acrobat'е (и Reader'е тоже) выглядят не очень хорошо.

Я хотел добавить вопрос про шрифты в Acrobat Reader и cm-super, но решил, что это сложно и не очень нужно.

yuda

Господа модераторы, пришпильте, plz, этот тред.

lordik72

а может всё таки расскажешь как ставить доп шрифты, а то хочется хороший pdf иметь

artimon

1. Ставишь пакет cm-super
... a. Start->Programs->MiKTeX->MiKTeX Options,
... b. вкладка 'Packages', fonts->PostScript Fonts->cm-super, 'Apply'
... c. вкладка 'General', 'Refresh Now', 'OK'
2. В файл {MiKTeX}\texmf\dvips\config\config.ps добавляешь строчки выделенные красным


...
% p +myfonts.map
p +cm-super-t1.map
p +cm-super-t2a.map
...


3. В файл {MiKTeX}\texmf\pdftex\config\pdftex.cfg добавляешь строчки выделенные красным


...
% map +myfonts.map
map +cm-super-t1.map
map +cm-super-t2a.map
...


4. В файл {MiKTeX}\texmf\dvipdfm\config\config добавляешь строчки выделенные красным


...
f psfonts.map
f cm-super-t1.map
f cm-super-t2a.map
...

lordik72

сделал всё по твоему рецепту, но ничего не получается
я так понял, что из TeX->PDF, можно
  • TeX->DVI->PS->PDF
  • TeX->PDF

но 1 способ - это уже работа Ghost-ых прог, и шрифт там просто ужасный, а второй способ просто не работает (делал и pdftex и pdflatex, я плохо разбираюсь в тех-е )
Для pdftex, ошибка
! Undefined control sequence.
l.2 \documentclass
{article}
?
! Emergency stop.
l.2 \documentclass
{article}
Для pdflatex, ошибка
File: t2aenc.def 2001/08/11 v1.0f Cyrillic encoding definition file
! LaTeX Error: Encoding scheme `' unknown.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.39 ...{\LastDeclaredEncoding}{cmr}{m}{n}

?
! Emergency stop.
...

l.39 ...{\LastDeclaredEncoding}{cmr}{m}{n}
мне кажется, что это ошибка никак не связана со шрифтами, тогда с чем она связана ?
спасибо огромное

lordik72

а програмка dbipdft отработала с ошибками
Error: /undefinedfilename in (1.dvi.pdf)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push --nostringval-- --nostringval--
Dictionary stack:
--dict:1008/1123(roG)-- --dict:0/20(G)-- --dict:67/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
но в результате получился правильный pdf, с нормальными шрифтами

artimon

1. Пункт два как раз лечит dvips, что бы он использовал ps-шрифты. ps->pdf лучше делать Acrobat Distiller'ом.
2. Файлы в которых есть \documentclass надо компилировать (pdf)latex'ом.
В заголовке дукумента должы присутствовать такие строчки


\usepackage[***]{inputenc}
\usepackage[russian]{babel}


вместо *** cp1251 - если текст в виндовой кодировке
cp866 - досовская кодировка
koi8-r - кодировка KOI8-R
iso88595 - кодировка iso8859-5

lordik72

по-моему ты ошибся, 3-й пункт лечит
и строчки у меня есть, ругается то он на какую-то неизвестную схему

artimon

Второй пункт лечит dvips, третий pdf(la)tex, а четвертый dvipdfm.
А просто latex работает?

lordik72

да, конечно работает

NNN338

а какой гост ps в pdf конвертит?
у меня 5.5 и там нет такой опции

murshudv

У меня 4.2 и есть
File --> Convert --> pdfwrite

NNN338

вообще опции конверт нету

NNN338

прочитал хелп
оказывается нужно распечатывать в пдф файл
конверта нет
а шрифты просто кал получаются

artimon

2
Не путай человека. У тебя GSView версии 4.2, а какой версии ghostscript можно посмотреть в меню options->easy configure. Скорее всего 7.xx.
2
По поводу шрифтов я писал выше.

VitMix

прочитал хелп
оказывается нужно распечатывать в пдф файл
конверта нет
GSView 4.3:

У кого-то не так?
а шрифты просто кал получаются
Как уже было сказано, Adobe Acrobat Reader не умеет красиво делать AntiAliasing для растровых шрифтов. К сожалению TeX изначально основан на растровых шрифтах (которые генерируются программой METAFONT). К счастью есть пакет cm-super. Он содержит векторные аналоги для некоторых, наиболее распространённых TeXовских шрифтов. В частности там есть векторные версии шрифтов Computer Modern от дяди Кнута и русских шрифтов из серии LH. Установка cm-super требует специальной настройки программы dvips (или той программы, которая занимается конвертацией DVI в PostScript или PDF чтобы она подставляла векторные шрифты вместо растровых. Я делал это только под UNIXом для системы teTeX и не могу точно сказать, как это делается в MiKTeX. Думаю, что к cm-super должно быть подробное описалово.

artimon

1. Если у человека ghostscript 5.5, то gsview тоже древний, и наверное там действительно нет этого пункта.
2. О шрифтах cm-super см.
3. PS->PDF лучше всего умеет делать Acrobat Distiller.

NNN338

ghost -5.5
вьювер -2.7
дизайн очень клевый

Landstreicher

чего все про cm-super пишут. есть еще pscyr - тоже очень хорошие, красивые шрифты в векторном формате. я всегда их юзаю. добавьте инфу про них в FAQ

artimon

1. pscyr нет в поставе MiKTeX.
2. cm-super покрывает почти все возможные cm-шрифты.
3. Отсутствуют проблемы с совместимостью, TeX даже не знает, какие шрифты будут использоваться, стандартные или cm-super.
По моему, эти два пакета имеют разные цели. Цель пакета cm-super, абсолютно прозрачно для пользователя заменить все стандартные точечные шрифты на точно такие же векторные. А pscyr меняет начертание шрифтов, для его использования надо включать пакет pscyr. Фактически cm-super подменяет собой стандартные шкифты на этапе изготовления ps или pdf версии документа, а pscyr на этапе компиляции.
Резюме: я за pscyr, когда необходимо какое-то нестандартное оформление документа, но когда пользователю надо просто получить "красивый" pdf, то нет большого смысла заниматься ручной установкой этого пакета (я не имею в виду польвотелей *nix).
PS. Я сейчас поискал в сетке и обнаружил только tar.gz архивы , а для человека, который два дня назад поставил MiKTeX пользуясь (самореклама не повредит понять какие файлы куда нужно скопировать, непосильная задача.
PPS. Вот на что я потратил свой 666 пост

Landstreicher

Поставил я этот cm-super. Почему-то делает глючные pdf. То есть, компилишь dvi - в dvi все нормально, конвертишь dvips в ps - тоже все нормально, но если сделать dvipdfm - текст наезжает на букву Д. Например, так [image]http://lorien.local/pub/docs/temp/1/1.bmp[/image] в pdf (в это время в ps нормально: [image]http://lorien.local/pub/docs/temp/1/2.bmp[/image]). В чем трабл?
Если делать ps2pdf на ps - получается все нормально.

artimon

Посмотри pdf сделан из dvipdfm'ом.
У меня всё нормально. Стоит MiKTeX 2.2, pdf просматривается Adobe Acrobat'ом 5.0.0
Оставить комментарий
Имя или ник:
Комментарий: