Как использовать комбинирование персонажей в НЛО 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, который вам нужно будет использовать.