教程 字形命名
No.14 Glyph Names

字形命名约定

本教程解释为什么字形名称已经不再是它们过去的样子——它们依然同等重要,只是变得更友好、更智能。

教程序号: 14
官方原文: high-logic.com
内容状态: ✅ 基于完整内容创建

在早期,要求在字体中存储字形名称。有一个预定义的名称列表,但仅适用于选定的 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 布局功能中使用的字形设置名称。

字形名称和导出字体

如果您希望在生成的字体中包含字形名称,最好在导出设置中选择"为发布重新生成"。这样,您可以提供仅用于生产的友好字形名称。