教程 特性变化
No.05 Feature Variations

使用特性变化 切换字形

本教程演示如何根据可变字体的变化实例(这里是 Weight 字重轴),将单竖线的美元符号切换为带断条的备选设计。

教程序号: 05
官方原文: high-logic.com
内容状态: ✅ 基于完整内容创建

简介

可变字体允许您使用轴滑块插值字形层轮廓。这是可能的,因为所有层都具有兼容的轮廓,这意味着它们具有相同数量的轮廓和匹配的点,仅在点坐标上有所不同。然而,如果您需要在设计空间内的特定范围内切换到不兼容的轮廓怎么办?例如,您可能希望为更窄或更粗的字形使用不同的字形设计。

问题

想象一个场景,您希望带有单竖线的美元符号切换到带有断杠的替代设计,适用于更粗的字重(例如,当字重轴为 650 或更高时)。这就是 OpenType 的特性变化发挥作用的地方。

美元符号变化

解决方案:OpenType 特性变化

OpenType 规范通过特性变化表提供了一个优雅的解决方案,允许您将包含默认查找集的特性替换为包含需要在特定条件下应用的查找的替代特性。

有一个专门用于此的功能称为必需变化替代(rvrn)。根据规范,rvrn 功能中的所有查找必须是单一替换(GSUB 类型 1),这意味着不允许使用连字、上下文或 GPOS 查找。然而,某些应用程序并未完全按照 OpenType 规范的意图支持 rvrn,这可能会导致问题。

如果您使用 rvrn 的特性变化不起作用,您可以自由使用其他功能。我们建议尝试必需连字(rlig)作为替代。此功能没有与 rvrn 相同的限制,允许使用连字查找。

在 FontCreator 中添加特性变化的分步指南

1. OpenType 设计器

  • 启动 FontCreator。
  • 确保您的字体具有美元字形以及替代的 dollar.rvrn 字形。
  • 打开 OpenType 设计器。

2. 创建新查找

  • 在左侧的功能树视图中选择名为"查找"的根项。
  • 单击添加按钮(顶部的绿色十字)。
  • 从右侧的 GSUB 列表中选择"单一替换"。
  • 将此查找命名为"SingleSubstitution1"并将其配置为用替代字形替换常规美元符号。

3. 向 OpenType 布局添加功能

  • 如果您的字体没有脚本,则首先选择"脚本"并单击添加按钮以添加"默认" -> "默认",否则您可以跳过此步骤。
  • 选择名为"功能"的根项以添加名为"RequiredVariationAlternates1"的 `rvrn` 功能(将其留空,不添加查找)。
  • 现在将该功能添加到所有可用的脚本-语言组合。
  • 我们向"功能"添加第二个 `rvrn` 功能并将其命名为"RequiredVariationAlternates2"。
  • 将查找"SingleSubstitution1"添加到"RequiredVariationAlternates2"。
OpenType 设计器

4. 将功能与变化条件连接

  • 在功能树视图中,选择"变化"(最后一个根项)并单击添加按钮(顶部的绿色十字)。
  • 在变化条件部分,单击添加按钮并将轴设置为"字重",最小值设置为 650,最大值设置为 950。
  • 添加变化功能替换,将"RequiredVariationAlternates1"设置为功能来源,将"RequiredVariationAlternates2"设置为目标功能。
变化条件

这是完整的功能代码:

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;

测试特性变化:

  • 通过在预览区域中输入美元符号来测试设置。
  • (可选)打开校对对话框(左上角的第二个图标)以查看形状引擎处理的内容。
  • 使用字重滑块查看当字重为 650 或更高时美元符号是否被替换。
  • 通过勾选 _shaper 复选框确保形状引擎处于活动状态。
测试特性变化

结论

通过此设置,您可以有效地管理字形在可变字体中不同轴位置的变化,确保您的设计在各种样式和字重下保持最佳状态。

致谢:本教程中使用的字体是 Elron Bucai 设计的 FtMonopol