суббота, 16 октября 2010 г.

Проба пера

Прошедшим летом я решил подарить моей девушке на д/р её книгу. Говорят, книга — лучший подарок. Ещё лучше, если книга — твоя собственная. Подарок был благополучно изготовлен за время отпуска и Светланке очень понравился. Немного погодя, уже при непосредственном участии автора, книжка выросла в полноценный сборник рассказов и стихов, который мы и выпустили ультраограниченным (на данный момент) тиражом!

Первые копии

Пара слов о технической стороне. В процессе подготовки макета я здорово освежил мои знания LaTeX. В дистрибутиве TeX Live есть три TeX-процессора: pdfTeX, LuaTeX, XeTeX, которые совместимы с латехом, и загадочная штука под названием ConTeXt (пакет TeX-макросов вроде LaTeX, ориентированный на типографику). Опробовав эти варианты, я решил остановиться на XeLaTeX, о чём и не пожалел. Во-первых, исходник набирается в UTF-8, что позволяет напрямую загружать «чистый» ввод с правильными кавычками, тире и многоточиями. Очень удобно, если текст необходимо править на лету и/или повторно использовать после. Во-вторых, XeTeX работает с truetype/opentype-шрифтами. Наконец, так любимая Кибероном висячая пунктуация (ради которой я и связался с латехом) поддерживается и в XeTeX.

Прозу и поэзию с одной стороны проще верстать, чем, скажем, научную литературу. С другой стороны есть и свои приколы. К примеру, неудачные переносы окончаний в конце строк с прямой речью способны сильно испортить общий вид страницы. Работа осложняется ещё больше, если следовать стандартам отечественной типографики (приводка, запрет висячих строк и т. д.), но к счастью нерешаемых проблем тут нет. Верстать в латехе очень просто, однако есть несколько моментов, которые я предпочёл бы знать прежде, чем начинать:
  • TeX Live лучше ставить не из дистрибутивных пакетов, а родным инсталлером. Скачивать придётся много и долго, но установку можно в любой момент прервать и продолжить, когда захочется. Поддерживается установка в режиме portable.
  • Класс memoir — мощный и гибкий стилевой пакет с длинным руководством, которое я очень рекомендую к прочтению.
  • Нужно иметь ввиду, что при высоких \clubpenalty и \widowpenalty в сочетании с \flushbottom, латех будет растягивать межабзацный отступ (\parskip), что устраняет висячие строки, но нарушает совмещение строк на просвет. Установка \parskip в нерастяжимое значение приводит к большому количеству пустых строк внизу страниц и миллиону ошибок в логе. Впрочем, если не лениться, их можно вручную поправить вгонкой и выгонкой строк на предшествующей полосе.
  • Вгонка и выгонка строк в LaTeX (XeLaTeX) легко делается (бажной) командой \addfontfeatures из пакета fontspec. Например: \addfontfeatures{WordSpace={0.95,1,1}}. Сбрасывать WordSpace после проблемного участка текста приходится вручную, группировка фрагмента в фигурные скобки не срабатывает. Вообще, для хранения этих параметров очень пригодился бы внутренний стек.
  • Длинные тире в XeTeX по умолчанию переносятся в начало следующей строки и вообще ведут себя нечестно. Для нормальной их расстановки можно воспользоваться параметром babelshorthands при загрузке polyglossia, но результат не особенно радует — в документе на выходе длинные тире заменяются двумя короткими с небольшим наложением, которые копируются в буфер как «--». Более правильным решением мне кажется определение тире как активного символа или окружение его в исходнике двумя активными символами с присвоенными командами \allowbreak (\nobreak) и \thinspace.
  • Висячие предлоги (а также стоящее в начале предложений «Я» и т. п.) перестают быть висячими, если вставить после них неразрывный пробел (~) при помощи простейшего регулярного выражения.
  • Регулярные выражения — совершенно незаменимый инструмент на любой стадии обработки текста.
Скачать книжку в PDF можно по этой ссылке. Есть и твёрдые копии. Мы печатаем их дома на качественной суперкаландрированной бумаге (твёрдый переплёт 7БЦ). Копии нумеруются и подписываются, выдаются и высылаются. По совету Киберони мы сделали и «мобильную» версию в формате fb2. Не уверен, насколько хорошо она вышла, поскольку с имеющимися под линукс читалками я так и не разобрался. Надеюсь, что всё ок. Приятного чтения, друзья! Любые замечания и предложения приветствуются!

6 комментариев:

  1. отлично прекрасно, а также ништяк

    ОтветитьУдалить
  2. Тема до боли знакомая - верстаю книжку по синфигу в pdf. Только проблема в том,что она в латех генерится из mediawiki. ^_^ Процессор использую pdfTeX, надо бы попробовать Xetex, уж больно меня шрифты смущают...

    ОтветитьУдалить
  3. В будущем я планирую-таки попробовать ConTeXt, поскольку латех, к сожалению, не слишком умён чтобы "забыть о типографике" навсегда, а что касается движка - то XeTeX стопудово вне конкуренции.

    ОтветитьУдалить
  4. @artfwo скачал, начал Серость читать. Интересно.

    XeTex можно его использовать в таком софте как Lyx? http://www.lyx.org/

    ОтветитьУдалить
    Ответы
    1. Судя по тому, что пишут в вики LyX - можно. Сам никогда не пробовал. Мне кажется, LyX здесь только помешает.

      Удалить