我通过以统一字体对象 3格式编写 XML 文件来创建字体。
有点不清楚如何在格式中创建组合字符,所以我希望有人可以通过一个简单的例子为我指出正确的方向?
就我而言,我使用的是 Unicode 的私人使用区域(U+E000-U+F8FF)。例如,如果一个接一个地键入,我想U+E000
和U+E001
显示在彼此之上。
我通过以统一字体对象 3格式编写 XML 文件来创建字体。
有点不清楚如何在格式中创建组合字符,所以我希望有人可以通过一个简单的例子为我指出正确的方向?
就我而言,我使用的是 Unicode 的私人使用区域(U+E000-U+F8FF)。例如,如果一个接一个地键入,我想U+E000
和U+E001
显示在彼此之上。
这听起来有点混乱。unicode 组合字符是定义明确的东西,具有精确的含义,与 PUA 代码点(基本上是“不受监管,但代码点可寻址的字形”)无关。最好避免现代字体中的 PUA,而是依靠 GSUB 规则来解决人类- 可键入的代码序列到内部字形 id,然后具有基于(成对)内部 id 执行必要重新定位的 GPOS 规则。
因此,这听起来有点像您试图弄清楚如何定义 OpenType 字体中的规则是 GPOS 数据,以便自定义定位代码对。如果是这样,那是您在功能定义中定义的内容,其中(对于这种特殊情况)您设置GPOS 规则以实现您需要的重新定位。
不幸的是,这里没有“快速”的例子:GSUB/GPOS 功能不是快速和简单的,而且你通常不会手动编写它们(FontForge、Fontlab、FontCreator 等都带有用于自动化部件的 UI或全部编写 OpenType 脚本/功能/查找定义)。如果您绝对需要,您可能需要多次阅读功能文档以了解准确的语法以及您需要使用的 GPOS 查找类型。