- 175 -
жуточные параметры, необходимые для разметки символов – это
таблица значений, сокращенно CVT. Для доступа к полям CVT суще-
ствуют специальные команды, при помощи которых можно читать зна-
чения или изменять их. С CVT связана особая программа, которая за-
пускается всякий раз при изменении основных параметров шрифта:
кегля набора или какого-либо из чисел матрицы трансформации, на-
пример угла наклона. Обычно та программа используется для моди-
фикации значений в CVT.
Другая глобальная программа, называемая шрифтовой, запус-
кается только один раз в момент загрузки шрифта и выполняет ини-
циализацию значений в CVT.
Для хранения промежуточных значений применяется другая
таблица, которая называется областью данных (storage area). C ее
помощью можно создавать переменные и небольшие массивы дан-
ных.
Последняя глобальная область - это область графического со-
стояния (graphic state). Она содержит переменные, фиксирующие те-
кущее состояние интерпретатора языка, например, способ округления
значений или направление вектора измерения расстояний. Все пере-
менные имеют значения по умолчанию. Для изменения этих значений
обычно используется шрифтовая программа или CVT-программа.
Обозначение точек
Программа разметки, написанная на языке TrueType, связыва-
ется с контурами символов, которые описываются отдельно, при по-
мощи указания номеров точек. Нумеруются все точки, определяющие
контур (on-line и offline), как это показано на Рисунок 6.20.
Команды языка могут использовать любые точки, реально опи-
сывающие контур, и набор точек, используемых только в качестве
промежуточных. Для разделения этих точек символ представляется
состоящим из двух слоев: слой 1 (Z1), содержащий реальные точки, и
слой 0 (Z0), состоящий из промежуточных точек. Оба слоя могут при-
меняться во всех операциях языка.
Кроме этого, интерпретатор добавляет к описанию контура сим-
вола две дополнительные точки, определяющие поля символа
(Рисунок 6.21).
Эти точки могут использоваться наравне с другими в программе
разметки и позволяют точно определять поля символа в растровых
единицах.
Например, с их помощью легко можно заблокировать полное ис-
чезновение полей. Для этого достаточно написать фрагмент програм-
мы, который бы не позволял приравнивать горизонтальные координа-
ты дополнительных точек и крайних точек символа.