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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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 -