Как использовать комбинирование персонажей в НЛО 3?

Я создаю шрифт, записывая XML-файлы в формате Unified Font Object 3.

Немного неясно, как можно создавать комбинированные символы в формате, поэтому я надеялся, что кто-нибудь может указать мне правильное направление с быстрым примером?

В моем случае я использую частную область использования Unicode (U+E000-U+F8FF). Например, я хотел бы U+E000 а также U+E001 отображать друг на друга, если печатать один за другим.

1 ответ

Решение

Это звучит как небольшая путаница в терминах; Комбинированные символы Unicode - это четко определенные вещи с точным значением, не связанные с кодовыми точками PUA (которые в основном являются "нерегулируемыми, но адресно-кодированными глифами"). Лучше избегать PUA в современных шрифтах, вместо этого полагаясь на правила GSUB для разрешения -типируемые последовательности кода к внутренним идентификаторам глифов, а затем наличие правил GPOS, которые выполняют необходимое перепозиционирование на основе (пар) внутренних идентификаторов.

Так что это звучит немного похоже на то, как вы пытаетесь понять, как определить правила, которые в шрифте OpenType являются данными GPOS, для пользовательского позиционирования пар кода. Если это так, то это то, что вы определяете в определении объекта, в котором (для этого конкретного случая) вы устанавливаете правила GPOS для осуществления необходимого изменения положения.

К сожалению, здесь нет "быстрых" примеров: функции GSUB/GPOS совсем не быстры и просты, и вы обычно не пишете их вручную (такие вещи, как FontForge, Fontlab, FontCreator и т. Д., Все поставляются с пользовательским интерфейсом для автоматизации деталей или все сценарии OpenType / определения функций / поиска). Если вам абсолютно необходимо, вам, вероятно, придется несколько раз прочитать документацию по функциям, чтобы понять точный синтаксис и тип поиска GPOS, который вам нужно будет использовать.

Другие вопросы по тегам