多母版(三):建立子样

  • by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

好的,现在我们已经设置好了用于插值的母版,然后确保了字符形中的路径是兼容的。现在是时候确定我们的子样了。每个子样会成为我们所要生成的字体家族中的一款字体。

设置子样

好,我们开始吧。前往“文件 > 字体信息 > 字体子样”并点击左下角的“+”按钮添加子样:选择“为每个母版添加子样”然后选择“添加子样”,或者直接添加。Glyphs 会插入与定义好的母版数值相同的子样,或是直接用默认值添加一个“Regular”子样:

现在,在一个子样中有三个超级重要的文本字段。第一,“样式名称”在每一个字体家族中必须彼此不同。慎重选择样式名称,因为很多内容都要以之为依据。你可以使用大写字母和小写字母,也可以用空格。但是为了实现更好的兼容性,最好在样式名称中使用 ASCII 字符。

然后,看一下名称下方的“字重”下拉菜单。乍一看,这似乎是“样式名称”字段的重复,但并不是。它会决定它旁边小小的灰色数字,而这个灰色数字又决定了字体菜单中的顺序,至少是在 Adobe 应用程序中的那个。

最重要的是,这里有一个“字重”的插值。还记得我们在母版值中使用的字干宽度吗?本例中,是 90 和 300。字重插值必须在这区间内。换句话说,你在这里输入的数字,就会成为这款字体的字干宽度!很酷。

所以,我们使用窗口左下角的“+”按钮添加一些子样。然后,我们需要确保每个子样都有互不相同的样式名称、字重设置和介于 90 和 300 之间(也包括 90 和 300,或者其他你所设置的母版值)的插值。

然后回到主窗口中的编辑选项卡,通过(1)点击窗口左下角的眼睛图标,(2)在图标旁边的弹出菜单中选择一个子样,来打开预览区域。拖动分隔线来调节预览区域的大小。预览会一直将当前字符形显示在中心。

或者,更好的方法是,只要导出到 Adobe 字体文件夹,然后所有字体就能立刻在 InDesign 或任何其他运行中的 Adobe 应用程序中调用了。很酷。

再次提醒,不要在系统中安装你所导出的字体,即使用“字体册”或第三方字体管理软件,以便避免字体缓存的麻烦

保持样式名称简短

一条好建议:保持你的样式名称尽可能短以避免在 Windows 中导致问题。要多短?嗯,如果字体家族名称+样式名称在一起的总长度不超过 20 字符,那就是安全的。如果名称太长,Windows 可能会认为字体不可用。我们曾收到过不一致的报告,家族名称似乎要被严格限制在 29 字符,但有时更短的总长度就已经导致了问题。找出它的唯一办法就是在 Windows 中安装来测试。如果出现了这样的错误,考虑缩短家族名称和/或样式名称:

不过有时,你无法保持名称足够短。比如“紧缩极细”的样式名称会是 Condensed Ultralight。除非你的家族名称极短,不然就会出问题。

在这种情况下,可以使用缩写作为样式名称。比如,用 Cd 代表 CondensedXt 代表 ExtendedLt 代表 LightRg 代表 RegularMd 代表 MediumSb 代表 SemiboldBd 代表 BoldHv 代表 HeavyBk 代表 BlackUltr 代表 Ultra,等等。

然后,添加一条名为 preferredSubfamilyName 的自定义参数,将其值设为长版的样式名称。这将是会在用户界面中显示的名称。说到这,其实你还可以缩短家族名称,然后使用一条 preferredFamilyName 参数来指定完整的家族名称。

想了解更多关于命名的内容?请阅读命名教程

全面控制字体菜单顺序

像我上面提到的,“字重”下拉菜单决定了字体家族子菜单中的顺序,至少是在 Adobe 应用程序中。但是如何决定的?嗯,是通过改变下拉菜单旁的灰色小小灰色数字。这数字称作“字重类型”。来仔细看一下:

简而言之,较小的数字=较细的字重=较高的菜单位置。另外,让事情变得更复杂的,下面一行的“宽度类型”会优先于字重类型。不过如果我们只应用一个字重轴,这个也就不重要了。

不过,这里有一个隐藏的坑。下拉菜单中的一些选项会导向同样的字重类型:

ExtraLight、Thin、UltraLight:250
Light:300
Normal、Regular:400
Medium:500
DemiBold、SemiBold:600
Bold:700
UltraBold、ExtraBold:800
Black、Heavy:900

所以说如果我们有两个极细的字重,该如何区分 ThinUltraLight 呢?两种情况下的字重类型都会是 250,字体菜单顺序将无法确定。

不要怕,有一个简单的解决方法。在窗口下方的“自定义参数”中,点击“+”按钮添加一个新的参数。设置“属性”为 weightClass,“值”则稍大或稍小一些,比如 255245。记住:值越小,会导致其在字体家族子菜单中的位置越高。

命名教程中了解关于宽度类型的更多信息。

线性分布、卢卡斯分布和巴勃罗分布

好,我们已经知道了如何在插值轴上选择一个点。但是我们怎么知道什么样的插值点更好呢?设想我们有一细一粗两个母版,我们用其值作为 Ultralight 和 Heavy 的子样,然后我们要在两者之间的具体什么地方放置 Light、Regular、Medium、Semibold 以及Bold子样?

作为第一步,看上去平均分布是一个不错的开始。所以相邻的字重值之差相等,比如细母版为 20,粗母版为 140,那么子样值应该为 20、40、60、80、100、120 和 140。子样之差都是 20.我们称这种方式为字重的线性分布,或等差分布。不过,诶呀,它看上去并没有那么好:

序列中段的子样之间差异太小,不幸的是这里又是最重要的部分。他们看上去有点太像了,我无法说出究竟哪个应该是 Regular、哪个是 Book 或 Bold。显然,我们需要更好的插值方式。

来了解一下插值理论吧。伟大的卢卡斯·德·格鲁特[Luc(as) de Groot]指出,重要的并不是字干的粗度差,而是增长比率。上例中,第一级 20 到 40 增长了 100%,而第二级 40 到 60 只增长了 50%。这个比率逐渐下降,到了最后 120 到 140,我们得到的增量仅有 16.67% 了。为了寻找更好的方案,德·格鲁特建议保持增大比率不变(至少对于垂直字干而言)。这就是著名的“卢卡斯公式”或“卢卡斯分布”[Luc(as) distribution]。根据这一理论,视觉上的相对差异保持不变,而绝对差异初始很小,在接近序列末端时则增大:

显然有所改善。关于这个结果,你能说出最糟的事情便是“细字重太多了”。很对,我们可以去掉一个,或者也可以整体上少做一档。好吧,必须承认,最粗的两档间差距太大了。尽管如此最后三个字重可以构成一套很好的 of Regular、Semibold 和 Bold。这个方案总是这么有效吗?

“并不。”无与伦比的巴勃罗·英帕拉利(Pablo Impallari)说。他认为,如果你在细和粗之间插值,卢卡斯分布会导致最粗端相邻两档间的差别过大。换句话说,从看上去是 Semibold 的粗度立刻跳到大多数人会认为是 Heavy 的粗度。我们可以在这两只之间轻松放下另一个子样。

换句话说,如果插值范围是从极多白空间、极少黑图形(细字重)一直到极少白空间、极多黑图形(粗字重),那么我们就需要让轴两端的档位之间差别更小一点。毕竟,最细字重一端的一点小小增量便可能导致字干粗度加倍,而最粗字重一端的小小增量则可能让内白空间减半。所以在细字重这边,我们需要一个更像卢卡斯分布的方案,粗字重这边则需要更接近线性分布。数学家们会去计算这两种分布方式之间的所谓反弯曲线,在字体领域,它就被称作“巴勃罗分布”(Pablo distribution):

换句话说,巴勃罗·英帕拉利的曲线是从卢卡斯分布到线性分布的逐步插值。你可以前往 mekkablue 脚本集,使用“Masters”(母版)中的“Insert Instances”(插入子样)脚本。该脚本会直接在“字体信息”窗口的“字体子样”选项卡中插入相应的子样。

不论你用哪一种方式,请以它作为出发点。对于不同的设计而言,要走的路也相差悬殊。最终,还是要靠你的眼睛来决定字干粗度插值的精确分布。

细字重时停用网格

节点会自动对齐网格,从而对其坐标值进行取整,而这会尤其影响到极细的字重(Hairline、Thin 以及 Light)。对于细字重来说,一个单位就已经很多了,而且会在去除重叠所产生的节点对齐网格时产生扭曲。所以,如果你的插值中有非常细的子样,考虑将“文件 > 字体信息 > 其他设定 > 网格间距”设置为 0,从而禁用坐标值强制取整。或者更好的方法是,仅在细字重的子样中禁用:在“文件 > 字体信息 > 字体子样”中,为相应子样添加一个名为 Grid Spacing 的自定义参数,将其“值”设为零即可:

重要备注:更精细的网格仅可导出 OpenType/CFF 字体,即使用 PostScript 轮廓的字体。Glyphs 会将其以 .otf 后缀保存。请注意,有些软件对于更精细的坐标网格会出现问题。特别是在涉及到 Quark XPress 和一些老旧的打印机驱动(例如 BR-Script 驱动)的 PDF 创建中,会出现十进制坐标方面的问题,可能会在每个路径的起始点区域产生一个小小的凹陷。

而 OpenType/TT 字体,即使用 TrueType 轮廓的字体,首先就不具备精细网格的功能。在所有 .ttf 字体中,坐标都会被四舍五入。

哦呼,现在我们该喝杯咖啡休息一会儿了。


示例字体 LACA TEXT 谨感谢 NOVA TYPE FOUNDRY 的 JOANA CORREIA 提供。

2013-12-14 更新:删除了一段“插入子样”脚本的用法描述,因为在最新版本中已经不再必要。
2015-07-20 更新:针对 Glyphs 2 更新。
2018-11-10 更新:更新了截图,增加了在编辑视图中预览和 Grid Spacing 参数得分截图,重新组织了关于命名的一节,添加了安装字体的警告以及前往字体缓存教程的链接。

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