在字体中增加字符轮廓

  • by Rainer Erich Scheichelbauer
  • Tutorial

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

从侧栏添加

可能添加新字符轮廓的最佳方法是通过使用在“字体”选项边栏中的列表和类别。一些类别、语言条目和列表有数字标记,指示这个组中已经有多少字形符号,以及总共有多少个字形。比如,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),你将会看到一个包含多用途文本输入字段的对话框。在其中,你可以通过各种方法添加任意数量的字符轮廓:

  • 粘贴或者打字输入(使用空格、换行符或者标签作为分隔符): Ä Ö Ü ä ö ü ß
  • 字符轮廓名称:.ss02 adieresis.ss02 aacute.ss02
  • 用冒号圈定Unicode码范围: a:z or uni0300:uni033F
  • 设定方法: y.alt+dotbelowcomb=ydotbelow or f.connect+f=f_f.liga

当你单击“生成”按钮后,相应的字符轮廓将会被添加到字体中,根据内置的字符轮廓数据库,它们的名称将会转换为人们可读的字符轮廓名称,也称为好名字。这包含遗留或生产的字符轮廓名称,像是uni0421或者dotlessi。如果你想防止名称的转换,请激活设置:选择“文件”>“字体信息”>“其他设置”>“使用自定义命名”(Cmd+I)

如果你知道你想添加到字符轮廓上的Unicode码,你可以打字输入“uniXXXX”
你可以键入unicode码如:uniXXXX 从0000 到 FFFF, 或者从 Unicode码如 uXXXXX 10000到1000以上。

除了采用设定方案的唯一方法外,这个方法也非常适用于覆盖从其他地方采集的Unicode码集和字符轮廓列表,但是不能永久添加到侧栏。另外,如果你知道如何输入某些字母,但不知道它们字形轮廓的名字,这个方法便是最快捷的方法。

从“字符轮廓信息”添加字符轮廓

通过“窗口” >“字符轮廓信息”,你可以看到内置的字符轮廓数据库。每个条目都列出了字符轮廓的名字、Unicode码、类别和子类别、脚本及其组成(如果适用):

使用查寻栏来搜索字符轮廓名称、Unicode码或者字符。在列表中选择一个或者多个字符轮廓(单击并拖动,或者按下Shift或Cmd同时单击多个条目),然后点击“添加到字符轮廓”按钮。

这样,你可以访问任何该应用程序已有的字符轮廓,即使它还没有在边栏中的任何位置显示。“字符轮廓信息”窗口也是一个搜索在脚本数据库中的所有字符轮廓的好方法,只需输入脚本扩展名,例如输入 -deva。

如果你想创建的一部分或者全部字符轮廓已经添加到字体里了,Glyphs将会出现下列对话框,问你想要做什么:

添加按钮

要添加单个字符轮廓,你也可以点击“字体”选项下方的小加号按钮。Glyphs将会添加一个叫做“新字形”的字符轮廓到字体。如果你最初没有看到任何内容,你可能需要向下滚动到“其他”类别,或者可能需要切换到“全部”类别。

字符轮廓的名称已经被选择了,所以你可以立即输入所需字符轮廓的名称。如果你稍作等待,就会出现自动完成选项:

类似于“字符轮廓”>“添加字符轮廓”,该条目将使用传统字符轮廓名称或者纯字符轮廓条目,一旦你按下返回键,它们将会转换为正确的名称。

再次删除字符轮廓

你是否对于刚刚添加的字符轮廓不满意?在“字体”窗口,选择它们,然后按下“删除”按钮(减号位于“添加”按钮的旁边),或者按下Cmd+Delete键删除选中的字符轮廓。该快捷方式也适用于“编辑”窗口。确认了下图中的窗口,你就会移除多余的字符轮廓:

脚本

对于脚本编辑者,你们可以很容易的通过举例 GSGlyph class创建一个字符轮廓。并在字符轮廓上追加GSGlyph对象。听起来很复杂?下面给出一个清晰明了的Python编程示例:

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

然后,你可以继续访问myGlyphs的图层等等。

或者,你可以立刻创建一个名称为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

祝你们玩得开心!


Translation: 杨翕丞 Yang Xicheng
Revision: 刘钊 Liu Zhao