字体工程工具:构建、检查和压缩 适合谁看:已经会用编辑器,想把字体源文件自动生成成品字体、做质量检查、输出网页字体的设计师和开发者。 为什么需要「工程工具」 在编辑器里点「导出」能得到字体文件,但项目一大,就会遇到这些问题: 字重多、格式多,每次手动导出容易漏; 多人协作,需要每次都用同一套设置生成; 发布前要检查几十上百项规范,人工检查不现实。 所以很多开源字体项目会把「源文件 → 成品字体 → 检查 → 压缩」写成命令,一条命令跑完。 常见工具一览 环节 工具 许可证 做什么 构建 fontmake Apache-2.0 把 .glyphs、.designspace、.ufo 源文件编译成 OTF、TTF 或可变字体 构建 fontc Apache-2.0 用 Rust 重写 fontmake 的字体编译器,项目说明称目标是安全和快速 构建(底层库) glyphsLib Apache-2.0 把 Glyphs 源文件转换成 UFO 和 designspace 构建(底层库) ufo2ft MIT 把 UFO 源文件编译成 OpenType 字体 检查 Font Bakery Apache-2.0 命令行字体质量检查工具,内置多套检查规则 检查 Fontspector Apache-2.0 Font Bakery 的 Rust 移植版,项目页称其为 Font Bakery 的继任者 压缩 woff2 MIT Google 的 WOFF2 参考实现, woff2_compress / woff2_decompress 网页 glyphhanger MIT 找出网页用到哪些字,并据此生成子集 网页(中文) cn-font-split Apache-2.0 把中文字体按字分片,生成带 unicode-range 的 CSS 许可证信息来自各项目的 GitHub 页面(2026 年 10 月查阅)。 一个最小的流程 # 1. 从 Glyphs 源文件生成可变字体 fontmake MyFont.glyphs -o variable # 2. 质量检查(通用规则) fontbakery check-universal variable_ttf/*.ttf # 3. 压缩成 WOFF2 fonttools ttLib.woff2 compress variable_ttf/MyFont-VF.ttf 实际的输出文件名和目录以工具的说明为准。fontmake 不指定格式时,默认输出 OTF 和 TTF。 检查工具查什么 Font Bakery 这类工具会检查: 字体名称、版本号、版权和许可信息是否齐全一致; 字重数值(如 400、700)和样式名是否对应; 垂直度量(行高相关数值)是否合理; 轮廓有没有明显问题、可变字体的轴设置是否规范。 不同平台(如 Google Fonts、Adobe Fonts)有各自的检查规则集。检查报告里的「失败」不一定都要改,但每一条都值得看懂。 中文项目的特别之处 中文字体字数多,构建和检查耗时长,可以先用少量字试跑流程; 发布网页字体时,中文一般需要子集或分片,见《中文网页字体为什么要拆分子集》 和《按字分片:cn-font-split》; 大型字库的分工协作见《大型字库怎么协作:以思源黑体为例》。 参考资料9fontmake GitHub 仓库fontc GitHub 仓库glyphsLib GitHub 仓库