LXF97:TeX

Материал из Linuxformat.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: ==Переходим на офсет== : '''ЧАСТЬ 3''' В прошлый раз мы рассмотрели особенности печати книги на ризографе. ...)
Строка 110: Строка 110:
В этом случае просмотр осуществляется по действительным размерам страницы, заданным непосредственно в PS-программе
В этом случае просмотр осуществляется по действительным размерам страницы, заданным непосредственно в PS-программе
 +
 +
===...И самостоятельно===
 +
 +
Этот вариант может показаться дешевле, но для получения высокого качества потребует от вас учёта дополнительных факторов, которые мы сейчас и обсудим.
 +
 +
Сначала о принтерах. Годятся только лазерные. Чем выше разрешение принтера, тем лучше. Настоящего профессионального качества в «домашних» условиях, конечно, не добиться, но если вы найдёте лазерный принтер с разрешением 1200 dpi, понимающий '''PostScript''' и с новым (не перезаправленным!) картриджем, да ещё с барабаном в пределах заводского ресурса, то вам крупно повезло – вы сможете получить плёнки почти профессионального качества.
 +
 +
Если принтер не понимает '''PostScript''', то придётся использовать ''GhostScript'' (в Linux), либо переводить оригинал-макет в PDF и печатать из ''Adobe Reader'' (в Windows). Это способно очень сильно увеличить время вывода каждой страницы при высоком разрешении печати. Для ускорения можно попытаться использовать векторные шрифты вместо стандартных, но это далеко не всегда возможно.
 +
 +
Помните также, что желательно настроить ''metafont'' на растеризацию шрифтов именно для вашей модели принтера!
 +
 +
===Векторные шрифты===
 +
 +
Технология, используемая в шрифтах ''TeX'', иногда приводит к неприятностям. Итоговые шрифты остаются растровыми, и при попытке их генерации для больших разрешений ''metafont'' иногда переполняется (не хватает длины его разрядной сетки). То есть, используя технологию ''metafont'', эти шрифты получить в высоком полиграфическом качестве невозможно.
 +
 +
Поэтому сообщество пользователей ''TeX'' постоянно предпринимает усилия в направлении использования в ''TeX'' векторных аналогов применяемых шрифтов. Отрадно, что в последнее время уделили, наконец, внимание и кириллическим шрифтам. На данный момент разработан и постепенно проникает «в массы» пакет шрифтов под названием ''CM-Super''. В стандартные дистрибутивы Linux он, кажется, пока не входит, но его можно взять из сети Интернет (CTAN:fonts/ps-type1/cm-super или ftp://ftp.vsu.ru/pub/tex/font-packs/cmsuper) и попытаться поставить в своей системе.
 +
 +
Инструкция по установке, идущая в комплекте с пакетом, не совсем верная. Но с помощью Ивана Чернявского мне удалось заставить работать этот пакет на своей системе.
 +
 +
Пакет включает полный комплект векторных шрифтов, позволяющий заменить все основные «стандартные» шрифты ''TeX''. Причём шрифты идентичны со своими аналогами по метрике, так что при их замене вёрстка не «уплывает». После его установки для пользователей ''LaTeX'' не меняется (теоретически) вообще ничего (если только в вёрстке не используются «нестандартные» для ''LaTeX'' шрифты). Пользователям же plain TeX придётся привыкать к новым именам шрифтов – так, вместо '''lhr10''' придётся теперь писать '''larm1000'''. А заодно придётся «передвинуть» по кодам некоторые русские знаки, например «номер».
 +
 +
Вообще, пакет оставил приятное впечатление. Получающийся '''PostScript''' просто идеален: хорошо конвертируется в PDF, просматривается ''Acrobat'' и печатается. При этом для нас очень важно, что теперь он вообще не зависит от разрешения принтера! Правда, и жирностью мы теперь управлять не можем: растеризация этих шрифтов – дело самого принтера.
 +
 +
Однако все эти прелести работают, только если в документе не используются нестандартные шрифты. Например, если вы верстаете книгу по шахматным партиям и используете макропакет chess, то шрифты этого макропакета всё равно будут растровыми.
 +
 +
Если же ваши нестандартные шрифты ещё и русские буквы содержат (а вы эти буквы используете), то у вас могут возникнуть проблемы и похуже – дело в том, что внутренние кодировки шрифтов семейства '''lh''' (стандартных для большинства русификаций ''teTeX''), а также других шрифтов на их базе и шрифтов ''CM-Super'' различаются. В результате совмещать эти шрифты в одной вёрстке нельзя.
 +
 +
===Снова о плёнках===
 +
 +
Теперь осталось обсудить собственно процесс вывода.
 +
 +
В зависимости от принятой в типографии технологии, вас попросят изготовить либо прозрачные плёнки, либо полупрозрачные (иногда их называют кальками). Технология печати в обоих случаях немного различается, но сэкономить всё равно не удастся, так как, независимо от формата вашей книги, печатать вы будете в масштабе 1:1 на формате А4. Посему постарайтесь центрировать свои страницы на плёнке. Ширина остающихся белых полей играет очень большую роль. Без полей плёнки невозможно будет закрепить в спуске. А лишние поля в типографии просто обрежут.
 +
 +
* Прозрачные плёнки. Здесь всё просто. Печать выполняется точно так же, как на бумаге. Весь процесс уже описан раньше, и больше рас сказывать нечего.
 +
 +
* Полупрозрачные плёнки. Здесь вывод надо выполнить в зеркальном отражении. Для этого надо добавить в итоговый документ '''PostScript''' программу зеркального разворота.
 +
 +
В состав современных установок ''teTeX'' входит файл '''mirr.hd''', содержащий эту программу. Применяется он так (искать его не надо – если он есть, программа dvips должна найти его сама):
 +
 +
<code>
 +
dvips -hmirr.hd [другие ключи] -o file.ps file.dvi
 +
</code>
 +
 +
Вот и всё!
 +
 +
===Делаем спуск сами===
 +
 +
Повторю ещё раз: вам вряд ли это понадобится. Но технология может пригодиться для других целей ''[например – верстки «книжкой» и печати на обычном лазерном принтере методички, автореферата или даже одного из многочисленных руководств texinfo, – прим. ред.]''.

Версия 05:57, 2 октября 2008

Содержание

Переходим на офсет

ЧАСТЬ 3 В прошлый раз мы рассмотрели особенности печати книги на ризографе. Настало время добиться наивысшего качества. В этом нам поможет офсетная печать и Александр Чернышов.

Вопреки распространённому убеждению, коего я сам до недавнего времени придерживался, что офсет – это дорого и только для избранных, на деле всё оказалось значительно интереснее. Если вам надо качественно напечатать книгу тиражом более 300 экземпляров, то имеет смысл поискать офсетную типографию и попросить, чтобы вам посчитали стоимость тиража вашей книги. Обычно услуга эта бесплатная.

Многие типографии «дерут» высокие цены. Но при желании и везении вполне можно найти недорогую офсетную типографию. Так мне однажды повезло с типографией в Москве: книга в качественном жёстком переплёте, тиражом 500 экземпляров, в которой было почти 800 страниц (без цветных иллюстраций), обошлась меньше чем по 300 рублей за экземпляр, что я считаю очень неплохим показателем. Что же касается качества, то офсет – это как раз тот случай, когда все положительные свойства TeX’а проявляются оптимальным образом. В конце концов, именно для подобных технологий печати тиражей TeX и создавался. Так что – осваиваем офсет.

Формат бумаги

Вы, вероятно, будете удивлены применением в типографиях собственных стандартов размеров бумаги. Вместо «А4» и «А5», вам назовут что-то вроде «60x90/8» и «60x90/16». Кстати, «промежуточный» формат большинства книг по программированию имеет здесь своё стандартное обозначение: «70x100/16» (читается «семьдесят на сто в шестнадцатую долю»).

Дело в том, что офсетная машина печатает сразу целый печатный лист. Это большой лист бумаги, на котором напечатаны все страницы одной книжной тетради. Причём лист, запечатанный только с одной стороны, называется оттиском, а с обеих сторон – собственно печатным листом. Первые две цифры (например, 70x100) описывают размер печатного листа в сантиметрах.

Далее лист фальцуют (складывают) в несколько раз, получая сразу тетрадку книги. Её теперь остаётся только прошить и обрезать. Параметр доли как раз и определяет, сколько страниц текста будет напечатано на одном печатном листе. Так, /16 означает, что на оттиске будет 16 страниц, а на печатном листе (и в одной тетрадке книги) – 32 страницы.

Между прочим, именно в силу этого вы должны обеспечить, чтобы количество страниц в вашей книге было кратным 16 (я не ошибся – по технологическим причинам именно 16). По счастью, в TeX’е можно слегка «поиграть» параметрами междустрочного интервала (\baselineskip, \lineskiplimit, \lineskip) и добиться желаемого. Лишь в редких случаях приходится поступать «по старинке» и выбрасывать «лишний» материал либо дописывать «недостающий».

При подготовке вёрстки в TeX’е важно правильно задать формат гранки. Исходите из того, что после фальцовки на обрезку с каждой стороны уйдёт примерно по 1–1,5 см. Прикиньте, какие вам бы хотелось оставить в книге поля, где у вас будет располагаться колонцифра. Можно просто замерить линейкой гранку в готовой книге подходящего формата. В конце концов вы получите два числа, которые надо задать как \hsize и \vsize.

Спуск

Чтобы после фальцовки все страницы в тетрадке следовали в нужном порядке, их надо правильно расположить на каждом печатном листе. Процесс этого расположения называется спуском. В принципе, в современном Linux есть средства, позволяющие выполнить спуск самостоятельно (мы рассмотрим эту возможность позже), но обычно в этом нет необходимости. В большинстве случаев типография делает спуск сама.

Печать плёнок

А вот теперь переходим к самому интересному. Любой офсет начинается с плёнок. Именно «в плёнках» затем делают спуск и дальнейший процесс от нас уже не зависит. Как только плёнки взяты типографией в работу, можете мыть руки, чтобы не испачкать ими сигнальные экземпляры.

Однако, качество результата в наибольшей степени зависит именно от качества вывода плёнок. А здесь от нас зависит очень многое.

В зависимости от типографии вам могут предложить:

  • принести свои плёнки (и вам придётся печатать их самостоятельно);
  • изготовить плёнки по вашему файлу на оборудовании типографии.

Рассмотрим каждый из этих вариантов.

...В типографии

«...и тут пошли огрехи всей системы...»
Из монолога Жванецкого

Вообще, этот вариант на мой взгляд предпочтительнее. Типография, предлагая его, обычно «имеет за душой» довольно мощное печатающее устройство (2400, или даже 4800 dpi). В результате итоговое качество будет соответствовать непревзойдённому металлическому набору. И к этому надо стремиться. Тем более что в арсенале нашего TeX’а имеется возможность делать шрифты разрешением аж до 9600 dpi! Только узнайте о возможностях устройства заранее и постарайтесь подготовить свой электронный оригинал-макет с соответствующим разрешением. Например:

dvips -D 2400 ..... -o file.ps file.dvi

При работе программы dvips обращайте внимание на все предупреждения о генерации шрифтов! Иногда встречаются шрифты со скрытыми ошибками, а также для некоторых букв в некоторых шрифтах случаются банальные переполнения программы metafont. Это приводит к потере букв и даже целых участков текста, набранных забракованным шрифтом, или к непредсказуемым заменам. Бороться с этим можно только понижением разрешения или переходом на векторные шрифты (скажем, CM-Super – мы обсудим их чуть позже).

Ключ -O не нужен – окончательное расположение материала в спуске всё равно делается вручную. Главное, чтобы печатаемый материал в принципе попадал в зону печати. И ключ -x тоже не нужен. Для офсетной печати вывод всегда делается в масштабе 1:1.

Казалось бы, после получения file.ps все проблемы должны быть сняты. Но оказывается, что это не всегда так – подробности читайте далее.

Своенравный ps2pdf

Мне надо было напечатать на офсете книгу, вёрстка которой была рассчитана на формат 70x100/16 (размер страницы не кратен А4). nипография бралась сама изготовить плёнки по моему file.ps. Но вдруг обнаружилось, что их специализированная программа управления принтером плёнок упорно считает, что каждая страница моей книги расположена на листе А4. Это приводило к значительному перерасходу дорогостоящей плёнки.

Переплачивать за плёнку не хотелось, и я решил поискать решение. Первое, что пришло на ум – ключ -T команды dvips, задающий (вроде бы) размер листа. Но этот способ проблемы не решил. Второе решение – «правильно» установить параметр BoundingBox – оказалось вообще несостоятельным. Дело в том, что этот «параметр» на самом деле записывается в комментариях файла PostScript и используется только программами типа TeX, которые сами PostScript не интерпретируют. Профессиональные же программы, интерпретирующие PostScript, комментарии игнорируют.

Проблема оказалась в том, что размер листа вообще не попадал в мою вёрстку, и по умолчанию интерпретатор PostScript принимал его равным А4. Решение проблемы следующее:

  • Размер листа надо задавать внутри верстаемого документа (в его начале) командой

\special{papersize=WIDTH,HEIGHT}

где вместо WIDTH и HEIGHT подставить необходимые значения.

В моём случае команда выглядела так

\ special{papersize=164mm,235mm}

После этого получить DVI-файл обычным способом.

  • Найти в системе файл конфигурации драйвера dvips config.ps. Найти в нём определение формата печати

@ unknown 0in 0in

Если это определение есть, то вам повезло. Если же его там нет, создайте в домашнем подкаталоге файл .dvipsrc со следующим содержимым:

@ unknown 0in 0in @+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin { @+ setpageparams } stopped end } { true } ifelse { statusdict / setpage known @+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if

  • Теперь можно переводить вёрстку в PostScript:

dvips -D 2400 -t unknown -O 0.5cm,0cm -o file.ps file.dvi Параметр -O в данном случае нужен именно для того, чтобы попасть в зону печати.

Попутно выяснилось, что проверить правильность выполненной работы довольно легко, «не выходя» из Linux. Достаточно скомандовать:

ps2pdf file.ps file.pdf

и далее

gv file.pdf

В этом случае просмотр осуществляется по действительным размерам страницы, заданным непосредственно в PS-программе

...И самостоятельно

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

Сначала о принтерах. Годятся только лазерные. Чем выше разрешение принтера, тем лучше. Настоящего профессионального качества в «домашних» условиях, конечно, не добиться, но если вы найдёте лазерный принтер с разрешением 1200 dpi, понимающий PostScript и с новым (не перезаправленным!) картриджем, да ещё с барабаном в пределах заводского ресурса, то вам крупно повезло – вы сможете получить плёнки почти профессионального качества.

Если принтер не понимает PostScript, то придётся использовать GhostScript (в Linux), либо переводить оригинал-макет в PDF и печатать из Adobe Reader (в Windows). Это способно очень сильно увеличить время вывода каждой страницы при высоком разрешении печати. Для ускорения можно попытаться использовать векторные шрифты вместо стандартных, но это далеко не всегда возможно.

Помните также, что желательно настроить metafont на растеризацию шрифтов именно для вашей модели принтера!

Векторные шрифты

Технология, используемая в шрифтах TeX, иногда приводит к неприятностям. Итоговые шрифты остаются растровыми, и при попытке их генерации для больших разрешений metafont иногда переполняется (не хватает длины его разрядной сетки). То есть, используя технологию metafont, эти шрифты получить в высоком полиграфическом качестве невозможно.

Поэтому сообщество пользователей TeX постоянно предпринимает усилия в направлении использования в TeX векторных аналогов применяемых шрифтов. Отрадно, что в последнее время уделили, наконец, внимание и кириллическим шрифтам. На данный момент разработан и постепенно проникает «в массы» пакет шрифтов под названием CM-Super. В стандартные дистрибутивы Linux он, кажется, пока не входит, но его можно взять из сети Интернет (CTAN:fonts/ps-type1/cm-super или ftp://ftp.vsu.ru/pub/tex/font-packs/cmsuper) и попытаться поставить в своей системе.

Инструкция по установке, идущая в комплекте с пакетом, не совсем верная. Но с помощью Ивана Чернявского мне удалось заставить работать этот пакет на своей системе.

Пакет включает полный комплект векторных шрифтов, позволяющий заменить все основные «стандартные» шрифты TeX. Причём шрифты идентичны со своими аналогами по метрике, так что при их замене вёрстка не «уплывает». После его установки для пользователей LaTeX не меняется (теоретически) вообще ничего (если только в вёрстке не используются «нестандартные» для LaTeX шрифты). Пользователям же plain TeX придётся привыкать к новым именам шрифтов – так, вместо lhr10 придётся теперь писать larm1000. А заодно придётся «передвинуть» по кодам некоторые русские знаки, например «номер».

Вообще, пакет оставил приятное впечатление. Получающийся PostScript просто идеален: хорошо конвертируется в PDF, просматривается Acrobat и печатается. При этом для нас очень важно, что теперь он вообще не зависит от разрешения принтера! Правда, и жирностью мы теперь управлять не можем: растеризация этих шрифтов – дело самого принтера.

Однако все эти прелести работают, только если в документе не используются нестандартные шрифты. Например, если вы верстаете книгу по шахматным партиям и используете макропакет chess, то шрифты этого макропакета всё равно будут растровыми.

Если же ваши нестандартные шрифты ещё и русские буквы содержат (а вы эти буквы используете), то у вас могут возникнуть проблемы и похуже – дело в том, что внутренние кодировки шрифтов семейства lh (стандартных для большинства русификаций teTeX), а также других шрифтов на их базе и шрифтов CM-Super различаются. В результате совмещать эти шрифты в одной вёрстке нельзя.

Снова о плёнках

Теперь осталось обсудить собственно процесс вывода.

В зависимости от принятой в типографии технологии, вас попросят изготовить либо прозрачные плёнки, либо полупрозрачные (иногда их называют кальками). Технология печати в обоих случаях немного различается, но сэкономить всё равно не удастся, так как, независимо от формата вашей книги, печатать вы будете в масштабе 1:1 на формате А4. Посему постарайтесь центрировать свои страницы на плёнке. Ширина остающихся белых полей играет очень большую роль. Без полей плёнки невозможно будет закрепить в спуске. А лишние поля в типографии просто обрежут.

  • Прозрачные плёнки. Здесь всё просто. Печать выполняется точно так же, как на бумаге. Весь процесс уже описан раньше, и больше рас сказывать нечего.
  • Полупрозрачные плёнки. Здесь вывод надо выполнить в зеркальном отражении. Для этого надо добавить в итоговый документ PostScript программу зеркального разворота.

В состав современных установок teTeX входит файл mirr.hd, содержащий эту программу. Применяется он так (искать его не надо – если он есть, программа dvips должна найти его сама):

dvips -hmirr.hd [другие ключи] -o file.ps file.dvi

Вот и всё!

Делаем спуск сами

Повторю ещё раз: вам вряд ли это понадобится. Но технология может пригодиться для других целей [например – верстки «книжкой» и печати на обычном лазерном принтере методички, автореферата или даже одного из многочисленных руководств texinfo, – прим. ред.].

  • Купить электронную версию
  • Подписаться на бумажную версию