向字体中添加字符形

教程
作者:Rainer Erich Scheichelbauer
en fr zh

9 十一月 2016

There are quite a few ways of adding new glyphs to your font. Here is a pretty handy overview.

有好多种方法在字体中增加字符形,让我们从效果最显著的方法开始介绍:

从左侧边栏添加

添加新字符形的最好方法,应该就是通过字体视图右侧边栏中的列表和分类添加了。有些分类和语言条目以及过滤器上标有数字,指示这一群组中的多少字符形已经添加到字体中、以及一共应该有多少字符形。例如,“8/24” 表示群组中共有 24 个字符形,其中 8 个已经在字体中了。

右键单击任意带有数字标记的条目,你会看到一个列表,显示了该群组中记录的、但还没有出现在字体中的缺失字符形。选择其中任一字符形,或多个字符形(点击并拖拽,或按住 Shift 或 Cmd 单击来多选),或全部(Cmd-A),然后点击“生成”按钮或按回车键来将其添加到字体中。

有三种字符形群组:分类、语言和过滤器。

  • 分类比如字母、合字和数字,主要用于缩小“字体”标签页中显示的字符形数量。其中有些条目带有数字标记,可以通过右键单击来添加缺失的字符形。
  • 语言帮你了解是否已经完全覆盖了某种语言、某种语群甚至整个书写系统。它们通常会包含一些次级群组,由技术上或语言学上的原因所分得。几乎所有语言分组都带有数字标记。
  • 在最下面,是可以自定义的过滤器。过滤器分为智能过滤器清单过滤器。后者只是单纯的字符形名称清单,带有数字标记。

分类语言是预定义的,但你也可以添加自己的侧边栏条目清单过滤器则很容易创建:单击左下角的齿轮图标,选择“添加清单过滤器”:

在随后出现的对话框中,为你的清单过滤器取一个名字,然后添加字符形名称,每行一个:

Glyphs 会使用当前所选字符形的名称,来预先填充对话框。当然,前提是你选择了某些字符形。当你选择字符形名称时,请确保它们是可用的

这些侧边栏条目的共同优点是它们在所有的 Glyphs 文件中都可用。换而言之,它们会让你字体中的字符集保持一致,也可以跨多个文件来同步字符集。

添加字符形变体

变体字符形的名称应该与相应的原始字符形相同,除了附加的点后缀名。由于变体字符通常没有分配 Unicode 编码,因此无法通过键盘输入,所以必须通过 OpenType 特性(例如风格变体)来调用。点后缀名通常反映 OpenType 特性的名称,例如,adieresis 的第一组风格变体名为 adieresis.ss01

提示:Glyphs 可以根据字符形名称的后缀名来自动生成某些 OpenType 特性的代码。有关特性的完整列表以及触发方式,请参阅 Glyphs 手册的附录。

一种快速创建字符形变体的方式,是在字体视图或编辑试图中选择一个或多个字符形,然后选择 “字符 > 复制字符形”(Cmd-D)。 Glyphs 会为所选字符形创建副本,后缀名为 .001;如果 .001 已经存在的话,则为 .002,以此类推。创建之后,副本字符形会自动选中,以便进一步处理。

要想快速更改副本字符形的后缀名,请保持选择,然后执行 “编辑 > 查找 > 查找和替换”(Cmd-shift-F)。在对话框中搜索副本的后缀名(如.001),并将其替换为所需要的后缀名:

“添加字符形” 对话框

选择 “字符 > 添加字符形…”(Cmd-Shift-G)后,你会看到一个对话框,其中包含一个多功能的文本框。在这里,你可以通过多种方法添加任意数量的字符形:

  • 粘贴或键入的字符(使用空格、换行符或制表符分隔):Ä Ö Ü ä ö ü ß
  • 字符形名称:a.ss02 adieresis.ss02 aacute.ss02
  • 带冒号的 Unicode 范围:a:zuni0300:uni033F
  • 配方y.alt+dotbelowcomb=ydotbelowf.connect+f=f_f.liga

当你单击 “生成” 按钮后,相应的字符形将会被添加到字体中,根据内置的字符形数据库,它们的名称将会转换为人类可读的字符形名称,也称 “优化命名”。名称转换也会作用于字符形的旧版名称或生产名称,例如 uni0421dotlessi。如果你想防止名称自动转换,请激活“文件 > 字体信息 > 其他 > 使用自定义名称”(Cmd+I)设置。

如果你知道想要添加字符形的 Unicode 编码,可以键入 uniXXXX 来插入 0000 到 FFFF 之间的字符形,或 uXXXXX 来插入 10000 及以上的字符形。

这种方法除了是使用 “配方” 的唯一途径外,也非常适用于批量创建外部获得的 Unicode 码集和字符形清单,但不想永久添加到侧边栏的情况。另外,如果你知道如何输入某些字母,但不知道它们的字符形名称,这个方法便是最快捷的方法。

从字符形信息添加

通过 “窗口 > 字符形信息”,你可以看到内置的字符形数据库。每个条目都列出了字符形名称、Unicode 编码、类别和子类别、所属文种,以及其部件构成(如果有的话):

使用搜索栏查找字符形名称、Unicode 值或字符。选择列表中的一个或多个字符形(点击并拖动,或按住 Shift 或 Cmd 单击来选择多个条目),然后按下 “添加到字体” 按钮。这就行了。

这样,你就可以访问 Glyphs 已知的任何字符形,即使它没有在侧边栏中的任何位置列出。如要寻找某文种数据库中所包含的全部字符形,“字符形信息”窗口也是一个快捷的方法,只需输入文种后缀名即可,例如 -deva

如果你试图创建的字符形中,有些(或全部)已经在字体当中了,Glyphs 会询问你想要做什么:

“添加” 按钮

若要添加单个字符形,你也可以按下字体标签页下方小小的加号按钮。Glyphs 会在字体中添加一个名为 newGlyph 的字符形。如果你没看到有什么新增内容,可能需要向下卷动到 “其他” 分类。或者,也可能需要切换回“全部”分类。

字符形名称已经处于选中状态,所以你可以立即键入想要的字符形名称。如果你稍作等待,就会出现自动完成选项:

和 “字符 > 添加字符形” 类似,当你按下回车键时,这个文本框也会将所输入的旧版名称或者甚至纯字符转换为合适的优化命名。

再删除字符形

对刚刚添加的字符形不满意?在字体视图中,选种它们,然后按下 “移除” 按钮,即 “添加” 按钮旁边标有减号的按钮。或者,按下 Cmd-Delete 来移除所选字符形。该快捷键同时适用于编辑视图。确认随后出现的窗口后,你就删掉了那些多余的字符形:

编写脚本

对于你们当中那些会写脚本的人而言,可以很容易地通过脚本创建字符形。给出一个 GSGlyph 类的实例,并将 GSGlyph 对象附加给 GSFont 对象的 glyphs。听上去很复杂?呐,以下是一个清晰明了的 Python 示例:

myGlyph = GSGlyph()
myGlyph.name = "estimated"
myGlyph.unicode = "212E"
Glyphs.font.glyphs.append(myGlyph)

然后你就可以进行调用 myGlyph 的图层等操作。

或者,你可以直接创建一个带有名称的 GSGlyph 对象。所以,你可以将示例代码的前两行替换为 myGlyph = GSGlyph("estimated")。有关这方面的更多信息,以及许多与 Python 相关的内容,可以在 docu.glyphsapp.com上找到。

AppleScript 中相同的内容将如下所示:

tell application "Glyphs"
    tell font of first document
        make new glyph at the end of glyphs with properties {name:"estimated", unicode:"212E"}
    end tell
end tell

祝你们玩得开心!


2018-07-28 更新:修改了一个误导的措辞,添加了一个遗漏的单词。
2018-09-03 更新:细微格式修正。

Translation: 杨翕丞 Yang Xicheng
Revision: 刘钊 Liu Zhao
Updated by Willie Liu (刘育黎) from 3type (三言).