Какие коды символов находятся в таблице cmap в шрифтах TrueType - PullRequest
0 голосов
/ 18 сентября 2018

Хотите знать, что такое "коды символов" для таблицы cmap в шрифтах TrueType.Microsoft говорит о таблице сопоставления символов и индексов глифов , но я не понимаю, что означает символ или индекс глифов.

Интересно, если где-то в файле шрифта вы укажете кодировка , такая как Unicode 11.0, а затем коды символов равны кодовым точкам Unicode, таким как U+0061 для a.Или, если вместо кодов символов используются коды символов браузера (я думаю, что это десятичные коды), например 97 для a.

В основном, интересно, как вы отображаете символы клавиатуры на глифы шрифтов и что этодействительно значит.Я думаю, что вам не очень хочется отображать клавиатура коды на глифы шрифтов, но юникод-коды, такие как U+0061, на глифы шрифтов, так что если в JavaScript ( например ) вы можетесделайте \u03A9 и он даст вам Ω, если ваш шрифт поддерживает это.

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

1 Ответ

0 голосов
/ 18 сентября 2018

Короткий, но, возможно, нежелательный ответ, конечно, «прочитайте спецификацию OpenType. Это займет некоторое время», так что немного более длинный, но более простой и менее подробный ответ будет http://pomax.github.io/CFF-glyphlet-fonts,, хотя он пропускаетсяTTF, так что давайте посмотрим на это здесь:

Ваш входной код проходит через любой применимый CMAP с учетом контекста, к которому вы применяете шрифт, который отображает код компьютера (код ASCII, кодовая точка Unicode, ISO-2022-jp, что у тебя) до идентификатора глифа.В частности, для TTF этот идентификатор затем используется в качестве смещения массива в таблице «loca» , которая является таблицей «индекс глифа к расположению данных» и указывает смещение байта в таблице «глиф» для каждого глифачто шрифт содержит.Затем вы обращаетесь к таблице глифа с этим байтовым смещением и начинаете анализировать байты, как указано https://docs.microsoft.com/en-us/typography/opentype/spec/glyf

...