UFO 3中如何使用组合字符?

How to use combining characters in UFO 3?

我正在通过以 Unified Font Object 3 格式编写 XML 文件来创建字体。

有点不清楚如何在格式中创建组合字符,所以我希望有人能通过一个简单的例子为我指明正确的方向?

就我而言,我使用的是 Unicode (U+E000-U+F8FF) 的专用区域。例如,如果一个接一个地输入,我希望 U+E000U+E001 显示在彼此之上。

这听起来有点混乱; unicode 组合字符是一个定义明确的事物,具有精确的含义,与 PUA 代码点(基本上是“不受管制,但代码点可寻址的字形”)无关。最好避免现代字体中的 PUA,而是依靠 GSUB 规则来解决人类- 内部字形 ID 的可键入代码序列,然后使用 GPOS 规则根据(成对的)内部 ID 执行必要的重新定位。

所以这听起来有点像是您在试图弄清楚如何定义 OpenType 字体中的 GPOS 数据的规则,用于代码对的自定义定位。如果是这样,那就是您在 feature definition, in which (for this particular case) you set up GPOS rules 中定义的内容,以实现您需要的重新定位。

不幸的是,这里没有 "quick" 示例:GSUB/GPOS 功能一点都不简单快捷,而且您通常不会手写它们(例如 FontForge、Fontlab、FontCreator、等都带有 UI 用于自动化部分或全部编写 OpenType script/feature/lookup 定义)。如果绝对必要,您可能需要多次通读功能文档以了解精确的语法以及您需要使用的 GPOS 查找类型。