Шрифты. Разработка и использование
может содержать значения, кратные 32 битам при 32-битной реализации
TrueType-машины (Windows NT) и 16 битам при 16-битной реализации
(Windows 3.1).
Данные и команды чередуются в потоке команд. Специальные коман¬
ды (и только они!) могут выбирать значения из потока и переносить их на
стек. Все остальные команды работают только со значениями, находящи¬
мися на стеке.
Команды языка разделяются на следующие группы:
• переносящие значения на стек;
• управляющие областью данных;
• управляющие таблицей значений;
• изменяющие текущее графическое состояние;
• управляющие контурами;
• общего назначения.
Большая часть команд используется для измерения параметров конту¬
ров и для перемещения точек, определяющих контуры. Отдельные коман¬
ды применяются для управления последовательностью интерпретации про¬
граммы (например, команды условных и безусловных переходов) и для
управления областями данных.
Основная область, в которой хранятся все постоянные и промежуточ¬
ные параметры, необходимые для разметки символов, — эго таблица зна¬
чений, сокращенно СѴТ. Для доступа к полям СѴТ существуют специаль¬
ные команды, при помощи которых можно читать значения или изменять
их. С СѴТ связана особая программа, которая запускается всякий раз при
изменении основных параметров шрифта: кегля набора или какого-либо
из чисел матрицы трансформации, например угла наклона. Обычно эта
программа используется для модификации значений в СѴТ.
Другая глобальная программа, называемая шрифтовой, запускается
только один раз в момент загрузки шрифта и выполняет инициализацию
значений в СѴТ.
Для хранения промежуточных значений применяется другая таблица,
которая называется областью данных (storage area). С ее помощью можно
создавать переменные и небольшие массивы данных.
Последняя глобальная область — это область графического состояния
(graphic state). Она содержит переменные, фиксирующие текущее состо¬
яние интерпретатора языка, например, способ округления значений или
направление вектора измерения расстояний. Все переменные имеют зна¬
чения по умолчанию. Для изменения этих значений обычно используется
шрифтовая программа или СѴТ-программа.
Обозначение точек
Программа разметки, написанная на языке TrueType, связывается с кон¬
турами символов, которые описываются отдельно, при помощи указания
- 164 -
Глава 6. Форматы цифровых шрифтов
номеров точек. Нумеруются все точки, определяющие контур (on-line и
off-line), как это показано на рис. 6.21:
Рис. 6.21. Нумерация точек,
определяющих контур в TrueType
шрифтах
Команды языка могут использовать любые точки, реально описываю¬
щие контур, и набор точек, используемых только в качестве промежуточ¬
ных. Для разделения этих точек символ представляется состоящим из двух
слоев: слой 1 (Z1), содержащий реальные точки, и слой О (Z0), состоящий
из промежуточных точек. Оба слоя могут применяться во всех операциях
языка.
Кроме этого, интерпретатор добавляет к описанию контура символа две
дополнительные точки, определяющие поля символа (см. рис. 6.22):
Рис. 6.22. Дополнительные точки,
определяющие поля символа в
TrueType-шрифтах
Дополнительные точки
Эти точки могут использоваться наравне с другими в программе раз¬
метки и позволяют точно определять поля символа в растровых единицах.
- 165 -