本教程解释为什么字形名称已经不再是它们过去的样子——它们依然同等重要,只是变得更友好、更智能。
在早期,要求在字体中存储字形名称。有一个预定义的名称列表,但仅适用于选定的 Unicode 码点列表。这不是一个全面的列表,由于名称主要是占用空间的冗余信息,如今大多数字体在发布时不带字形名称。
在生产过程中,通过名称轻松识别字形很重要,特别是当您尚未添加轮廓时。此外,某些字形看起来相似,或者您提供了替代品。为此,我们不受用于发布的字形名称的约束,而是使用也用于自动化事物的友好名称。字形名称不仅用于生成自动化的 OpenType 布局功能,还用于字形度量表达式中,因此为字形提供正确的名称很重要。
因此,FontCreator 为所有字符和字形使用友好名称,这允许您快速识别它们,但应该如何命名它们?
首先,友好字形名称区分大小写,因此 "adotbelow" 和 "Adotbelow" 是两个不同的名称。
我们区分字符(映射字形)和未映射字形。字符是具有 Unicode 码点的字形。未映射字形没有分配码点,因此不是字符。未映射字形仍然可以表示字符,但您无法在文字处理应用程序中直接访问它。OpenType 布局功能允许您访问那些未映射的字形,这就是命名约定发挥作用的地方。
字符(映射字形)以字符的实际友好描述开头。如果字符属于非拉丁脚本,则添加脚本的缩写(以连字符开头)。一些示例:
| 友好名称 | 码点 | 脚本 | Unicode 描述 |
|---|---|---|---|
| Ccedilla | $00C7 | 拉丁文 | LATIN CAPITAL LETTER C WITH CEDILLA |
| Five | $0035 | - | DIGIT FIVE |
| A-cyrl | $0410 | 西里尔文 | CYRILLIC CAPITAL LETTER A |
| fi | $FB01 | 拉丁文 | LATIN SMALL LIGATURE FI |
| zacute | $017A | 拉丁文 | LATIN SMALL LETTER Z WITH ACUTE |
未映射字形的名称可以追溯到源字符。未映射字形分为两组:
连字是由多个字符组成的字形。连字的名称是组成连字的字形名称的连接,在单个字形成员名称之间有下划线。
| 友好名称 | 基于 |
|---|---|
| f_f_j | f、f 和 j |
| z_gravecomb | z 和 gravecomb |
字符变体是另一个字符、字形或连字的替代形式。请给它与映射字形相同的名称,并添加一个后缀,标识如何通过 OpenType 布局功能访问该字形。示例:
| 友好名称 | 基于 | 变体 |
|---|---|---|
| Ccedilla.ss01 | Ccedilla | 样式集 01 |
| five.sups | five | 上标 |
| A-cyrl.pcap | A-cyrl | 小型大写字母 |
| zero.zero | zero | 斜杠零 |
| sheen_yehhamzaabove-arab.fina | sheen-arab 和 yehhamzaabove-arab | 最终形式 |
如果在 OpenType 脚本中使用字形名称,并且它包含特定字符,可能会导致解析器出现问题。其中之一是连字符,它既用于向字形名称提供脚本,也用于定义字形范围。在这种情况下,字形名称位于双引号之间。
生成字形名称(通过主菜单 → 工具 → 字形名称 → 生成可用)将为所有具有已知码点的字形生成字形名称。它还将尝试为指定 OpenType 布局功能中使用的字形设置名称。
如果您希望在生成的字体中包含字形名称,最好在导出设置中选择"为发布重新生成"。这样,您可以提供仅用于生产的友好字形名称。