Таблица шрифтов — Win32 apps

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья

Таблица Шрифт содержит сведения о регистрации файлов шрифтов в системе.

Таблица Шрифт содержит следующие столбцы.

СтолбецTypeКлючДопускает значения NULL
Файл_ИдентификаторДаN
FontTitleTextNДа

 

Столбцы

Файл_

Внешний ключ в записи таблицы File для файла шрифта. Рекомендуется, чтобы компонент, содержащий файл шрифта, содержал fontsFolder, указанный в столбце Directory_ таблицы Компонент.

FontTitle

Имя шрифта. Рекомендуется оставить этот столбец null для trueType Fonts и TrueType Collections, так как установщик может зарегистрировать шрифт после чтения правильного заголовка шрифта из файла шрифта. Если введено имя шрифта, оно должно быть идентично названию шрифта из файла шрифта. Необходимо указать заголовок для шрифтов, которые не имеют внедренных имен, таких как FON-файлы.

Эта таблица ссылается при выполнении действия RegisterFonts или UnregisterFonts .

Если поле FontTitle остается пустым, имя шрифта считывается непосредственно из указанного файла шрифта. Если имя шрифта, записанное в поле FontTitle, отличается от имени внутреннего шрифта, записанного в файле шрифта, шрифт регистрируется дважды с помощью действия RegisterFonts.

Файлы шрифтов не должны создаваться с идентификатором языка, так как шрифты не имеют внедренного ресурса идентификатора языка. Таким образом, в столбце Язык таблицы File для файлов шрифтов следует оставить значение NULL.

Так как установщик не пересылает файлы шрифтов по умолчанию, существующие файлы шрифтов могут быть удалены вместе с их компонентом при удалении приложения. Чтобы файл шрифта не был удален, авторы могут задать битовые флаги msidbComponentAttributesSharedDllRefCount или msidbComponentAttributesPermanent в столбце Атрибуты Table_msi_Component_Table компонента для компонента, содержащего файл шрифта.

Проверка

ICE03
ICE06
ICE07
ICE32
ICE51
ICE60

 

 

Таблица безопасных web шрифтов


Если вы по каким-то причинам не можете подгружать шрифты со сторонних сайтов или не хотите возиться с конвертацией шрифтов в разные форматы, для разных браузеров и систем, то вы можете использовать безопасные шрифты, которые присутствуют практически на любом устройстве.

Данный список представляет наиболее совместимые шрифты, которые выглядят практически одинаково во всех основных системах и устройствах. Нажмите на понравившийся шрифт, чтобы увидеть все символы и примеры текста.

Описание шрифта

Примеры текстов

Bi


font-family: Arial, sans-serif;

ArialСемейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Arial Black, sans-serif;

Arial BlackСемейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Comic Sans MS, cursive;

Comic Sans MSСемейство шрифтов cursive

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Courier New, monospace;

Courier NewСемейство шрифтов monospace

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Georgia, serif;

GeorgiaСемейство шрифтов serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Impact, Impact, Charcoal, sans-serif;

Impact (Impact, Charcoal в MacOs)Семейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Lucida Console, Monaco, monospace;

Lucida Console (Monaco в MacOs)Семейство шрифтов monospace

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Lucida Sans Unicode, Lucida Grande, sans-serif;

Lucida Sans Unicode (Lucida Grande в MacOs)Семейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением. You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Palatino Linotype, Book Antiqua, Palatino, serif;

Palatino Linotype, Book Antiqua (Palatino в MacOs)Семейство шрифтов serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Tahoma, Geneva, sans-serif;

Tahoma (Geneva в MacOs)Семейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Times New Roman, Times New Roman, Times, serif;

Times New Roman (Times New Roman, Times в MacOs)Семейство шрифтов serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Trebuchet MS, sans-serif;

Trebuchet MSСемейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Verdana, sans-serif;

VerdanaСемейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Symbol;

Symbol

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Webdings;

Webdings

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: Wingdings, Zapf Dingbats;

Wingdings (Zapf Dingbats в MacOs)

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: MS Sans Serif, Geneva, sans-serif;

MS Sans Serif (Geneva в MacOs)Семейство шрифтов sans-serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

font-family: MS Serif, New York, serif;

MS Serif (New York в MacOs)Семейство шрифтов serif

Воля — целеустремленность, соединенная с правильным рассуждением.You are young, my son, and, as the years go by, time will change and even reverse many of your present opinions. Refrain therefore awhile from setting yourself up as a judge of the highest matters.

Для безопасного использования шрифтов на сайте необходимо добавить всё семейство через запятую.

Таблицы шрифтов — Справочное руководство TrueType

  • Оцифровка букв
  • Механизм шрифтов
  • Инструктирующие шрифты
  • Состояние графики
  • Набор инструкций
  • Таблицы шрифтов
    • Об ААТ
    • Специальные столы
    • 'акнт'
    • "анкр"
    • аварский
    • 'бдат'
    • "бэд"
    • 'блок'
    • 'бслн'
    • 'кмэп'
    • 'квар'
    • вариатор
    • 'ЭБСК'
    • "ФДСК"
    • 'подвиг'
    • 'FMTX'
    • "фонд"
    • 'фпгм'
    • 'фвар'
    • "вздох"
    • 'гцид'
    • 'глиф'
    • 'гвар'
    • 'HDMX'
    • "голова"
    • 'ххеа'
    • 'hmtx'
    • 'просто'
    • "керн"
    • 'керкс'
    • "лкар"
    • "лока"
    • 'лтег'
    • 'макс. р'
    • «мета»
    • 'морт'
    • "моркс"
    • 'имя'
    • 'опбд'
    • «ОС/2»
    • 'почта'
    • «подготовка»
    • "опора"
    • 'сбикс'
    • "трак"
    • 'вхеа'
    • 'ВМТХ'
    • 'внешняя ссылка'
    • "Цапф"
  • Сводка набора инструкций
  • Сопоставление глифов
  • Преобразование контуров
  • Реестр шрифтов

Введение

В этой главе описываются таблицы, составляющие файл шрифта TrueType, включая расширения AAT для основной спецификации TrueType. Документация не включена для таблиц, специфичных для OpenType, даже тех, которые поддерживаются в OS X и iOS. Дополнительные сведения об этих таблицах см. в спецификации OpenType.

В таблице 1 описаны типы данных, используемые в файлах шрифтов TrueType на всех платформах.

За исключением каталога шрифтов, который должен стоять первым в файле шрифта, таблицы, из которых состоит шрифт, могут располагаться в любом порядке. Для удобства доступа к информации, представленной в этой главе, таблицы описаны в алфавитном порядке.

Типы данных

В дополнение к стандартным целочисленным типам данных формат шрифта TrueType использует следующее:

Таблица 1 : Типы данных 'sfnt' 241 Описание короткая трещина 16-битная дробь со знаком Фиксированный 16,16-битное число с фиксированной точкой со знаком FWord 16-битное целое число со знаком, описывающее величину в FUnits, наименьшее измеримое расстояние в em-пространстве.

uFWord 16-битное целое число без знака, описывающее величину в FUnits, наименьшее измеримое расстояние в пространстве em. F2Dot14 16-битное фиксированное число со знаком, где младшие 14 бит представляют собой дробь. лонгдатетиме Длинный внутренний формат даты в секундах с полуночи 1 января 19 года.04. Он представлен как 64-битное целое число со знаком.

ПРИМЕЧАНИЕ : shortFrac представляет собой int16_t со смещением 14. Это означает, что он может представлять числа от 1,999 (0x7fff) до -2,0 (0 х8000) . 1.0 хранится как 16384 (0x4000) , а -1.0 сохраняется как -16384 (0xc000) .

Файлы шрифтов TrueType: обзор

Файл шрифта TrueType состоит из последовательности соединенных таблиц. Таблица — это последовательность слов. Каждая таблица должна быть выровнена по длине и при необходимости дополнена нулями.

Первая из таблиц — это каталог шрифтов, специальная таблица, облегчающая доступ к другим таблицам шрифта. За каталогом следует последовательность таблиц, содержащих данные о шрифтах. Эти таблицы могут появляться в любом порядке. Определенные таблицы необходимы для всех шрифтов. Другие являются необязательными в зависимости от функциональности, ожидаемой от конкретного шрифта.

Таблицы имеют имена, известные как теги. Теги имеют тип uint32. Определенные в настоящее время имена тегов состоят из четырех символов. Имена тегов, содержащие менее четырех символов, заканчиваются пробелами. Когда имена тегов отображаются в тексте, они заключаются в прямые кавычки.

Требуемые таблицы должны присутствовать в любом допустимом файле шрифта TrueType. Требуемые таблицы и имена их тегов показаны в Таблице 2.

Таблица 2 : Требуемые таблицы

Преобразование
Тег Стол
'кмэп' символов в глифы
'глиф' данные глифов
"голова" заголовок шрифта
'ххеа' горизонтальный коллектор
'hmtx' горизонтальные метрики
"лока" индекс к местоположению
'макс. р' максимальный профиль
«имя» присвоение имени
"почта" Постскриптум

Внимание!

Apple проводит различие между «шрифтом TrueType» (который относится к конкретной технологии определения контура шрифта) и «шрифтом, размещенным в sfnt», который относится к любому шрифту, который использует тот же формат упаковки, что и шрифт TrueType: то есть он использует ту же структуру каталогов и тот же формат таблицы и значение для любых присутствующих таблиц.

Это важное различие, потому что Apple поддерживает другие разновидности шрифтов, размещенных в sfnt, в OS X и iOS, в первую очередь растровые шрифты и шрифты OpenType. Неофициально люди часто называют любой шрифт, размещенный в sfnt, «шрифтом TrueType», но это, строго говоря, неверно.

«Обязательные» таблицы, перечисленные в таблице 2, требуются только для шрифтов TrueType . В других вариантах шрифта sfnt-house их может не быть. Например, растровые шрифты, размещенные в sfnt, не имеют таблицы 'hmtx' , 'hhea' или 'head' . CoreText, система рендеринга Apple для текста в кодировке Unicode, требует, чтобы любой шрифт, размещенный в sfnt, имел таблицу 'cmap' и 'name' .

Для поставщиков шрифтов : Если вы не уверены, следует ли включать конкретную таблицу для вашего шрифта, отличного от TrueType, размещенного в sfnt, то, как правило, включать ее безопасно, или вы можете обратиться в Apple за советом.

Для пользователей шрифтов : Никогда не предполагайте, что какая-либо конкретная таблица присутствует в шрифте в OS X. Шрифты могут быть шрифтами, отличными от TrueType, размещенными в sfnt, и в них могут отсутствовать некоторые из необходимых таблиц TrueType. Кроме того, шрифты могут быть неправильно сформированы и все же установлены. Обеспечьте изящную обработку ошибок, если в используемом вами шрифте отсутствует требуемая таблица.

Дополнительные таблицы могут потребоваться в зависимости от функциональности, ожидаемой от данного файла шрифта. Необязательные таблицы и имена их тегов перечислены в таблице 3. 9Таблица 0022 ‘hdmx’ используется только на платформах Macintosh. Таблица 'OS/2' требуется для шрифтов, которые будут использоваться на этой платформе, но появляется в дополнительной таблице, поскольку она не требуется для всех файлов шрифтов TrueType.

Таблицы Apple Advanced Typography (AAT) используются с функцией Line Layout в Apple CoreText.

Дополнительные таблицы могут быть определены для поддержки других платформ, таких как OpenType, или для будущего расширения. Теги для этих таблиц должны быть зарегистрированы. Обратитесь в службу технической поддержки разработчиков Apple для получения информации о процессе регистрации. Имена тегов, состоящие только из строчных букв, зарезервированы для использования Apple.

Таблица 3 : Дополнительные таблицы

Тег Стол
вариатор контрольное значение
'фпгм' программа шрифтов
'HDMX' метрики горизонтального устройства
"керн" кернинг
«ОС/2» ОС/2
"подготовка" программа контрольного значения

Каталог шрифтов

Каталог шрифтов, первая из таблиц, представляет собой справочник по содержимому файла шрифта. Он предоставляет информацию, необходимую для доступа к данным в других таблицах. Каталог состоит из двух частей: подтаблицы смещения и каталога таблиц. Подтаблица смещений записывает количество таблиц в шрифте и предоставляет информацию о смещении, обеспечивающую быстрый доступ к таблицам каталога. Каталог таблиц состоит из последовательности записей, по одной для каждой таблицы в шрифте.

Подтаблица смещения

Подтаблица смещения, описанная в таблице 4, начинается с типа масштабирования шрифта. Далее следует количество помеченных таблиц в 'sfnt' . Сам каталог таблиц и любые подтаблицы не включаются в этот подсчет. Записи для searchRange, entrySelector и rangeShift используются для облегчения быстрого бинарного поиска в следующем каталоге таблиц. Если шрифт не имеет большого количества таблиц, последовательный поиск будет достаточно быстрым.

Если необходим более быстрый поиск, бинарный поиск проще всего выполнить по количеству записей, равному степени двойки. Это позволяет сократить количество элементов для поиска вдвое путем сдвига. Остальные записи подтаблицы смещения должны быть установлены следующим образом:

  • searchRange — это наибольшая степень двойки, меньшая или равная количеству элементов в таблице, т. е. наибольшее количество элементов, которые можно легко найти.
  • rangeShift — количество элементов минус searchRange; то есть количество элементов, которые не будут просматриваться, если вы будете просматривать только элементы searchRange.

Перед началом цикла поиска сравните целевой элемент с элементом с номером rangeShift. Если целевой элемент меньше, чем rangeShift, поиск начинается с начала таблицы. Если больше, поиск начинается с элемента с номером rangeShift.

  • entrySelector — это журнал 2 (диапазон поиска). Он сообщает, сколько итераций цикла поиска необходимо. (т.е. сколько раз сократить диапазон вдвое)

Обратите внимание, что searchRange, entrySelector и rangeShift умножаются на 16, что представляет собой размер записи каталога.

Таблица 4 : Подтаблица смещения

Тип Имя Описание
uint32 скалер тип Тег, указывающий масштабатор OFA, который будет использоваться для растеризации этого шрифта; см. примечание о типе скейлера ниже для получения дополнительной информации.
уинт16 количество таблиц количество столов
иинт16 диапазон поиска (максимальная мощность 2 <= numTables)*16
уинт16 селектор записей log 2 (максимальная мощность 2 <= numTables)
уинт16 диапазонСдвиг numTables*16-searchRange
Тип масштабатора

Тип масштабатора используется OS X и iOS, чтобы определить, какой масштабатор использовать для этого шрифта, то есть, чтобы определить, как извлекать данные глифа из шрифта. Различные средства масштабирования шрифтов оборачивают различные форматы шрифтов в базовую структуру шрифта TrueType; тип масштабатора в подтаблице смещения каталога шрифтов используется для указания того, какой масштабатор следует использовать с конкретным шрифтом. (Шрифты, отличные от TrueType, размещенные в той же структуре, что и шрифт TrueType, называются «шрифтами, размещенными в sfnt».)

Значения «true» (0x74727565) и 0x00010000 распознаются OS X и iOS как относящиеся к шрифтам TrueType. Значение 'typ1' (0x74797031) распознается как относящееся к старому стилю шрифта PostScript, помещенному в оболочку sfnt. Значение 'OTTO' (0x4F54544F) указывает на шрифт OpenType с контурами PostScript (то есть таблицу 'CFF' вместо таблицы 'glyf' ). Другие значения в настоящее время не поддерживаются.

Шрифты с контурами TrueType, созданные только для OS X или iOS, рекомендуется использовать 'true' (0x74727565) для значения типа масштабатора. Шрифты для продуктов Windows или Adobe должны использовать 0x00010000.

Каталог таблицы

Каталог таблицы следует за подтаблицей смещения. Записи в справочнике таблицы должны быть отсортированы в порядке возрастания по тегу. Каждая таблица в файле шрифтов должна иметь свою собственную запись каталога таблиц. Таблица 5 документирует структуру каталога таблиц.

Таблица 5 : Каталог таблиц

Тип Имя Описание
uint32 тег 4-байтовый идентификатор
uint32 контрольная сумма контрольная сумма для этой таблицы
uint32 смещение смещение от начала sfnt
uint32 длина длина этой таблицы в байтах (фактическая длина без дополнений)

Каталог таблицы включает контрольную сумму, число, которое можно использовать для проверки подлинности и целостности данных в связанной с ней таблице с тегами. Контрольные суммы таблицы — это беззнаковая сумма длин в таблице. Следующая функция C может использоваться для определения контрольной суммы данной таблицы:

  uint32 CalcTableChecksum(uint32 *table, uint32 numberOfBytesInTable) 
  { 
  uint32 сумма = 0; 
  uint32 nLongs = (numberOfBytesInTable + 3) / 4; 
  в то время как (nLongs-- > 0) 
  сумма += *таблица++; 
  сумма возврата; 
  } 
 

Чтобы вычислить контрольную сумму для таблицы 'head' , которая сама включает запись checkSumAdjustment для всего шрифта, выполните следующие действия:

  • Установите для параметра checkSumAdjustment значение 0.
  • Вычислите контрольную сумму для всех таблиц, включая таблицу 'head' , и введите это значение в каталог таблиц.
  • Вычислить контрольную сумму для всего шрифта.
  • Вычтите это значение из шестнадцатеричного значения B1B0AFBA.
  • Сохраните результат в checkSumAdjustment.

Контрольная сумма для таблицы ‘head, которая включает запись checkSumAdjustment для всего шрифта, теперь неверна. Это не проблема. Не меняйте его. Приложение, пытающееся проверить, что таблица 'head' не изменилась, должно вычислить контрольную сумму для этой таблицы, не включая значение checkSumAdjustment, и сравнить результат с записью в каталоге таблицы.

Каталог таблиц также включает смещение связанной таблицы с тегами от начала файла шрифта и длину этой таблицы.

Таблица шрифтов — приложения Win32

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья

Таблица шрифтов содержит информацию для регистрации файлов шрифтов в системе.

Таблица шрифтов содержит следующие столбцы.

Столбец Тип Ключ Обнуляемый
Файл_ Идентификатор Д Н
Название шрифта Текст Н Д

 

Столбцы

Файл_

Внешний ключ в записи таблицы файлов для файла шрифта. Рекомендуется, чтобы компонент, содержащий файл шрифта, имел папку FontsFolder, указанную в столбце Directory_ таблицы Component.

Название шрифта

Имя шрифта. Рекомендуется оставить этот столбец пустым для шрифтов TrueType и коллекций TrueType, поскольку программа установки может зарегистрировать шрифт после считывания правильного названия шрифта из файла шрифта. Если имя шрифта введено, оно должно совпадать с названием шрифта из файла шрифта. Вы должны указать заголовок для шрифтов, которые не имеют встроенных имен, таких как файлы .