跳至主要内容

如何制作可变字体

作者:Erwin Denissen,发布于 2026 年 6 月 26 日

您需要:FontCreator(Windows 或 macOS),以及同一字体家族中两款已完成且互相兼容的静态字体 — 例如 Regular 和 Bold。

可变字体是单个文件,其中包含一个或多个轴(例如字重或字宽),通过插值即可使用连续范围的样式变化。本教程介绍如何在 FontCreator 的字体编辑器中,用两款已有的非可变字体构建可变字体,预览插值效果、修复兼容性并导出 named instance。本页同时是其他可变字体教程的起点 — 相关列表见文末。

可变字体的概念已有数十年历史,但直到 2016 年才被 OpenType 规范采纳。FontCreator 既可以导出可变字体,也可以一键导出每个预定义样式(named instance),让制作字体更快。

我们假设您已经做好了同一字体家族的 Regular 和 Bold 版本。开始前,请在 FontCreator 中同时打开这两款字体。

Weight 轴

由于我们要合并字重不同的两款字体,因此需要一个 Weight 轴。

  1. 激活 Regular 样式。
  2. 打开字体属性面板。
  3. 切换到 Axes 选项卡。
  4. 点击工具栏的 [+] 图标,然后选择 Weight。
FontCreator 的字体属性面板 Axes 选项卡,通过加号图标添加 Weight 轴。

字体属性面板的 Axes 选项卡,通过工具栏 [+] 图标添加 Weight 轴。

Bold 母版

在字体属性面板中选择 Masters 选项卡。点击工具栏的 [+] 图标并选择 Bold 字体,这会把 Bold 字体的所有字形轮廓作为第二个母版复制到当前字体中。

接着更新两个母版的轴位置。选择 Regular 母版并将位置设为 400,再选择 Bold 母版并设为 700。

到这一步,您已经有了一款可变字体。做得好。

> 注意:您可能会发现字体概览面板中若干字形的标题栏突然变成红色。这标示出存在兼容性问题的字形 — 在修复之前,这些字形无法插值。下文的“兼容性问题”一节会详细说明。

初步印象 — 预览插值效果

想看看结果吗?我们也很好奇。

要使用 Weight 轴,请打开变体面板。如果看不到,可在主菜单中选择 View → Panels 并确认已勾选 变体,或按 Ctrl+F7 切换显示。

变体面板可预览两个母版之间的任意位置。拖动 Weight 滑块,轮廓便会自动插值。

这里还有一个面板很有用:母版和图层。如果看不到,请选择 View → Panels → 母版和图层,或按 Ctrl+F6。该面板可在现有母版之间切换 — 这很重要,因为字形的轮廓图层始终属于某个母版。若要调整 Regular 轮廓,请先选择 Regular 母版。

FontCreator 的变体面板,预览两个母版之间的字重插值效果。

变体面板的 Weight 滑块位于中间位置,显示 Regular 与 Bold 之间插值得到的字形。

测试 Web 字体

拖动 Weight 滑块固然有趣,但在 FontCreator 之外也能正常工作吗?

在主菜单中选择 Font → 测试网页字体(或按 Ctrl+F5)。FontCreator 会导出可变字体并附带一个网页,在默认浏览器中打开,便于您确认插值在真实环境中有效。

兼容性问题

只有在轮廓图层互相兼容时,插值才有效。对每个字形来说,各轮廓图层必须轮廓数量相同、顺序一致、点数相同。复合字形的构成成员也必须对应一致。

让 FontCreator 修复基本问题:

  1. 在字体概览面板中选择所有字形。
  2. 点击母版和图层面板顶部的 Fix 工具栏按钮。

可能仍有部分字形存在问题。请手动调整这些轮廓:

  1. 双击某个字形即可在 Glyph 面板中打开。此时母版和图层面板会提示该字形属于哪类兼容性问题。
  2. 启用Show compatibility issues工具栏按钮(同样位于母版和图层面板),即可清楚看到需要修改的地方。
FontCreator 为尚无法插值的字形显示兼容性问题提示。

在 Glyph 面板中打开的字形,已启用 Show compatibility issues,母版和图层面板列出了不匹配之处。

必须解决所有兼容性问题,否则字体中会出现无法正确插值的字形。仔细处理兼容性是可变字体能否正常工作的关键 — 下面的列表中有专门的教程。

命名实例

要充分利用可变字体,请加入 named instance。它们可向支持可变字体的应用程序提供 Regular、Medium、Bold 等常见样式。对于不支持可变字体的应用程序,请将所需实例导出为独立的静态字体,以确保可靠使用。

切换到字体属性面板的 Instances 选项卡。先更新 Default 实例的轴位置(400),然后添加字重为 500、600 和 700 的实例,并为每个实例设置唯一的 Style Name。

虽然可变字体本身并不需要,但也请填写正确的字重等级和宽度等级值。若将这些实例导出为非可变字体时它们就有用了 — 相当于顺手拿到的好处。

轴值

还有一件值得做的事:为轴上的特定位置(或多个轴的组合)命名。请添加与 named instance 所用轴位置一致的轴值,也就是 400、500、600 和 700。另外请为 Regular(400)轴值勾选Elidable axis value name,因为它代表常规字重。

导出可变字体

当母版兼容且实例定义完成后,即可导出字体本身。打开字体导出设置,将Export设为Variable font,再选择轮廓格式 — 为获得最广泛的兼容性,请选择 TrueType 轮廓。只有在确实需要 PostScript/三次轮廓且目标软件支持 CFF2 时,才选择 CFF2。导出后请在目标应用程序中测试文件,并像前面一样用测试网页字体在浏览器中快速检查。

> 提示:每完成一轮兼容性修复后,请再运行一次测试网页字体。这是发现「在 FontCreator 预览中插值正常、但在真实渲染器中异常」的字形的最快方法。

疑难解答

现象可能原因解决方法
字体概览中字形的标题栏变红轮廓图层不兼容选择所有字形并点击 Fix,其余手动修正
变体滑块没有任何反应变体面板被隐藏,或尚未添加第二个母版显示变体面板(Ctrl+F7),并确认 Bold 母版及其轴位置
滑块中间位置时字形变形母版之间的节点顺序或数量不同打开该字形,启用 Show compatibility issues,并使轮廓一致
其他程序中看不到 named instance未定义实例,或轴位置有误在 Instances 选项卡中按正确的轴位置添加实例

常见问题

开始时必须有两个独立字体吗,还是可以在一个文件中绘制母版? 两种方式都可以。本教程合并了两款已有的静态字体;您也可以在单个文件中添加轴和母版,并直接绘制每个母版。

插值中所说的「兼容」是什么意思? 同一字形的各母版必须具有相同的轮廓数量、相同的轮廓顺序和相同的节点数量(复合字形的构成成员也要对应)。否则该字形无法插值。

可变字体应选择 CFF2 还是 TrueType 轮廓? 若追求广泛兼容性,请选择 TrueType 轮廓。CFF2 是紧凑的三次/PostScript 选项,但需要支持 CFF2 的软件,在需要兼容旧版或更广泛环境时并不合适。

既然字体是可变的,为什么还要添加 named instance? 支持可变字体的应用程序会把 named instance 显示为 Regular、Medium、Bold 等常见样式。不支持的软件只会使用默认实例,因此请将所需样式导出为独立的静态字体,以便在较旧的程序中可靠使用。

导出前如何预览某个字重? 使用变体面板的 Weight 滑块,并通过 Font → 测试网页字体(Ctrl+F5)确认在浏览器中的效果。

延伸阅读

本页是在 FontCreator 中制作可变字体的起点。接下来可以: