风格变体集

  • by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

现在比如说你无法决定你的 a 使用哪种造型,或者说你设计了两种造型,想将它们都保留下来。怎么办呢?毕竟,键盘上只有一个 a 键。

对于这种情况,OpenType 提供了所谓“风格变体”功能。你可以为一个字母创建多达 20 种变体,把它们都放入字体中。风格变体组合之间并不互斥:可以同时启用多个变体组合。比如,一个组合中可以包含替换造型的下降部,另一个组合为替换造型(如本例中的 a),第三个则包含替换的 R、K 斜笔。只要适合你的设计,什么样的都可以。

回到我们的变体。创建风格变体的关键是字符形名称。默认的 a,显然就叫 a。变体版本则应该命名为 a.ss01。后缀名 .ss01 表示它是第个风格组合(stylistic set)中的 a。

如果你想要更多的风格组合,只需为字符形名称添加合适的后缀名即可:.ss02 对应第二个风格组合,.ss03 对应第三个风格组合,等等。因为风格组合的最大数目为 20,所以你的后缀可以一直到 .ss20

如果你严格按照规则来命名,Glyphs 就可以为你创建特性代码。你只需要打开“字体信息”(Cmd-I),前往“特性”选项卡并点击左下角的圆形箭头:

你会发现 Glyphs 添加了一个名为 ss01 的特性,其中包含了一个简单替换:a 替换为 a.ss01。要想直接在 Glyphs 中测试,在“编辑”标签页左下角的“特性”弹出菜单中选择 ss01 特性即可:

选择弹出菜单中的第一项,带有横杠的那一个,可以重置所有特性:

最后再提醒注意以下。并非很多用户了解风格变体的用法。所以,不论你在字体中内置了多少变体,请注意它们仅会在少数情况下能被用到。

变带音符的字母

如果你已有 a.ss01,想要用它创建相应的带变音符的字母,这里有一个简便的做法。

  1. 首先,全选带变音符的 a,例如 adieresis ä、aacute á、abreve ă,等等。(或者键入一个小写 a,右键单击并在快捷菜单中选择“显示所有将此字符形用作部件的字符形”。)
  2. 执行“字符 > 创建字符形副本”(Cmd-D)副本字符形会被默认选中,且都带有后缀名 .001
  3. 然后,按下 Cmd-Shift-F(或者前往“编辑 > 查找 > 查找和替换”)并将 .001 替换为 .ss01
  4. 最后,选择那些 .ss01 字符形并执行“字符 > 建立部件字符形”(Opt-Shift-Cmd-C)。

然后就成了:

风格组合名称

为你的风格组合取一个合适的名称是个不错的主意,这样你的用户就可以在支持 OpenType 的应用程序中正确地选择它们。前往“文件 > 字体信息 > 特性”并选择某个 ssXX 特性。然后,在窗口右下角的窗格中——这里通常是用作评论、注释或代码备份的——编写 Name: 后接空格,再接人类可读的风格组合英文名:

这样,在诸如 InDesign CC 之类的应用程序中,用户的选项上就会显示出它们相应的名字:

神奇!

下面这个是给你们当中的极客准备的:如果你知道自己在做什么,你也可以添加完整的 featureNames 代码,而不仅仅是 Name: 这一行。这样,你可以拥有更多语言(及平台)变化。在Adobe OpenType 字体开发套件(AFDKO)技术文档中阅读全部相关内容,这里是一份样例:

featureNames {
   name "Single Storey a"; # Windows (default)
   name 3 1 0x0407 "Einstöckiges a"; # 3=Windows, 1=Unicode, 0407=German
   name 1 "Single Storey a"; # 1=Mac
   name 1 0 2 "Einst\9fckiges a"; # 1=Mac, 0=MacRoman, 2=German
};

你可以在 OT 技术文档中的“名称”表细则中找到平台、编码方案和语言 ID 的正确数字。

注意:Mac 名称必须被指定为相应的 8 位 Mac 编码,这意味着所有非 ASCII 字符必须被替换为 2 位十六进制编码。本例中,1 0 指代 MacRoman 编码,因此最后一行中的 ö (带分音符的小写 o)需要被替换为 \9f,因为 MacRoman 中 ö 的十六进制编码为 0x9F。

引用 AFDKO 技术文档:“character codes in the range 128-255 may be specified using a special character sequence of a backslash character (\) followed by exactly two hexadecimal numbers (of either case) which may not both be zero, e.g. \83. The ASCII blackslash character must be represented as the sequence \5c or \5C and the ASCII double quote character must be represented as the sequence \22.”

挺简单的,是吧?


样例字体:ATTORNEY,VIKTOR SOLT-BITTNER 和 SCHRIFTLABOR 设计
2018-02-05 更新:添加风格组合命名。更新“变音符”一节。
2019-07-30 更新:修正“风格组合名称”中的句子,以及 Attorney 的链接(感谢 Nathalie。)

Chinese translation by Willie Liu (刘育黎) from 3type (三言).