ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.05.2024
Просмотров: 613
Скачиваний: 0
Рисунок 6.20 Нумерация точек, определяющих контур в TrueTypeшрифтах
Рисунок 6.21 Дополнительные точки, определяющие поля символа в
TrueType-шрифтах
B некоторых операциях требуется указание одной из трех опорных точек, которые могут указывать на любую из точек контура в слое 1 или на промежуточные точки в слое 0. Номера опорных точек опре-
- 176 -
деляются в области графического состояния интерпретатора языка разметки и могут быть изменены специальными командами.
Измерение расстояний и перемещение точек
Измерение расстояний между точками и перемещение точек происходит в строго фиксированных направлениях, которые определяются векторами: projection_vector дляизмерения расстояний и freedom_vector для перемещения точек (Рисунок 6.22):
Рисунок 6.22 Принцип измерения расстояний между точками в
TrueType-шрифтах
Направления этих векторов определяются специальными командами.
Расстояние между точками может быть разным: белым, серым и черным. Отличия между ними заключаются в том, что при округлении значений каждого вида расстояния используются разные методы.
Белое расстояние используется для измерения белых областей и определяет дистанцию между ближними краями точек:
Рисунок 6.23 Белое расстояние между точками
Черное расстояние измеряет дистанцию между внешними краями точек:
- 177 -
Рисунок 6.24 Черное расстояние между точками
Серое расстояние используется в ситуациях, сочетающих белое и черное расстояния, и определяет дистанцию между серединами точек:
Рисунок 6.25 Серое расстояние между точками
Перемещение точек может быть относительным или абсолютным. Относительное перемещение задается от одной из трех опорных точек, а абсолютное - относительно начала координат.
Обычно оба метода комбинируются, что позволяет достичь максимальной гибкости.
B том случае, когда возникает необходимость перемещения нескольких точек, используется команда интерполяции. Для ее работы достаточно указать несколько точек, которые действительно перемещаются, а остальные точки в заданном диапазоне будут сдвинуты автоматически.
Изменение контура в зависимости от размера символа
Как уже говорилось, разметка TrueType-символов может быть построена двумя методами: описательным и командным. Описательная разметка оперирует командами измерения расстояния и перемещения точек на заданное расстояние, при этом она является универсальной по отношению к размеру символов.
Если при помощи описательных команд не удается точно определить форму некоторых элементов символов, применяется командная разметка. При этом однозначно программируется положение точек, которое они должны занимать в момент, когда размер символа (в растровых точках) находится в заданном диапазоне.
Как правило, этот метод разметки применяется для описания незначительных по размеру, но очень важных участков символа, например, правой верхней части буквы C или места соединения округ-
- 178 -
лых штрихов в букве B.
Построение шрифтовых файлов
Файлы, содержащие TrueType-шрифты, состоят из множества таблиц. Каждая из таблиц содержит определенный набор значений, определяющих некоторые характеристики шрифта.
Любой шрифтовой файл начинается с таблицы смещений (Offset Table). B ней содержится версия формата, одновременно идентифицирующая файл как TrueType-шрифт; количество таблиц в файле и несколько значений, облегчающих поиск нужных полей в шрифтовом файле.
За таблицей смещений следует каталог таблиц, показывающий тип, размер, контрольную сумму и смещение от начала файла для всех таблиц, определяющих шрифт.
B шрифтовой файл должны входить обязательные таблицы и могут входить необязательные. Приведем список всех возможных таблиц TrueType -файлов:
Тип таблицы |
|
Описание |
|
Обязательные таблицы |
|||
cmap |
Таблицы кодирования символов шрифта, разными |
||
|
способами определяющие соответствие между кода- |
||
|
ми символов и их описаниями в шрифте |
||
glyf |
Область описания символов (контуров и разметки) |
||
head |
Заголовок шрифта |
||
hhea |
Глобальные метрики шрифта |
||
hmtx |
Горизонтальные метрики символов (ширина и поля) |
||
loca |
Таблица указателей на описания символов |
||
maxp |
Требования к памяти для данного шрифта |
||
name |
Таблица имен шрифта |
||
post |
Информация, необходимая для использования шриф- |
||
|
та на PostScript-принтерах (содержит поля, входящие |
||
|
в заголовок PostScript-шрифтов и PostScript-имена |
||
|
символов) |
|
|
OS/2 |
Метрики и описания, необходимые для использования |
||
|
шрифта в OS/2 и Windows |
Необязательные таблицы
cvt Таблица значений (CVT)
fpgm Шрифтовая программа (вызывается один раз при загрузке шрифта)
hdmx Горизонтальные метрики устройства, содержат набор метрик символов для определенных размеров
- 179 -