Принцип действия переноса и выключки

Процесс переноса и выключки можно рассматривать как диалог внутри компьютера, который происхо­дит, пока вы набираете текст. Диалог начинается, когда нужно принимать решение обофорлллении конца строки (end-of-line decision). До этого момента, в слу­чае простейшего сценария, программа просто счи­тает ширины знаков и складывает их, а сумму вычи­тает из ширины полосы набора. И наступает момент, когда вы набираете слово, которое не умещается в оставшейся части строки. Пришло время решать.

Когда текущая строка набирается с рваным кра­ем (т. е. тексту разрешается не заполнять строку пол­ностью), этот диалог у края строки может быть про­стым и коротким. Для текста, показанного на рис. 10.2, он звучит следующим образом:

— Слово constitutes очень длинное и не умещается в строке полностью. Перенос возможен?

— Нет.

— Возможно ли изменение ширин знаков?

— Нет.

— Возможно ли сжатие межсловных и/шл межбуквен­ных пробелов?

— Да.

— Насколько можно сжимать межсловные про­белы?

— На 10%.

— Насколько можно сжимать межбуквенные про­белы?

— На 3%.

— Оставаясь в этих пределах, может ли слово constitutes уместиться на строке?

— Нет.

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

Процедура верстки в действии

The unity of government which constitutes

Флаговая выключка без переносов

The unity of government which constitutes you one people is also now dear to you.

Выключка по формату с переносами

The unity of government which con­stitutes you one peopl^ is also now dear to you.

РИС. 10.2. Функция переносов и выключки в действии. Здесь сло­во constitutes не умещается в от­веденное место на строке. Какое принимается решение о разры­ве строки, зависит от параметров переносов и выключки

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

— Слово constitutes очень длинное и не умещается в строке. Перенос возможен?

— Да.

— Перенос выполнять по словарю или по алгоритму?

— Разрешается перенос по словарю, перенос по алгоритму нет.

— Можно разбивать слово constitutes?

— Да: con-sti-tutes.

— Сколько слогов плюс дефис поместить в оставшемся пространстве?

— Один слог плюс дефис уместится без сжатия межсловных и/или межбуквенных пробелов.

— Разрешается ли сжатие пробелов?

— Да.

— Насколько можно сжимать межсловные пробелы?

— На 10%.

— Насколько можно сжимать межбуквенные пробелы?

— На 3%.

— Сохраняя эти ограничения, сколько слогов плюс дефис может уместиться на строке?

— Только один слог плюс дефис, даже после изменения межсловных и межбук­венных пробелов.

— Оставить один слог с обычным пробелом и прибавить дефис. Сколько пустого пространства осталось в строке?

— 2,115 пункта.

— Каков порядок распределения оставшегося пространства? Сначала в межслов­ные пробелы? Сначала в межбуквенные пробелы? Распределять равномерно между теми и другими?

— Сначала распределять между словами.

— Насколько можно увеличить межсловные пробелы?

— На 15%.

— Можно ли оставшийся пробел распределить среди слов без превышения уста­новленных пределов?

— Да.

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

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

Updated: 24.11.2011 — 14:53