Среди верстальщиков есть спор с долгой историей (почти как между «остроконечниками» и «тупоконечниками»): надо ли автоматически проставлять неразрывные пробелы после всех однобуквенных союзов и предлогов. Мне захотелось вставить свои «пять копеек» и кратко изложить третий вариант, но пришлось копнуть чуть глубже. Получилось про абзац в целом. Когда издатель готовит к публикации книгу (или сайт), то он хочет, чтобы в ней всё было прекрасно: от начертания каждой буковки до общего дизайна в целом. На данный момент, насколько я понимаю, искусственный интеллект пока что не научился ни внятной разработке шрифтов, ни проектированию глобального дизайна. Однако серединку, а именно вёрстку отдельных абзацев, человечество спокойно отдало на откуп машинам. Отдать-то отдало, но результат пока что грустный. Веками разрабатывавшиеся правила того, как расположить буковки перед глазами читателя, чтобы ему было удобно воспринимать текст, ныне забыты и проигнорированы. Когда-то печатник тратил несколько часов (или даже дней) на то, чтобы сверстать страницу, которая будет отпечатана небольшим тиражом, а ныне ни программист, ни машина не тратят ни миллисекунды своего времени на то, чтобы применить правила качественной типографики к текстами, которые люди просмотрят десятки тысяч раз. Особенно печально это видеть на «читалках» — устройствах, как бы претендующих на вытеснение бумажной книги. Переносы не расставляются, отсюда возникают ужасающие дыры посреди текста или драный правый край. QReader на моей древней Nokia 3250 умел вполне сносно расставлять переносы. Эта опция ведь связана отнюдь не со слабенькой вычислительной мощностью читалок, не так ли? Неужели сверстать страничку текста на порядок сложнее, чем отрендерить pdf или jpeg на весь экран? Ну а уж что мешает это делать браузерам на современных компьютерах, я совсем недоумеваю. Кажется, просто лень и небрежность. О том, что такое «прекрасно свёрстанный абзац», есть информация в разных справочниках, вкратце можно было бы просуммировать следующим списком: В общем и целом — чтобы абзац представлял собой однородное целое, досатавляя минимум дискомфорта читателю при переходе от буквы к букве, от слова к слову, от строки к строке. Система правил, описывающих вёрстку абзацев, чем-то похожа на правила дорожного движения: так можно, а так нельзя. Но, в отличие от ПДД, тут нет дополнительного пособия, называемого «Таблица штрафов». Например, если на дороге очень надо обогнать трактор, то может быть выбор между ездой по обочине (1500 р.) и ездой по встречной полосе (5000 р. или лишение прав). Такой системы «штрафов» не знает InDesign. Для него «нельзя» значит «ни за что и никогда», и запретив 4 переноса подряд, я могу получить безумно растянутую строку. Мне кажется, что дырявую строку заметит большинство читателей, а четыре переноса подряд — только профессиональные зануды. Значит, выбор должен быть не такой, как у InDesign'а. И этот вариант со штрафами расписывает в своей прекрасной книге не менее прекрасный Дональд Кнут: в его работе «Компьютерная типография» есть целая глава, посвящённая вёрстке абзаца (стр. 79-166). Там много математики и немало лирики, но основная идея такова. Текст представляется как последовательность 1) боксов, 2) растяжимого клея и 3) штрафов за разрыв строки в данном месте. Критерием плохости вёрстки абзаца является сумма штрафов за растянутость/ужатость строк, штрафов за переносы и ещё некоторые других дополнительных штрафов (за большую разницу в растянутости соседних строк, за два переноса подряд, и т. п.). Задача вёрстки сводится к тому, чтобы минимизировать общую сумму. И там же Кнут приводит программу-алгоритм решения этой задачи. Вся эта штука работает достаточно неплохо, есть для ТеХ-а и паттерны переносов, с трекингом и оптическим выравниванием он мило работает благодаря microtype, а свод французских типографских правил «Lexique des règles typographiques en usage à l'Imprimerie Nationale» (весьма близкий к вышеописанному) можно применять, используя impnattypo.  Инструментарий — вещь хорошая, осталось научиться им пользоваться, описать, какие огрехи вёрстки мы считаем простительными, а какие — грубыми. Вот теперь мои «пять копеек». Про правила, касающиеся неразрывных пробелов в текстах, на Хабре есть пара статей, есть и мощный скрипт DoTextOK, но учитывая вышесказанное, я не могу согласиться с авторами, что надо ставить после однобуквенных союзов и предлогов  неразрывный пробел. Я хотел бы ввести в типографику новый термин — «слаборазрывный пробел». То есть такой, который можно разорвать, если очень надо. Правило, которое мне удалось найти на эту тему, гласит: К сожалению, это не очень понятное правило. Неужели в этом блоке все пробелы должны быть неразрывными: «Почему и с 1 000 000 друзей…»? И в каких случаях этому «не следует оставлять» надо отдавать предпочтение над «не следует допускать слишком разреженных строк» и «не следует допускать белых коридоров в тексте»? Кроме того, мне это правило не вполне понятно эстетически. Иногда оно ведёт к тому, что целый ряд строк начинается с однобуквенных слов. Разве это красиво? Разве это добавляет удобочитаемости? Как-то в студенческие годы, завёрстывая новость в узкую колонку, мы получили 4 строки подряд, начинающиеся с предлога «в». Подредактировав текст, довели это число до 6 — так и ушло в печать. Но это было ж чистой воды хулиганство. Предлагаю это правило изменить. На следующий код для LaTeX: Таким образом мы получим в LaTeX два спецсимвола: «~» для обозначения неразрывного пробела и «⋅» для обозначения слаборазрывного пробела. Величину штрафа можно подобрать по вкусу или даже менять локально. А дальше несколько регулярных замен по тексту. Однобуквенные слова в начале предложения не отрывать ни за что: Многобуквенные союзы и предлоги в начале предложения хорошо бы не отрывать: Однобуквенные союзы и предлоги внутри текста хорошо бы не отрывать от многобуквенных слов (какие-то прилепляя к следующему слову, какие-то — к предыдущему): Я так уже некоторое время работаю и мне нравится :-) Интересно, перекочуют ли эти фишки когда-нибудь в InDesign и веб-типографику? книгоиздание