本教程演示如何根据可变字体的变化实例(这里是 Weight 字重轴),将单竖线的美元符号切换为带断条的备选设计。
可变字体允许您使用轴滑块插值字形层轮廓。这是可能的,因为所有层都具有兼容的轮廓,这意味着它们具有相同数量的轮廓和匹配的点,仅在点坐标上有所不同。然而,如果您需要在设计空间内的特定范围内切换到不兼容的轮廓怎么办?例如,您可能希望为更窄或更粗的字形使用不同的字形设计。
想象一个场景,您希望带有单竖线的美元符号切换到带有断杠的替代设计,适用于更粗的字重(例如,当字重轴为 650 或更高时)。这就是 OpenType 的特性变化发挥作用的地方。
OpenType 规范通过特性变化表提供了一个优雅的解决方案,允许您将包含默认查找集的特性替换为包含需要在特定条件下应用的查找的替代特性。
有一个专门用于此的功能称为必需变化替代(rvrn)。根据规范,rvrn 功能中的所有查找必须是单一替换(GSUB 类型 1),这意味着不允许使用连字、上下文或 GPOS 查找。然而,某些应用程序并未完全按照 OpenType 规范的意图支持 rvrn,这可能会导致问题。
如果您使用 rvrn 的特性变化不起作用,您可以自由使用其他功能。我们建议尝试必需连字(rlig)作为替代。此功能没有与 rvrn 相同的限制,允许使用连字查找。
4. 将功能与变化条件连接
这是完整的功能代码:
languagesystem DFLT dflt;
languagesystem latn dflt; # Latin default
lookup SingleSubstitution1 { # GSUB lookup type SingleSubstitution
sub dollar by dollar.rvrn;
} SingleSubstitution1;
feature rvrn { # Required Variation Alternates
} rvrn;
conditionset ConditionSet1 {
wght 650 950;
} ConditionSet1;
variation rvrn ConditionSet1 { # Required Variation Alternates
lookup SingleSubstitution1;
} rvrn;
通过此设置,您可以有效地管理字形在可变字体中不同轴位置的变化,确保您的设计在各种样式和字重下保持最佳状态。
致谢:本教程中使用的字体是 Elron Bucai 设计的 FtMonopol。