符号附着

  • by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

有两种方式制作有读音符号字母。第一种,你可以直接将它们预置为复合字符轮廓。我们已经在变音符号的教程中讲述了这部分内容。在CFF输出的时候,这些部件会被解构,并且在必要的时候,一些重合的部位会被拆分。尽管这样意味着在字体文件中会有许多路径的重复,但这个方法仍被广泛使用,因为这是最兼容的方式。并且如果你不能够预测你的字体将在什么样的渲染环境中使用,你也许会选择坚持使用该种方式。

第二种方式,你可以直接保持那些符号和基础字符轮廓在周围不变,渲染机制可以自行维持这些构件的位置。这就叫做 “ 符号附着 ”。这个巨大的优势,正如你可以猜到的,是可以很大程度上改变最终字体文件的大小。你甚至可以自由地把任何读音符号通过“符号对基础字符附着”的方式放置在基础字符轮廓的周边。甚至,你可以把读音符号重叠放置。这个也有个专业称谓,字体专家们把这个称作 “ 符号对符号附着 ”。

这样有趣的内容的劣势便是缺乏应用技术的支持。但是渐渐地,越来越多的软件正在支持符号附着。所以,对于这个现状的最好解决方法便是把两样内容置入字体之中——预置的复合体以及附着的符号。

加入组合读音符号

在制作符号附着时,我们需要组合符号,或是无间距符号。符号附着不用于已有的调整过间距的符号。

通常,组合符号会在词尾写上’comb’,并且,除了那些拥有自己的组合符号的字形来说,一般存在于以下的Unicode范围中:

  • U+0300-036F COMBINING DIACRITICAL MARKS
  • U+20D0-20FF COMBINING DIACRITICAL MARKS FOR SYMBOLS
  • U+1DC0-1DFF COMBINING DIACRITICAL MARKS SUPPLEMENT
  • U+FE20-FE2F COMBINING HALF MARKS

“但是我需要哪些加入到我的字体中的语言里呢?”,你们也许会问。不要害怕,在侧栏中的语言种类中,你可以通过右击语言条目来添加。

你也许会想要向下滚动查看组合符号。举个例子,对于西欧拉丁文来说,这些是必须具备的:

acutecomb
cedillacomb
circumflexcomb
dieresiscomb
dotaccentcomb
gravecomb
ringcomb
strokeshortoverlaycomb
tildecomb

添加锚点

基本上,我们所需要掌握的就是一套既定的位置,这些位置使得字母、符号可以连接。你可以通过添加锚点到基础字母和读音符号来完成这件事。也就是说,锚点起到位置标记的作用,并且告诉Glyphs这些字母,符号在哪里连接在一起。你可以快速地添加锚点到已选的字符轮廓通过Glyph > Set Anchors (Cmd-U)。如果你认为锚点过多,你可以按住option键同时选择Glyph > Reset Anchors (Cmd-Opt-U)。

在字符轮廓中的锚点有它们的特定的名称。对于一个最基本的字符轮廓来说,它会有top顶部, bottom底部, center中间和ogonek尾部这几个锚点。当锚点被选中时,你可以看到符号云与当前的字符轮廓的锚点连接:

符号轮廓拥有同样名称的锚点,除了前面带有下划线名称,比如 _top, _bottom, _center和_ogonek。实际上,符号包含了两种锚点,所以这些锚点可以重叠在一起。

对我们来说最重要的是顶部和底部的锚点,以及它们在符号中带有下划线的变体。默认的锚点可以是一个很好的开始,并且Glyphs有一个很大的内置数据库,其中的锚点和字符轮廓相对应。当你如上所述添加默认的锚点,Glyphs甚至会将它们放置到默认的位置。所以,你也许需要反复多次调整锚点的位置。如果你想要添加自己的锚点,你可以通过右击然后在菜单中选择“添加锚点”。

现在,我们来看一下整个过程:带有下划线的锚点会试图去连接其对应的在最近的字符轮廓范围内的基础锚点。如果并不能立刻寻找到对应的锚点,它会往前追溯那个符号,直到寻找到基础字母。

例如说,acute(’,字符轮廓名称为acutecomb)可以在小写字母e上面找到它的准确的位置,它会连接它的_top锚点到基础字符轮廓的top锚点。如果有一个diaeresis( ¨ ,又名 dieresiscomb)在它们之间,那么它会使用dieresiscomb中的top锚点,如果有的话。

所以,请明智地选择锚点的位置。我们强烈的提出以下几点建议:

  • 尽可能地保持锚点在垂直的网格线上,比如,保持bottom底部锚点在基线上,top顶部锚点在小写字母的x高或上伸部,大写字母的大写字高。
  • 如果你已明智地把_top锚点放在了x高上,保持你的小写字母的读音符号在x高之上。
  • 在大写字母的读音符号中使用大小写变体:复制读音符号(Cmd-D),把它们移到大写高度的上方,重新设置锚点(Cmd-Opt-U),并且改变它们的后缀为.case。现在当你组合大写复合体时,如果可以的话就使用.case的变量。你可以通过Glyph > Make Component Glyph (Cmd-Opt-Shift-C)来重新组合已有的复合体。

获得有间距读音符号

从 Glyphs 2.0 开始,组合符号变为默认状态。然而,出于兼容性的原因,你的字体中仍然需要有间距读音符号(在拉丁文中,因为历史原因,有13个带有字符间距的非组合符号,他们分别是acute, breve, caron, cedilla, circumflex, dieresis, dotaccent, grave, hungarumlaut, macron, ogonek, ring 和 tilde。今天使用的符号只有无间距组合符号,但是那些传统符号,你依然需要准备好它们。你输入基本字符¨前,当你键入拉丁符号,你就能看到它们。——Rainer Erich Scheichelbauer备注)。

在你完成了组合符号之后,只需添加自动生成的传统符号 legacy marks 即可。这是如何实现的呢?因为有间距读音符号是由组合读音符号组成的。

输入组合读音符号

为了测试字体中的符号附着,你需要能够在一个应用程序,比如InDesign中输入无间距读音符号。首先,输出你的字体到 Adobe Fonts 字体文件夹,然后创建一个新的文件,输入一个基础字符比如a,然后加入组合读音符号,就像这样:

第一步,从你的工具栏中的输出方式主菜单中选择“显示文字与表情符号”。如果你没有这个菜单,可以在“系统偏好设置>键盘>输入法”,然后勾选“在菜单栏中显示输入法菜单”:

然后,如果Unicode没有在左侧栏中显示,点击左上方的齿轮菜单,选择“自定义列表”。

并且在表单中选择“ 代码表 > Unicode ”:

现在你就可以在左栏中选择 Unicode了,下滑到 0300 的区间(在拉丁文和希腊文之间),选择其中任何一个组合读音符号,然后双击插入:

不用担心,你只需要这样设置一次。InDesign让你可以分别地选择和设置这些组合读音符号的颜色:

有些非常聪明的人通过Ukelele(来自SIL的一群热心人)建构了他们自己的键盘布局。不过这又是另一件事了。

零宽度?

组合的无间距符号理应是零间距的。并且,他们应该是左侧对齐的(例如又一个左侧字面和字身的侧间距),所以他们可以被置于任意一个字母的上方。这其实也是当符号功能不起作用时的权宜之计。

然而:在.glyphs文件中,你不需要设置组合读音符号的宽度为0。你可以让应用程序来解决这个问题:在输出的时候,Glyphs会自动地收回LSB到RSB。这使得编辑工作变得更容易,并且你只需要做好RSB就可以了。万岁!


于2016-02-19更新:更新了屏幕截图。
Translator/蔡星宇 Cai Xingyu
Reviser/刘钊 Liu Zhao