数字:分数

教程
作者:Rainer Erich Scheichelbauer
en fr zh

13 十一月 2013 发布日期: 23 七月 2013

Add numerators, denominators and a fraction slash to your font, and you can type any fraction you want. Neat, isn’t it? Well, you can accomplish this easily with the following step by step tutorial!

那么你已经很好地做完了全部数字,现在是时候添加分数字了。好消息是,你只需要画一次分子,可以将其复用为分母,只要将它们向下移动一点。我们来一步步看一下。

添加分母

首先,为你的定高数字创建副本,只需通过 “字符 > 复制” 命令复制即可,然后通过 “编辑 > 查找 > 查找和替换” 将其后缀 .001 改为 .dnom。然后,将它们缩小。但不要缩小太多,分数字不需要特别小。差不多三分之二的大小在大部分情况下都会表现得很好。

如果你设置了多个母版,你可以利用一些 Glyphs 工具,例如 Tim Ahrens 的 Remix Tools 中的 Scaler。如果仅有一个母版,你可以通过 “滤镜 > 变换 > 变换” 来缩小,然后通过 “滤镜 > 偏移路径” 来补足粗度损失。

这样就差不多了。别忘了全部数字都这样做,并手动调整需要修正的地方。重复这个过程,直到你满意为止。

祝贺你!现在,我们又多了一组数字:分母!

添加分子

再看一下分子。它们和你的分母看上去一样,只是位置更高,通常会顶到定高数字的高度。为了达到这个目的,我们只需要创建分母的部件副本。选择 “字符 > 添加字符形”(Cmd-Shift-G)并在屏幕上出现的对话框中输入(或复制粘贴):

zero.dnom=zero.numr
one.dnom=one.numr
two.dnom=two.numr
three.dnom=three.numr
four.dnom=four.numr
five.dnom=five.numr
six.dnom=six.numr
seven.dnom=seven.numr
eight.dnom=eight.numr
nine.dnom=nine.numr

按下 “生成” 按钮,你的字体里就有分子字符形了!唯一的问题是,它们的位置还是有点低。所以我们将它们向上移动一点。确保你的分子处于选中状态,选择 “滤镜 > 变换 > 变换” 并将它们沿 y 轴向上移动:

你可以在主窗口中看到实时预览,因此你应该能够立即确认是否已经移动到了合适的高度。

添加分数线字符形

分数线 fraction 字符形(Unicode U+2044)和斜杠 slash 不同。首先,它的左右边距为负值。这样分子 numr 和分母 dnom 数字可以很好地和它结合。同时,笔画的粗细也要配合小型数字调整。在大多数情况下,这意味着 fraction 要比 slash 更细。最后,slash 通常角度更平坦,也就是说,它不像斜杠那么陡。

输入形如 /zero.numr/zero.numr/zero.numr/fraction/zero.dnom/zero.dnom/zero.dnom 的字串,并将 fraction 字符形调整到分子之下、分母之上的合适位置:

你可能需要调节 seven.numrfractionfractionfour.dnom 之间的字偶间距。某些设计中还需要在nine.numrfraction、以及 fractionsix.dnom 之间做一点调整。你的。你的实际情况可能有所不同。

预组合的分数

为了向后兼容,你也可以添加预组合的分数字,因为其中某些字符是带有 Unicode 编码的。如果你要这样做,可以通过左侧边栏轻松生成它们,或者添加以下字符形:

onefraction onehalf zerothird onethird twothirds onequarter threequarters onefifth twofifths threefifths fourfifths onesixth fivesixths oneseventh oneeighth threeeighths fiveeighths seveneighths oneninth onetenth

生成特性

现在,前往 “文件 > 字体信息 > 特性” 并按下 “刷新” 按钮,即窗口左下角的圆形按钮。你会发现 Glyphs 在 OpenType 特性列表中自动添加了 numrdnomfrac 特性:

按下 “编译” 查看特性代码是否正确。如果正确,你可以导出到 Adobe 字体文件夹并在 InDesign 中测试分数功能。搞定!

简而言之,分数特性实现的效果为:首先,将全部的数字变为分子形式、将 slash 变为 fraction。然后,将 fraction 之后的分子变为分母形式。

这种方法的劣势在于,用户必须明确指定数字/斜杠的组合,再激活分数特性。如果他/她只是打开特性然后开始键入,那么所有数字将不分清红皂白地被转换成分子。不过呢,这就是大多数字体所采取的实现方式。

Tal Leming 的 Fraction Fever 特性

我还想告诉你一件事情。如果你想要使用更加复杂的 frac 特性,克服标准实现方式的缺点,那么请尝试一下 Tal Leming 的 Fraction Fever 2。它的功能包括,能识别出形如 “2012/4/12” 的日期格式并将其从分数特性中排除,也能很好地渲染数字和分数的组合比如 “二又二分之一”。所以,用户可以一直开启 InDesign 中的 “分数” 功能,只管键入数字。该特性会找出哪些部分会变成分数,哪些部分保持原样。

要在你的字体中使用这个代码,请按此步骤操作:

  • 确保你的字体中有这些字符形:窄空格 thinspace(和空格 space 类似,但是更窄)、连字符 hyphen、斜杠 slash
  • 取消勾选 frac 中的 “自动特性生成” 并删除仍保留其中的代码
  • 在特性中插入 Tal 的代码
  • 将后缀名 .numerator.denominator 替换(Cmd-F)为 .numr.dnom
  • 在特性代码中删除 feature frac {} frac; 两行

现在你的分数特性可以做这样的事:

唯一的短处是,你能输入的分子数字的最大个数是预先指定的。默认情况下,这个数字是 10,所以你不能输入一千万亿。真不爽。如果你不理解最后这几句话,或者你不在乎,那么,这也没关系。

实用脚本

mekkablue 脚本中,你会找到两个有用的脚本:

  1. Features > Fraction Fever 2:自动创建 Fraction Fever code 代码。
  2. Build Glyphs > Build Small Figures:如果你有(基于路径的)位于基线上的分母,这一脚本可以帮你以部件形式,一步创建其他全部的小型数字(上标、下标和分母)。请阅读上下标数字教程来了解更多,其中有一节专门介绍如何使用这一脚本。


示例字体:MARTHA,谨感谢 LISA SCHULTZ 提供。

2013-11-13 更新:更新了 Tal Leming 关于 Fraction Fever 2 的博文链接。
2020-03-25 更新:更改标题。添加了 “实用脚本”。

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