Контроль количества символов в последней строке абзаца
Последняя строка абзаца не должна быть слишком короткой или слишком длинной. Верстка, когда в последней строке находися 2-3 символа, выглядит некрасивой. Если мы хотим, чтобы читатель не испытывал дискомфорта при чтении текстов, сверстанных нами, правила типографики надо соблюдать. Для устранения таких ошибок верстальщик обычно использует ручное задание трекинга или присвоение последним символам абзаца атрибута No Break. Рассмотрим некоторые способы автоматизации этого процесса.
Еще в 1995 году Сергей Рыжов написал скрипт EndParagraphWords.js, который производит разгонку текста в абзаце, пока количество символов в последней строке не превысит минимально заданное. Скрипт предназначался для использования в газете объявлений.
Он хранится на сайте adobescripts.info, но в последних версиях Индизайна (CS4, CS5) не работает. Пришлось его немного подлечить и вернуть в строй — обновленную версию вы можете скачать с нашего сайта.
С появлением Grep-стилей в составе абзацного стиля появилась возможность автоматического присвоения атрибута No Break. Для этого сначала создается символьный стиль NoBreak, единственным параметром которого является установка атрибута No Break.
Далее задается Grep-стиль в параметрах абзацного стиля
Здесь .{10} — десять любых символов, включая пробелы, но исключая переводы каретки и концы абзацев;
$ — значок доллара указывает, что эти символы в конце абзаца.
Таким образом, в последней строке у вас будет как минимум 10 символов. Вместо десяти вы можете поставить другое значение, которое вам лучше подойдет. Этот метод описан на сайте http://fvdgeest-dtp.blogspot.com/
Во многих случаях приемлемые результаты получаются если в параметрах стиля установить запрет переноса последнего слова в абзаце (раздел Hiphenation, параметр Hiphenate Last Word). Но в коротких абзацах, имеющих длинное последнее слово, могут появиться дыры между словами или жидкие строки и необходимо ручное вмешательство.
Следует помнить, что после любой автоматизации вы должны внимательно просмотреть всю работу и вручную исправить огрехи.
Скачать обновленный скрипт EndParagraphWords (ZIP)
Скажите, а почему бы не использовать просто настройки переносов, параметр Before Last? В чем здесь «фишка»?
Before Last относится к числу символов в последнем слове строки, а не к последнему слову абзаца. Если ввести Before Last = 10, то получится оччень дырявый текст. Ну проще попробовать, нежели искать слова, чтобы объяснить.
Опция использования grep для управления длиной последнего слова в абзаце позволяет добиться более аккуратного набора.