多母版(三):建立子样
Now that you know how to create a Multiple Master setup and keep your outlines compatible, it is time to determine your instances. As it so happens, we have prepared a step-by-step tutorial for you.
好的,现在我们已经设置好了用于插值的母版,然后确保了字符形中的路径是兼容的。现在是时候确定我们的子样了。每个子样会成为我们所要生成的字体家族中的一款字体。
设置子样
好,我们开始吧。前往“文件 > 字体信息 > 字体子样”并点击左下角的“+”按钮添加子样:选择“为每个母版添加子样”然后选择“添加子样”,或者直接添加。Glyphs 会插入与定义好的母版数值相同的子样,或是直接用默认值添加一个“Regular”子样:
现在,在一个子样中有三个超级重要的文本字段。第一,“样式名称”在每一个字体家族中必须彼此不同。慎重选择样式名称,因为很多内容都要以之为依据。你可以使用大写字母和小写字母,也可以用空格。但是为了实现更好的兼容性,最好在样式名称中使用 ASCII 字符。
然后,看一下名称下方的“字重”下拉菜单。乍一看,这似乎是“样式名称”字段的重复,但并不是。它会决定它旁边小小的灰色数字,而这个灰色数字又决定了字体菜单中的顺序,至少是在 Adobe 应用程序中的那个。
最重要的是,这里有一个“字重”的插值。还记得我们在母版值中使用的字干宽度吗?本例中,是 90 和 300。字重插值必须在这区间内。换句话说,你在这里输入的数字,就会成为这款字体的字干宽度!很酷。
所以,我们使用窗口左下角的“+”按钮添加一些子样。然后,我们需要确保每个子样都有互不相同的样式名称、字重设置和介于 90 和 300 之间(也包括 90 和 300,或者其他你所设置的母版值)的插值。
然后回到主窗口中的编辑选项卡,通过(1)点击窗口左下角的眼睛图标,(2)在图标旁边的弹出菜单中选择一个子样,来打开预览区域。拖动分隔线来调节预览区域的大小。预览会一直将当前字符形显示在中心。
或者,更好的方法是,只要导出到 Adobe 字体文件夹,然后所有字体就能立刻在 InDesign 或任何其他运行中的 Adobe 应用程序中调用了。很酷。
再次提醒,不要在系统中安装你所导出的字体,即使用“字体册”或第三方字体管理软件,以便避免字体缓存的麻烦。
保持样式名称简短
一条好建议:保持你的样式名称尽可能短以避免在 Windows 中导致问题。要多短?嗯,如果字体家族名称+样式名称在一起的总长度不超过 20 字符,那就是安全的。如果名称太长,Windows 可能会认为字体不可用。我们曾收到过不一致的报告,家族名称似乎要被严格限制在 29 字符,但有时更短的总长度就已经导致了问题。找出它的唯一办法就是在 Windows 中安装来测试。如果出现了这样的错误,考虑缩短家族名称和/或样式名称:
不过有时,你无法保持名称足够短。比如“紧缩极细”的样式名称会是 Condensed Ultralight
。除非你的家族名称极短,不然就会出问题。
在这种情况下,可以使用缩写作为样式名称。比如,用 Cd
代表 Condensed
、Xt
代表 Extended
、Lt
代表 Light
、Rg
代表 Regular
、Md
代表 Medium
、Sb
代表 Semibold
、Bd
代表 Bold
、Hv
代表 Heavy
、Bk
代表 Black
、Ultr
代表 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
所以说如果我们有两个极细的字重,该如何区分 Thin
和 UltraLight
呢?两种情况下的字重类型都会是 250,字体菜单顺序将无法确定。
不要怕,有一个简单的解决方法。在窗口下方的“自定义参数”中,点击“+”按钮添加一个新的参数。设置“属性”为 weightClass
,“值”则稍大或稍小一些,比如 255
或 245
。记住:值越小,会导致其在字体家族子菜单中的位置越高。
在命名教程中了解关于宽度类型的更多信息。
线性分布、卢卡斯分布和巴勃罗分布
好,我们已经知道了如何在插值轴上选择一个点。但是我们怎么知道什么样的插值点更好呢?设想我们有一细一粗两个母版,我们用其值作为 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 (三言).