Комплютенская полиглотта


Среди верстальщиков есть спор с долгой историей (почти как между «остроконечниками» и «тупоконечниками»): надо ли автоматически проставлять неразрывные пробелы после всех однобуквенных союзов и предлогов. Мне захотелось вставить свои «пять копеек» и кратко изложить третий вариант, но пришлось копнуть чуть глубже. Получилось про абзац в целом.


Когда издатель готовит к публикации книгу (или сайт), то он хочет, чтобы в ней всё было прекрасно: от начертания каждой буковки до общего дизайна в целом. На данный момент, насколько я понимаю, искусственный интеллект пока что не научился ни внятной разработке шрифтов, ни проектированию глобального дизайна. Однако серединку, а именно вёрстку отдельных абзацев, человечество спокойно отдало на откуп машинам.


Отдать-то отдало, но результат пока что грустный. Веками разрабатывавшиеся правила того, как расположить буковки перед глазами читателя, чтобы ему было удобно воспринимать текст, ныне забыты и проигнорированы. Когда-то печатник тратил несколько часов (или даже дней) на то, чтобы сверстать страницу, которая будет отпечатана небольшим тиражом, а ныне ни программист, ни машина не тратят ни миллисекунды своего времени на то, чтобы применить правила качественной типографики к текстами, которые люди просмотрят десятки тысяч раз.


Особенно печально это видеть на «читалках» — устройствах, как бы претендующих на вытеснение бумажной книги. Переносы не расставляются, отсюда возникают ужасающие дыры посреди текста или драный правый край. QReader на моей древней Nokia 3250 умел вполне сносно расставлять переносы. Эта опция ведь связана отнюдь не со слабенькой вычислительной мощностью читалок, не так ли? Неужели сверстать страничку текста на порядок сложнее, чем отрендерить pdf или jpeg на весь экран? Ну а уж что мешает это делать браузерам на современных компьютерах, я совсем недоумеваю. Кажется, просто лень и небрежность.


О том, что такое «прекрасно свёрстанный абзац», есть информация в разных справочниках, вкратце можно было бы просуммировать следующим списком:


  1. правильный шрифт
  2. межбуквенные расстояния в каждой строке изменяются в разумных пределах
  3. межсловные пробелы в каждой строке в разумных пределах
  4. межсловные пробелы в соседних строках не слишком сильно отличаются
  5. разумный интерлиньяж
  6. гармоничный абзацный отступ или буквица
  7. аккуратный левый край (оптически), без одинаково начинающихся соседних строк (homeoarchy)
  8. аккуратный правый край (оптически), без частокола многих переносов кряду и без одинаково заканчивающихся соседних строк (homoioteleuton)
  9. если набор «флагом» (align=left) или выключкой по центру (align=center), то слово в конце строки не должно «висеть в воздухе», оно должно опираться на буквы следующей строки
  10. хорошая последняя строка: не слишком короткая (меньше 2 длин абзацных отступов) и не выглядящая недотянутой (до правого края остаётся меньше, чем абзацный отступ)
  11. без «коридоров» (rivers of white)
  12. без неблагозвучных переносов или незапланированных ассоциаций

В общем и целом — чтобы абзац представлял собой однородное целое, досатавляя минимум дискомфорта читателю при переходе от буквы к букве, от слова к слову, от строки к строке.


Система правил, описывающих вёрстку абзацев, чем-то похожа на правила дорожного движения: так можно, а так нельзя. Но, в отличие от ПДД, тут нет дополнительного пособия, называемого «Таблица штрафов». Например, если на дороге очень надо обогнать трактор, то может быть выбор между ездой по обочине (1500 р.) и ездой по встречной полосе (5000 р. или лишение прав). Такой системы «штрафов» не знает InDesign. Для него «нельзя» значит «ни за что и никогда», и запретив 4 переноса подряд, я могу получить безумно растянутую строку. Мне кажется, что дырявую строку заметит большинство читателей, а четыре переноса подряд — только профессиональные зануды. Значит, выбор должен быть не такой, как у InDesign'а.


И этот вариант со штрафами расписывает в своей прекрасной книге не менее прекрасный Дональд Кнут: в его работе «Компьютерная типография» есть целая глава, посвящённая вёрстке абзаца (стр. 79-166). Там много математики и немало лирики, но основная идея такова. Текст представляется как последовательность 1) боксов, 2) растяжимого клея и 3) штрафов за разрыв строки в данном месте. Критерием плохости вёрстки абзаца является сумма штрафов за растянутость/ужатость строк, штрафов за переносы и ещё некоторые других дополнительных штрафов (за большую разницу в растянутости соседних строк, за два переноса подряд, и т. п.). Задача вёрстки сводится к тому, чтобы минимизировать общую сумму. И там же Кнут приводит программу-алгоритм решения этой задачи.


Вся эта штука работает достаточно неплохо, есть для ТеХ-а и паттерны переносов, с трекингом и оптическим выравниванием он мило работает благодаря microtype, а свод французских типографских правил «Lexique des re?gles typographiques en usage a? l'Imprimerie Nationale» (весьма близкий к вышеописанному) можно применять, используя impnattypo.


Микротипографика при помощи microtype


Инструментарий — вещь хорошая, осталось научиться им пользоваться, описать, какие огрехи вёрстки мы считаем простительными, а какие — грубыми. Вот теперь мои «пять копеек».


Про правила, касающиеся неразрывных пробелов в текстах, на Хабре есть пара статей, есть и мощный скрипт DoTextOK, но учитывая вышесказанное, я не могу согласиться с авторами, что надо ставить после однобуквенных союзов и предлогов [авикосу] неразрывный пробел. Я хотел бы ввести в типографику новый термин — «слаборазрывный пробел». То есть такой, который можно разорвать, если очень надо.


Правило, которое мне удалось найти на эту тему, гласит:


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

П. Г. Гиленсон. «Справочник технического и художественного редакторов» М.: 1988. П. 11.4.1.1, С. 422

К сожалению, это не очень понятное правило. Неужели в этом блоке все пробелы должны быть неразрывными: «Почему и с 1 000 000 друзей…»? И в каких случаях этому «не следует оставлять» надо отдавать предпочтение над «не следует допускать слишком разреженных строк» и «не следует допускать белых коридоров в тексте»?


Кроме того, мне это правило не вполне понятно эстетически. Иногда оно ведёт к тому, что целый ряд строк начинается с однобуквенных слов. Разве это красиво? Разве это добавляет удобочитаемости? Как-то в студенческие годы, завёрстывая новость в узкую колонку, мы получили 4 строки подряд, начинающиеся с предлога «в». Подредактировав текст, довели это число до 6 — так и ушло в печать. Но это было ж чистой воды хулиганство.


Предлагаю это правило изменить. На следующий код для LaTeX:


\usepackage{newunicodechar}
\newcount\afterconjunctionpenalty
\afterconjunctionpenalty=1000
\newunicodechar{?}{\penalty\afterconjunctionpenalty\ }

Таким образом мы получим в LaTeX два спецсимвола: «~» для обозначения неразрывного пробела и «?» для обозначения слаборазрывного пробела. Величину штрафа можно подобрать по вкусу или даже менять локально.


А дальше несколько регулярных замен по тексту.


regexp

Однобуквенные слова в начале предложения не отрывать ни за что:


([^а-яА-ЯёЁ])([А-Я])\s+
$1$2~

Многобуквенные союзы и предлоги в начале предложения хорошо бы не отрывать:


([^а-яА-ЯёЁ])(Абы|Аж|Ай|Аки|Ако|Али|Аль|Ан|Аще|Без|Безо|Благо|Благодаря|Близ|Близко|Бо|Буде|Будто|Вблизи|Ввиду|Вглубь|Вдогон|Вдоль|Ведь|Взамен|Включая|Вкруг|Вместо|Вне|Внизу|Внутри|Внутрь|Во|Вовнутрь|Возле|Вокруг|Вопреки|Вослед|Впереди|Вплоть|Впредь|Впрочем|Вразрез|Вроде|Вслед|Вследствие|Всё|Где|Да|Дабы|Даже|Для|До|Докуда|Дотоле|Егда|Едва|Еже|Ежели|Если|Же|За|Заместо|Зане|Занеже|Зато|Зачем|Значит|Ибо|Из|Изнутри|Изо|Или|Иль|Именно|Имже|Иначе|Инда|Исключая|Исходя|Итак|Кабы|Как|Каков|Какой|Касательно|Ко|Когда|Когды|Коли|Коль|Который|Кроме|Кругом|Куда|Ли|Либо|Лицом|Лишь|Ль|Меж|Между|Мимо|На|Наверху|Навроде|Навстречу|Над|Надо|Назад|Назади|Накануне|Наместо|Наперекор|Наперерез|Наподобие|Напротив|Наряду|Настолько|Насупротив|Насчёт|Начиная|Не|Невзирая|Недалеко|Нежели|Независимо|Несмотря|Ни|Ниже|Но|Об|Обаче|Обо|Обок|Однако|Около|Окрест|Окромя|Округ|Опосля|Опричь|От|Отколь|Откуда|Откудова|Относительно|Ото|Оттого|Отчего|Перед|Передо|По|Поблизости|Поверх|Под|Подле|Подо|Подобно|Поелику|Позади|Позднее|Пока|Покамест|Покаместь|Покеда|Помимо|Понеже|Поперёд|Поперёк|Порядка|Посверху|Посередине|Посередь|Поскольку|После|Посреди|Посредине|Посредством|Пота|Потому|Почему|Почём|Правда|Пред|Предо|Прежде|При|Применительно|Притом|Причём|Про|Промеж|Просто|Против|Противу|Пускай|Пусть|Равно|Ради|Раз|Разве|Ровно|Рядом|Сверх|Сверху|Свыше|Середи|Сзади|Сиречь|Сколько|Следовательно|Следом|Словно|Смотря|Снизу|Со|Согласно|Спустя|Среди|Средь|Сродни|Столько|Судя|Супротив|Так|Также|Теперь|То|Тож|Тоже|Только|Хоть|Хотя|Чем|Через|Черезо|Чрез|Что|Чтоб|Чтобы|Чуть|Яко|Якобы)([,]*)\s+
$1$2?

Однобуквенные союзы и предлоги внутри текста хорошо бы не отрывать от многобуквенных слов (какие-то прилепляя к следующему слову, какие-то — к предыдущему):


([^а-яА-ЯёЁ][авикосу])\s([а-яА-ЯёЁ]{2}|[0-9]+)
$1?$2

\s+([бж]\s)
?$1

Я так уже некоторое время работаю и мне нравится :-)


Интересно, перекочуют ли эти фишки когда-нибудь в InDesign и веб-типографику?

Комментарии (37)


  1. sim-dev
    02.10.2017 08:41
    -10

    Тяжело быть перфекционистом. А как может быть монетизирована эта ваша «красивая» типографика? Книжки Д.Донцовой, напечатанные на оберточной, бумаге вряд ли станут разбирать быстрее с правильной типографикой, чем с нынешней… В интернете 90% все равно на фоточки смотрят, а текст — он так, вроде фона…
    По-моему, искусство типографики умирает в конвульсиях современного дизайна, и с этим надо смириться. Если уж черная полоска на зеленом фоне называется картиной и стоит миллионы, то ваши пробелы и переносы — такая ничтожная ерунда…


    1. pantlmn Автор
      02.10.2017 09:03
      +7

      Может быть, мне удастся сделать движок для электронной читалки, которая будет хорошо верстать абзацы, сама делать вгонку и выгонку строк, а также хорошо справляться с расстановкой иллюстративного материала? Над решением этой задачи в совокупности уже неплохо поработал Франк Миттельбах


    1. iwans90
      02.10.2017 09:08
      +6

      Монетизация — дело важное, но если человек еще и получает от работы удовольствие, то жить становится гораздо лучше. Кроме того, можно не смотреть на смерть искусства типографики, а на местах сделать что-то для его возрождения.


    1. vbif
      02.10.2017 16:34
      +4

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


      1. alltiptop
        03.10.2017 01:24

        Ещё весело видеть кучу опечаток, отсутствие пробелов в заголовках и невпопад вставленные иллюстрации в современной книге — труде 150-летней давности. То ли на нормальную систему распознавания текста денег не хватило, то ли на редакторов.


  1. k12th
    02.10.2017 10:30
    +5

    Особенно печально это видеть на «читалках» — устройствах, как бы претендующих на вытеснение бумажной книги. Переносы не расставляются, отсюда возникают ужасающие дыры посреди текста или драный правый край. QReader на моей древней Nokia 3250 умел вполне сносно расставлять переносы. Эта опция ведь связана отнюдь не со слабенькой вычислительной мощностью читалок, не так ли?

    Частично это связано с тем, что в английском тексте переносы практически не приняты: из-за меньшей средней длины слов правый край получается ровнее. Ну а в правилах типографики для других языков традиционно мало кто разбирается.


  1. nerudo
    02.10.2017 10:36
    +4

    По поводу переносов. Есть иррациональное ощущение (может меня поправят), что в английском переносы значительно менее распространены за счет меньшей средней длины слова [чем в русском]. Как итог, можно почти безболезненно отказаться от них, что значительно упрощает работу с электронными текстами, практически без потери качества. Ну а из английского ПО это ушло и в другие языки, в частности в русский порождая ужасающие с точки зрения типографики конструкции. Более того, у меня есть подозрение, что 86% пользователей офиса и вовсе не в курсе, что там можно включить автоматические переносы.


    1. pantlmn Автор
      02.10.2017 11:23
      +2

      Англоязычных книжек и журналов без переносов я не встречал.
      Длина слова в английском, действительно, меньше, чем в русском (вот сравнение по языкам), но неужели не нашлось ни одного немца (или монгола), который бы настойчиво убеждал всё человечество в необходимости расставлять переносы в электронных книгах?


      1. nerudo
        02.10.2017 11:27
        +2

        Я же не говорю, что их там нет. Но сравните количество переносов на страницу русского и английского текста — в первую очередь в книгах, а не в журналах с узкими колонками. И влияние отсутствия переноса в английском и в русском. Вот с немцами да, сложно…


    1. WinPooh73
      02.10.2017 11:26
      +1

      В таком случае, немецкая типографика должна быть к переносам очень внимательна — слова в немецком бывают весьма длинные.


    1. pantlmn Автор
      02.10.2017 11:32
      +2

      Бывают и вот такие отзывы от пользователей Kindle:

      Does anyone have a solution to disable or remove the use of hyphenation that appears in newly purchased books on my Kindle Voyage, after the update to 5.6.5?

      I find hyphenation extremely distracting and I cannot seem to get in to the flow when reading.

      I asked Amazon, but they say disabling is not (yet) a feature. Do I have to downgrade? How do I do that? Or are there simpler options?

      То есть человек считает переносы «крайне отвлекающими» и теряет нить повествования. Тут вопрос не в средней длине слова, а в менталитете читателя. Кажется, русских читателей раздражает не наличие переносов, а их засилие (которое происходит очень часто на веб-сайтах, если расставлены «мягкие переносы», например вот тут). На то и штрафы за переносы и дополнительные штрафы за подряд следующие переносы придуманы Дональдом Кнутом.


      1. ClearAirTurbulence
        02.10.2017 12:45

        Не всем нужны эти ваши переносы, да. Первое, что я отключаю в настройках читалки после установки. Нужны они были на письме и для экономии бумаги.


        1. hdfan2
          02.10.2017 13:23

          А я вот очень радовался, когда их наконец сделали в Киндле. Ибо лично мне очень тяжело читать тексты, где правый край как бык поссал, и перелистывать надо чаще, а мне лень. Кстати, так и не понял, как оно на Киндле работает — в MOBI где-то переносит, а где-то нет, а вот в AWZ3 вроде везде переносит.


          1. ClearAirTurbulence
            02.10.2017 13:30

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


            1. pantlmn Автор
              02.10.2017 15:53

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

              Kindle, кстати, не делает в полной мере выравнивание по обоим краям, если внутри возникает слишком большой разрыв между словами — в таком случае он не дотягивает строку до правого края. Вот вам и бык.


          1. Oleh_M
            05.10.2017 20:53

            Все зависит от сверстанного fb2, из которого и переконверчен mobi.


        1. pantlmn Автор
          02.10.2017 16:00
          +3

          Про экономию бумаги — посмотрите на размер полей Библии Гутенберга:
          Библия Гутенберга

          Любой современный даже не очень жадный печатник урезал бы внешние поля вдвое.


          1. johnnymmc
            02.10.2017 17:30

            Я бы добавил внутренние поля вокруг линии переплёта.


            1. pantlmn Автор
              02.10.2017 17:42
              +1

              Да не, на других фотографиях видно, что внутреннее поле вполне удобное.


          1. balexa
            02.10.2017 19:26

            В древности такие поля были необходимы, чтобы защитить текст от порчи сыростью и мышами. Так что это скорее все же костыль, нежели преследование какой-то эстетической цели.


            1. pantlmn Автор
              02.10.2017 20:04

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

              Попросите у Яндекса картинок на эту тему, и увидите, что богато орнаментированные поля вряд ли предназначались на съедение мышам и сырости.


              1. tyomitch
                02.10.2017 20:08
                +1

                Как подтверждает Яндекс, богато орнаментированные поля были у заглавных/разделительных страниц, а не у основного текста.


              1. balexa
                03.10.2017 01:23

                Я помню в детстве библиотеку, не было там затрепаннных книг, которорые надо было подрезать. В средневековье использовали пергамент, кожу фактически. Сомневаюсь, что при том количестве пользователей, он быстро истрепывался, учитывая дороговизну книг. А пергамент был очень дорогой, его экономили, смывали старую краску. И при этом — постоянно тратить половину площади просто ради понтов? Ну может быть конечно, но сомнительно.


                1. tyomitch
                  03.10.2017 12:54
                  +1

                  Сомневаюсь, что при том количестве пользователей, он быстро истрепывался

                  Как раз пользователей в средние века было намного больше, чем книг: как правило, по одной Библии на деревню, прикованной цепью к церковной кафедре.


            1. tyomitch
              02.10.2017 20:05
              +1

              А также как место для замечаний: книга, общая на сообщество, со временем накапливала все знания этого сообщества. Эдакая офлайн-вики.


              1. pantlmn Автор
                02.10.2017 20:19

                В Библии? Это ж не поваренная книга. Вряд ли Гутенберг оставлял большие поля с такой целью.
                Вкладные записи — понятное дело. Были книги, в которых изначально на полях писались комментарии. Но если приведёте, доказывающие, что была традиция вписывать комментарии на поля — буду благодарен.



                1. khim
                  03.10.2017 00:07
                  +1

                  Вы про Талмуд почитайте. Там эта идея доведена до апофигея: центральный, оригинальный, текст окружён со всех сторон комментариями, которые, со временем, тоже стали частью книги…

                  Или вы думаете эти комментарии изначально на отдельном слое писались и отключались по щелчку мышкой?


                  1. pantlmn Автор
                    03.10.2017 10:12
                    +1

                    Про отгрызание комментариев мышками сказано уже выше ;-)

                    Представляю, какое счастье верстать такого рода книжку. Кстати, такие «многослойные» книги (текст + комментарии + сноски к комментариям) были и в христианской, и в исламской традиции. Некоторыми из них можно было воочию насладиться на выставке «Книга глазами дизайнера: Ве­ду­щие ди­зай­не­ры кни­ги пред­став­ля­ют ра­ри­те­ты из со­бра­ния РГБ и свои ра­бо­ты» (там мало фоточек, но есть пространные видеорассказы об изданиях).


          1. alan008
            02.10.2017 20:42
            +2

            Это наверно для заметок и рисунков читателей на полях :-)


  1. ainoneko
    02.10.2017 19:45
    +1

    надо ли автоматически проставлять неразрывные пробелы после всех однобуквенных союзов и предлогов.
    Правая часть из КДПВ намекает, что пробелов в этом месте вообще не надо ставить.


    1. pantlmn Автор
      02.10.2017 20:07

      :-)
      На обоих частях картинки из Комплютенской полиглотты вместо пробелов маленькие латинские буковки, благодаря которым можно пословно сопоставить еврейский и латинский текст.


      1. tyomitch
        02.10.2017 20:12

        ainoneko намекает на правило еврейской/арабской орфографии, по которому однобуквенных слов не существует в принципе: такие союзы и предлоги всегда пишутся слитно со следующим словом.


        1. pantlmn Автор
          02.10.2017 20:26

          Кстати, в славянской печатной типографике тоже некоторое время была тенденция ставить узкий пробел между союзом/предлогом и следующим словом. Сейчас не скажу точные временные рамки, кажется, это XVIII век.


  1. tamtakoe
    03.10.2017 02:16
    -1

    Пусть пока здесь полежит www.artlebedev.ru/typograf


  1. tamtakoe
    03.10.2017 02:21
    -1

    Это посмотрите, когда с типографикой разберетесь glvrd.ru. Надо же будет чем-то еще заняться :-)