与 UFO 格式共事

教程
作者:Rainer Erich Scheichelbauer
en zh

 

The Unified Font Object, a format for storing font data, revolutionized font production. Here is how you can integrate Glyphs into a UFO workflow and profit from features of other apps.

统一字体格式(简称 UFO)是一种以 XML 格式为基础用于存储字体数据的文件格式。它是由字体设计师和开发者 Tal Leming、Just van Rossum 和 Erik van Blokland 共同开发的。虽然版本 3 的技术文档已经发布,但是目前 UFO 2 使用最广泛。

虽然你可以在 Glyphs 一款软件中生成一个字体或者字体家族,但 UFO 格式可以与其他工具进行交换。UFO 格式可以让你有权限使用各种其他工具。这就是为什么 Glyphs 支持 UFO 格式。但是为什么一开始你要这样做呢?很简单:通常,UFO 工具是高度专业化的应用程序,完全致力于特定的任务。这意味着这些工具可以找到 Glyphs 内置但中断了的功能。请阅读以下几个例子。

UFO 不存储一切

记住一点,许多 Glyphs 特定的设置,如果启用或禁用部件的自动对齐,或者像方括号技巧,不能存储为 UFO 格式。所以要格外小心,并在必要时仔细检查你的文件。

非常重要的是:UFO 格式是单一母版字体。多母版的信息不能存储在单个 UFO 文件中。这意味着如果要做插值,则需要为每个母版使用一个 UFO 格式。

偏好设置和文件设置

如果你想准备好进入 UFO 的工作流程,你将会在 “Glyphs > 偏好设置 > 用户设定” 中找到两个重要的选项。它们的共同之处是:它们被应用于在 Glyphs 应用程序中打开的所有非本地文件,比如,具有 .ufo 后缀的文件。

首先,启用选项 “从导入的文件中保留字符形名称”,将会防止 Glyphs 将字符形的名称转换为它自己的命名方案。在一个纯粹的 Glyphs 工作流程中,如果你坚持使用内部的命名方案确实会有一些好处。但是当你在应用程序之间移动很多次,你通常会希望在文件中设置名字。

其次,你可能会希望将部件的位置保留在文件中。换句话说,你可能希望禁用 Glyphs 强制复合字母自动对齐的功能。在这种情况下,选择 “禁用导入的文件自动对齐” 选项是个好主意。

上述两个设置的目的,是在 “文件 > 字体信息 > 其他设置” 中设定相应的两个选项,即 “使用自定义名称”(或者 “不在旧版的 Glyphs 中使用优化命名”),并且 “停用自动对齐”。当然,你也可以在这里手动设置这些选项。

当然,如果你想做与之相反的事情,也就是把你的 .glyphs 文件放到 UFO 上,你可以保持默认的设置,并且充分利用自动对齐和优化命名。

现在我们已经准备好了,我们可以用 UFO 格式采取行动了!

导出 UFO

如果想要创建当前字体项目的 UFO 副本,请选择 “文件 > 导出 > UFO”。在接下来出现的对话框中,你可以选择是否要将字符轮廓名称转换为产品名称。然后在接下来出现的对话框中,你可以选择要保存的 UFO 文件的位置。

“将字符形名称转换成产品名称” 的选项会将人类可读的 “优化名称” 转换成行业标准的名称,比如对于西里尔大写字母 Ж 从优化名称 Zhe-cy 转换为 uni0416。虽然这些名称很难记忆,但是它们更为兼容,并且有些工具可能会希望它们的存在。我们建议:用优化名称测试你的工作流程,如果不起作用,你仍然可以选择转换名称。

重要:请确保软件已更新至版本 1.4.4,该版本中更新了多母版 UFO 导出中的一处错误。

以 UFO 作为保存格式

如果你已经有一个 UFO 文件,你可以在 Glyphs 中打开它,并保持在 UFO 模式。保存键(Cmd+S)将直接以 UFO 格式保存。

你也可以使用 “文件 > 另存为…”(Cmd-Shift-S)将当前活跃的文件保存为 UFO 副本。为了实现这一点,你需要在导出对话框中选择 “Unified Font Object” 作为文件格式。如果 “保存为 UFO” 不可用,比如当一个有问题的文件有多于一个母版的时候,Glyphs 将会警告你。在这种情况下,你需要使用 “文件 > 导出”(Cmd-E)。

一旦你的 UFO 文件准备好了,你就可以使用大量专门的应用程序和工具。

RoboFont

比利时设计师 Frederik Berlaen 的 UFO 编辑器——RoboFont,是为了实现最终工作流程的灵活性而从头创建的。为了实现这一点,他使用易于学习的编程语言 Python,使你构建自己的工具变的非常简单。难怪,对于 RoboFont,在 GitHub 和网上的其他地方都提供了各种各样的插件和脚本。许多扩展程序都列在了 RoboFont 网站上。要了解 API 的功能,请查看 Loïc Sander 的 “参数化字体设计实验” 视频

MetricsMachine

Tal Leming 的 MetricsMachine 是一款完全专注于字偶间距的应用程序。它具有专门的工具用于字偶间距组、字偶间距对的创建、组预览、自适应上下文字串、一系列预设等功能。该应用程序提供了一种比 Glyphs 更加系统和善于分析的方法来进行字偶间距的调整。

该应用程序运行一个 “配对表生成器”,用于创建所选字符形中所有可能的字偶间距配对。一旦你的配对设定好,你可以用上下箭头一步一步的调整字偶间距列表,用左右箭头调整一步 10 个单元的字偶间距,按住 Shift 键改为一步 5 个单元,按住 Option 键改为一步 1 个单元。最终,清单表格功能帮助你掌握你的字偶间距表:过滤并分析你的核心内容。

一个小的问题:Glyphs 所称的字偶间距组(基于所涉及的字符形的一侧),MetricsMachine 称之为组(基于字偶间距对的一侧)。

顺便说一下,你还可以将 MetricsMachine 纳入纯粹的 Glyphs 工作流程中。你需要做的所有事情就是导出 UFO 格式,并且在 MetricsMachine 中进行字偶间距调整。现在,你可以通过选择所有字形并且选择 “文件 > 导入 > 量度” ,将所有的字偶间距信息返回到 Glyphs 的文件中。在接下来出现的对话框中,选择是否要导入字偶间距或者是字偶间距组。

重要提示:所有的字符形都能被影响,它们需要在导入之前被选择。所以,最好的方法可能是简单地选择所有的字符形,然后导入。

Superpolator

虽然你只在 Glyphs 中就可以做多母版字体,但是 Erik van Blokland 的 Superpolator 为内外插值开启了全新的世界。由于该应用程序完全致力于插值,因此你拥有了 “即时预览” 和 “实时测量” 选项,任意数量轴上的任意数量母版,对任意数量字符形单独插值,你说了算。简要介绍请参照 Erik 在 Robothon 2012 上关于 Superpolator 3 的演示

更多的 UFO 工具

其实以上只是以 UFO 为基础的三个应用程序。仔细寻找,你就会发现更多工具,如 RoboFont 的作者 Frederik Berlaen 的 roundingUFO,它已经被证明可以便利的创造带有 “油墨陷阱” 的设计。如果你想进入 Superpolator 的世界,Tal Leming 的 Prepolator 帮助你准备用于插值的 UFO 文件。

有趣的是,还有很多命令行工具可以与 UFO 文件共同使用。例如,ufo2otf,它可以允许你直接从 UFO 编译一个即用的 webfonts 和 OTF。说到 OpenType,Adobe 自家的 OpenType 字体开发套件可以使用 UFO 文件。Tal Leming 的 ufo2fdk 如果善加利用,也会很有帮助。

不要在 FontLab 使用 UFO

如果你想在 Glyphs 和 FontLab 之间移动字体对象,使用 UFO 作为交换格式便是一个不明智的选择。因为在移动的过程中可能会丢失太多东西。在这种情况下,最好使用用于 FontLab Studio 的 Glyphs 导入导出宏命令,由 Georg 在其 GitHub 库中提供


Translator/杨翕丞 Yang Xicheng
Reviser/刘钊 Liu Zhao