Окт 14

Метрики шрифтов

Отсчет всех размеров выполняется от так называемой базовой линии шрифта. На ней находится нижняя граница глифов большинства прописных букв. Все символы шрифта размещаются в прямоугольных ячейках.
Высота шрифта tmHeight складывается из надстрочного интервала и подстрочного интервала.
Надстрочный интервал tmAscent — это расстояние от базовой линии до верхней границы ячейки символа.
Подстрочный интервал tm Descent — это расстояние от базовой линии до нижней границы ячейки символа.
Внутренний зазор tmlnternalLeading определяет пространство для размещения диакритических знаков, таких как знак акцента или умляут.
Внешний зазор tmExternalLeading определяет минимальный интервал между соседними строками для многострочного текста.
В полиграфии размер шрифта измеряется в пунктах. Один пункт равен 0,01389 дюйма (1/71,99424). В компьютерной верстке пункт округляется до 1/72 дюйма. Еще один типографский термин «кегль» определяется как разность высоты шрифта и внутреннего зазора.
Для получения информации о шрифте, выбранном в контекст устройства, предназначена функция GetTextMetrics:
BOOL GetTextMetrics(HDC hdc. LPTEXTMETRIC Iptm);
Поле tmWeight определяет вес (жирность) шрифта. Эта величина может изменяться от 0 до 1000, но чаще всего она равна или 400 для нормального начертания шрифта, или 700 для полужирного начертания.
В поле tmOverhang содержится величина, на которую увеличивается ширина символов для синтезированных шрифтов, например для наклонных или жирных шрифтов, получаемых из нормального шрифта. Шрифты TrueType обычно не используют это поле, так как в них для каждого начертания создается свой шрифт.
Поля tmDigitizedAspectX и tmDigitizedAspectY прокомментированы в MSDN терминами горизонтальный аспект устройства (horizontal aspect of the device) и вертикальный аспект устройства (vertical aspect of the device) соответственно, для которых был создан текущий шрифт. По существу, они содержат те же значения, которые возвращает функция GetDeviceCaps с аргументами LOGPIXELSX и LOGPIXELSY, то есть «число пикселов на 1 логический дюйм по горизонтали» и «число пикселов на 1 логический дюйм по вертикали». При синтезе шрифтов имеют значение не абсолютные значения этих величин, а их соотношение tmDigitizedAspectY / tmDigitizedAspectX, называемое аспектным соотношением (aspect ratio).