August 30, 2022

вгонка за временем

Наверное, девяносто процентов рабочего времени верстальщик вгоняет и выгоняет строки, регулируя набор. Эту скучную, увлекательную, рутинную, многообразную, утомительную и веселую деятельность я решил немного систематизировать.

Итак, идеальный способ строковой вгонки и выгонки («втяжки и вытяжки», но это не верная, хоть и довольно распространённая терминология) существует только один — редактирование. Давным-давно, в газете, это осуществлялось запросто: меня звал верстальщик и просто указывал на пару проблемных абзацев в моей полосной статье, или, подученный литредом, не звал, если сам видел, что можно объединить или разъединить абзацы, избавиться от вводного слова, убрать местоимение и т.п. В художественных книгах такие фокусы по понятным причинам не проходят — тексты, даже переводные, обычно уникальны и неоперабельны. То есть нам приходится прибегать к другим способам, которые так или иначе соревнуются между собой за право называться родиной Гомера визуальную приемлемость.

Эмпирическое правило, часто упоминаемое на профильных форумах, гласит:

вогнать или разогнать абзац относительно безболезненно можно на количество букв равное количеству строк в абзаце плюс один.

То есть в однострочном абзаце (с огромной вероятностью это будет реплика) — можно перенести все последнее недлинное слово либо вогнать перенесенные последние две буквы. (Если установка опции переносов разрешает их переносить.) В двухстрочном абзаце — две-три буквы, в трехстрочном — три-четыре и так далее. Правильно это, конечно, не строгое, а скорее умозрительное, но с него очень хорошо начинать разрабатывать «техническое зрение».

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

1. Вариации пробелов. Cmd + Opt + \ и Cmd+Opt+Backspace. Несмотря на то, что, по моим наблюдениям, большинство верстальщиков сегодня пользуются способом №2 — общим трекингом абзаца — именно трекинг пробелов по-настоящему олдскулен и наименее травматичнен для текста. Дело в том, что даже со значительными пустотами между словами глаз справляется легче, чем с разрядкой, достаточно вспомнить советский худлит 1930–1960-х гг. Однако минусы у этого метода тоже есть — он обнуляет кернинг выбранного абзаца, и на некоторых гарнитурах (свежие рабочие примеры — Baltica и Brokgauz&Efron) это становится довольно заметно.

2. Общий трекинг абзаца. Opt + стрелки вправо-влево. Способ действительно эффективный и простой — увеличение/уменьшение общего трекинга на значение, установленное в главных настройках. Наиболее удобный шаг — 2…4/1000 круглой шпации (Cmd+K > Единицы измерения > Кернинг/Трекинг). Плюсы — уже упомянутая простота и универсальность. Минусы — значения более ±20/1000 (а в некоторых случаях и 10) заметно меняют «серебро набора». Кроме того, с оптическим кернингом способ работает хуже, чем с метрическим, и если в тексте встречаются цифры, на которые не настроено жесткое автоправило GREP, выгонка строки их растащит заметнее всего.

3. Изменение параметров юстировки. Сложный, но гармоничный ручной способ, который мог бы претендовать на звание лучшего при автоматизации. Допустим, на вкладке стилей абзаца заданы параметры: «85/100/125» для пробелов, «–5/0/5» для межбуквенных пустот и «99/100/101» для масштаба символов. В проблемном случае меняем их, в порядке приоритета: сначала увеличиваем или уменьшаем среднее (при необходимости изменяем и крайние) значение межсловных, далее глядим на подсветку или в высоком качестве отображения просто глазом, что получилось, и доводим остальными настройками. Фактически, в первой своей части, это то же самое, что сп. 1, вариации пробелов, только с более гибкой последующей настройкой и без обнуления кернинга. К сожалению, публичных автоматических решений у этого способа всего два: довольно хорошо продуманный плагин TypeFitter стоимостью 36$ в год, и бесплатный скрипт TypeFitting. Второй может облегчить жизнь нетребовательному верстальщику, но от идеала он сильно далек.

4. Применение выключки по формату для всех строк при нулевом значении отступа последней строки; здесь же — переключение компоновщика с построчного на строковой или наоборот. Эти простые способы более всего подходят для случаев, когда нужно вогнать всего две-пять букв. На абзацах в семь и более строк оба работают прекрасно и оба же чуть хуже взаимодействует с оптическим кернингом. Для однострочных абзацев и реплик с коротенькими хвостиками, когда жаль заряжать строку запретом переноса последнего слова, тоже подходит, но в случае реплики может сильно сломать вертикаль отступа после тире, если кто-то до сих пор оставляет там неразрывный, а то и простой пробел вместо шпации.

5. Кернинг отдельных букв и трекинг одной строки. Первая часть способа вообще вполне легальна, особенно когда проблема — вгонка хвоста длиной два-три символа, а в строке, например есть заглавные Г или У, под козырёк и наклон которых можно немного загнать последующую букву, или много сочетаний типа -оу-, -хо-, -ка-, -же- и тому подобных «пап-мам». Трекинг одной строки с построчным компоновщиком более-менее дружит, с абзацным — как повезет.

6. Изменение параметров переносов, включая количество переносов подряд, знаков до и после переноса, ручную подстановку дискреционных переносов (Ctrl+Shift+дефис), когда нет нормального словаря, запрет переноса отдельных слов (Ctrl+Shift+дефис перед словом или неделимой частью сложного слова) и принудительные (дефис+обрыв строки) переносы. За исключением принудительных переносов со вставленными дефисами (да, и так приходится делать в исключительных случаях, но не дай бог вносить правки после подобных игрищ), все приемы этого метода допустимы и хорошо сочетаются как с компоновщиками, так и с установленным кернингом. Минусы — несоответствие рекомендациям справочников. Впрочем, в «Благоволительницах» Джонатана Литтелла абзацы часто занимают от двух до пяти полос (!), а рассказ Пелевина «Водонапорная башня» вообще состоит из одного предложения-абзаца длиной 18 тыс. знаков. Такому никакие справочники не учили, поэтому в неординарных случаях можно смело ставить запрет более двух переносов подряд или, наоборот, позволять пять и более переносов, и разницы между абзацным и строковым компоновщиками попросту не будет. В более распространённых случаях остается уронить слезу на Гиленсона, прикрыться Чихольдом, протереть Добкиным вспотевшего от волнения Брингхерста и смириться с тем, что красота случайного уникального абзаца важнее буквального следования рекомендациям.

7. Регулирование отступа последней строки. Этот способ бывает очень удобен для выгонки плотных однострочных абзацев с коротким последним словом, которое безболезненно уйдет на следующую строку, или достаточно длинным, чтобы перенеслось четыре и более символа. Для прочих абзацев тоже подходит, если последняя срока близко подбирается к краю. N. B. В этом способе есть такой экзотический дополнительный прием, как добавление нескольких невидимых символов или даже целого слова в конце строки с одновременным увеличением ее отступа.

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

8. Изменение ширины символов в пределах ±2 и более процентов. Может показаться, что ничего противозаконного в этом способе нет, ведь юстировка тоже предполагает изменение параметров глифа, но... В юстировке изменение глифа — последнее убежище, да и меняются не все глифы оптом, а некоторые, в зависимости от настроек того самого компоновщика и собственно шрифта, и редко когда более чем на один процент. Оптический кернинг мешает этому способу на большинстве популярных гарнитур.

9. Изменение ширины фрейма. Да-да. И такое бывает. Критиковать этот способ буду не сильно, поскольку на макете без жестких визуальных ограничителей вроде фризов, полосок, рамок и прочего он может выручить оптом в случае продолжительных однострочных диалогов. Если пользоваться разумно и не злоупотреблять, то почему бы и нет.

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