Шрифты. Разработка и использование

Программируемый метод разметки

Программируемый метод основан на точном определении в шрифте
всех действий, которые должен выполнять растеризатор. На долю расте-
ризатора при этом остаются только интерпретация команд разметки и как
можно более быстрое их выполнение. Растеризатор оказывается более
простым, компактным и быстрым, но это происходит за счет резкого ус¬
ложнения шрифтов и увеличения их в объеме. Программа разметки мо¬
жет быть очень сложной, имеющей циклы, условные переходы, описания
переменных и массивов (см. рис. 6.7). Языки программирования разметки
обычно имеют много команд модификации контуров символов, причем
среди них есть как команды, работающие на этапе масштабирования кон¬
тура, так и на этапе его заполнения.

В программируемом методе разметки используются не ассоциативные
декларации, а точное указание взаимодействия между точками:

Переменные

А= 10

В = 70

С = 30

Рис. 6.7. Элементы разметки при программируемом методе

Потенциально программируемая разметка может обеспечить намного луч¬
шее качество, чем декларативная, но создание высококачественных шриф¬
тов, использующих программы разметки, оказывается настолько трудоемким,
что таких шрифтов появляется довольно мало. Обычно производители таких
шрифтов (а это все TrueType-шрифты) применяют специальные системы,
автоматически формирующие программы разметки символов и шрифта.

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

Общая структура шрифта в формате Туре

Любой Туре 1 -шрифт состоит из двух основных частей: открытой и зак¬
рытой (зашифрованной):

- 144 -

Глава 6. Форматы цифровых шрифтов

—

• Обозначение шрифта

• Область глобальной разметки

• Заголовок шрифта

• Область глобальных подпрограмм

• Кодовая таблица шрифта

• Область подпрограмм разметки и контурных

• Уникальный идентификатор шрифта

подпрограмм

• Область описаний символов

Открытая часть. В открытой части Туре 1-шрифта содержится ин¬
формация, доступная для любого текстового редактора. Эта часть может
быть изменена при условии, что закрытая часть останется нетронутой. В
открытой части можно выделить 4 области.

• Обозначение шрифта показывает, что файл является именно шриф¬
том:

%!PS-AdobeFont-1.0: TimeRoman 001.1
%%CreationDate: Wed Oct 20 17:08:26 1993
%%Creator: FontLab(c) for Windows v2.5

• Заголовок шрифта, в котором хранится следующая информация:

FontName

FullName

FamilyName

Version

Notice

Weight

ItalicAngle

IsFixedPitch

UnderlinePosition
U nderlineThikness
PaintType

FontType

FontMatrix

FontBBox

Регистрационное имя рифта
Полное имя шрифта

Имя гарнитуры, в которую входит шрифт
Наименование версии рифта
Информация о создателях шрифта и об авторс¬
ких правах на шрифт
Информация о насыщенности шрифта
Угол наклона символов шрифта в градусах про¬
тив часовой стрелки

Информация о том, является ли шрифт моноши¬
ринным

Положение линии подчеркивания
Толщина линии подчеркивания
Вид шрифта: 0 — сплошной (заполняемый);
1 — контурный. Все Туре 1-шрифты являют¬
ся сплошными.

Тип шрифта: 0 — Туре 0 шрифт (составной);
1 — Туре 1 шрифт; 3 — Туре 3 шрифт.
Стандартная матрица транстформирования
символов. Ее более подробное описание приве¬
дено в разделе «Описание символов».
Минимальный прямоугольник, охватывающий
все символы шрифта.

- 145 -