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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

- Нет.

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

- Нет.

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

- Да.

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

- На 10%.

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

- На 3%.

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

- Нет.

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

строку.

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

 

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

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

- Да.

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

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

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

- Да: con-sti-tutes.

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

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

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

- Да.

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

- На 10%.

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

- На 3%.

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

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

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

- 2,115 пункта.

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

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

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

- На 15%.

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

- Да.

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

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

Познаковые расчеты

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

Например, значение трекинга (tracking) будет влиять на пробелы между всеми знаками строки. Для каждого вводимого знака функция переносов и выключки использует значение трекинга для перерасчета ширин знаков, которые программа извлечет из шрифтового файла. Это, в свою очередь, определяет общий объем пространства, которое знаки занимают в строке (рис. 6.3). Трекинг не влияет на форму символов, а только на объем пространства, которое они занимают.

РИС. 6.3. Если представить знаки в их кегельных площадках, становится понятно, как трекинг влияет на верстку. Положительный трекинг добавляет пробелы между кегельными площадками, которые при обычном наборе просто примыкают друг к другу. Дополнительные пробелы измеряются в долях кегельной (em). Отрицательный трекинг заставляет кегельные площадки накладываться друг на друга, и знаки располагаются ближе друг к другу

 

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



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 29; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.158.148 (0.006 с.)