Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Принцип действия переноса и выключки
Процесс переноса и выключки можно рассматривать как диалог внутри компьютера, который происходит, пока вы набираете текст. Диалог начинается, когда нужно принимать решение об оформлении конца строки (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; просмотров: 30; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.19.251 (0.007 с.) |