自定义参数

教程
作者:Rainer Erich Scheichelbauer
en fr zh

19 二月 2016 发布日期: 13 七月 2012

你应该在 “字体信息” 中看过这个内容了。不过……这到底是做什么用的?自定义参数可以做一些漂亮的事情。这里是一篇方便的概览。

使用自定义参数,你可以更精确地设置字体信息,可以在导出时触发滤镜,做其他一些很酷的事情,在导出时对字体进行批量处理。这样,你就可以进行非破坏性的工作。

自定义参数的结构

在 “文件 > 字体信息” 中添加自定义参数,在 “字体”、“母版”、“子样” 选项卡中都可以。要添加参数,点击 “自定义参数” 框旁边的加号按钮。

参数列表中会出现一个新的条目,带有一个 “属性” 和一个 “值”。属性是参数的名称,值是它的内容。如果你想知道哪些参数可用,请单击 “新值” 旁边的菜单弹出符号:

也可以使用键盘输入属性名称。该属性将保持灰色,直到 Glyphs 将其识别为注册参数名称为止。

单击或按 Tab 键进入 “值” 字段,输入参数的内容。根据参数的类型,你可以直接在字段中键入它,或者将会出现一个对话框列单:

可以拖动来重新排列参数。通常,顺序无关紧要,但是对于 “滤镜” 参数却会有效果(见下文)。

“字体信息” 窗口 “字体” 选项卡中的参数对整个字体生效,但会被 “子样” 选项卡中的同名参数覆盖。

“母版” 选项卡中的几乎所有参数都是数字值,因为它们会在多母版设置中被插值。如果在此处使用参数,请确保它们在不同母版间兼容。否则,Glyphs 将无法插值。这里可以控制许多竖向量度值。与字体参数一样,母版参数会被子样中的同名参数覆盖。

“子样” 选项卡中的参数仅直接应用于会被导出的相应字体上。子样参数将覆盖母版参数和字体参数。

自定义参数可用于多种目的。其中大多数让你可以选择设置(或帮助计算)最终 OpenType 字体的值,并在导出时应用。 例如,glyphOrder 影响字符形在导出的字体文件中的顺序。

某些参数仅影响 “编辑” 标签页中字体的外观。 例如,EditView Line Height 让你可以选择在 “编辑” 标签页中设置多行编辑的行距。

有关带有说明的参数的完整列表,请查看手册的附录,或单击参数列表旁边的帮助按钮。

UFO3 属性

UFO3 字体信息技术标准中定义的所有属性都可以在 Glyphs 作为自定义参数调用。输入时,可以方便地省略掉表前缀,例如 postscriptUnderlineThickness 只需要写 underlineThickness 就可以了。

我个人最喜欢的参数之一是 sampleText(或 UFO 技术规范中的 openTypeNameSampleText)。假如说,我想在字体中添加这样一句范例文本。我只需要前往 “文件 > 字体信息 > 字体”(Cmd-I)并点击加号添加一个自定义参数。选择 sampleText 作为属性。我可以用键盘输入,或者从弹出菜单中选择更好。选择一个好玩的句子作为值。然后导出字体,在 “字体册” 中打开。我会看到熟悉的安装对话框,显示我刚才输入的范例文本:

另一个例子。如果你经常推出字体,或在 MyFonts之类的平台上销售字体,则可能需要考虑在 Microsoft 注册一个字体供应商 ID。你得到的是一个四个字母的单词,可以将其用作供应商 ID 并放入字体中。将 vendorID(或其完整的 UFO3 名称,openTypeOS2VendorID)作为属性,并将你的 Vendor ID 作为值。

滤镜

你知道如何使用 “滤镜” 菜单中的滤镜。有时候,最好不要立即应用它们,而是将它们放入 “自定义参数” 中,在导出字体时自动执行。只需进入 “文件 > 字体信息 > 子样”(Cmd-I),然后添加一个自定义参数。

选择 Filter 作为 “属性”。“值” 具有以下的一般结构:名称; 值1; 值2,即滤镜的名称,后跟其值,以分号隔开。大多数滤镜都支持作为自定义参数,甚至大多数第三方滤镜都可以。这是内置滤镜可能设置值的列表:

AddExtremes; #添加极值点
OffsetCurve; <x>; <y>; <创建笔画>; <位置> #偏移曲线
RemoveOverlap; #去除重叠
Roughenizer; <线段长度>; <x 偏移>; <y 偏移> #粗糙化
RoundCorner; <半径>; <视觉修正> #圆角
RoundedFont; <字干> #圆角字体
Transformations; LSB:<单位数>; RSB:<单位数>; ScaleX:<百分比>; ScaleY:<百分比>; Slant:<度数>; SlantCorrection:<布尔>; OffsetX:<单位数>; OffsetY:<单位数>; Origin:<值>; #变换;左边距;右边距;X 缩放;Y 缩放;倾斜;倾斜修正;X 偏移;Y 偏移;原点
  • <> 之间的所有词都为数字值。
  • <创建笔画><视觉修正><布尔> 的布尔值均为: 1 为是,0 为否。
  • OffsetCurve<位置> 使用较小的小数,0.0 等于 0%,1.0 等于 100%。
  • 但是 <百分比> 值要使用 0 到 100 之间的数。
  • Transformations 中,你不需要设置全部的值,只设置你需要的即可。

所有内置的(以及大多数第三方的)滤镜都接受附加的 include:exclude: 参数,加在该行末尾,后接逗号分隔的字符形名称清单,例如:

Transformations; LSB:-20; RSB:+20; include:A,B,C

本例将使左侧边距减小 20,并将右侧边距增加相同的量,从而达到将字符形向左移动的效果。但这仅适用于 A、B 和 C。

拷贝粘贴参数

只需使用 Cmd-C 和 Cmd-V 即可在母版、子样或字体之间拷贝及粘贴参数。拷贝之前,请确保其选中。并在粘贴之前单击 “自定义参数” 区域,以便 Glyphs 知道你是要粘贴参数数据。

如果你确实尝试粘贴在 “母版” 选项卡中,而未将焦点放在 “自定义参数” 区域上,Glyphs 会正当地抱怨:

可以一次在多个母版或多个子样中粘贴。按住 Shift 或 Cmd 键单击左侧边栏中列出的母版或子样,然后单击空的 “自定义参数” 区域,将焦点移到该区域上,并粘贴。

不巧的是,只要选择了多个母版或子样,Glyphs 就无法显示该区域的内容。因此,要检查粘贴是否成功,可以使用方向键快速切换母版或子样,并注意看各自的 “自定义参数”。

甚至可以将参数粘贴到文本编辑器中。你将获得如下内容:

(
    {
        Filter = "GlyphsFilterOffsetCurve; 40; 40; 1; 0.8;";
    },
    {
        InterpolationWeightY = 80;
    },
    {
        "Scale to UPM" = 800;
    }
)

你可以看到它要做些什么。如果对于文本编辑器很熟悉,觉得在窗口中浏览所有参数很繁琐,则可以在编辑器中快速批量编辑 “自定义参数”,或使用脚本等来计算它们。最后,只需拷贝并粘贴回去即可。


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