跳转到主要内容

从源(UFO,Glyphs)编译字体到二进制(OpenType,TrueType)。

项目描述

GitHub Actions Build Status Python Versions PyPI Version

fontmake

fontmake可以将来自各种来源(.glyphs.ufodesignspace)的字体编译成二进制(.otf.ttf)。您可以使用它来创建静态实例和可变字体。

安装

Fontmake需要Python 3.8或更高版本。

版本可在PyPI上获取,并可以使用pip进行安装。

pip3 install fontmake

使用 -U--upgrade 选项更新 fontmake 及其依赖到最新版本

pip3 install -U fontmake

基本用法

安装完成后,您将能够使用 fontmake 可执行文件。

例如,要从 Glyphs 源文件编译可变字体,请使用

fontmake MyFont.glyphs -o variable

fontmake 可执行文件最重要的命令行参数是必需的输入,指定为位置参数或使用 -g/-u/-m 标志之一,以及可选的 -o 标志,用于选择输出文件格式。

源文件格式选项

指定源文件或文件有两种方法

可以使用以下互斥的标志之一

  • -g filename.glyphs:将 Glyphs 源文件转换为二进制格式。
  • -u filename.ufo ...:将一个或多个 UFO(Z) 文件转换为二进制格式。
  • -m filename.designspace:将 Designspace 文件转换为二进制格式。(-m 用于 mutatormath,一个用于处理设计空间的旧 Python 库。)

或者,可以直接指定输入(多个输入)作为位置参数,而不使用标志,让 fontmake 根据文件扩展名推断源格式:例如 fontmake MyFont.designspace 等。

注意:如果位置参数前面有带一个或多个参数的选项,则需要使用特殊的 -- 分隔符来标记所有后续参数为位置参数(非选项),否则解析器会混淆。例如,-i 选项接受零个或一个参数(请参阅以下部分以获取详细信息);如果没有 --,argparse 会认为您没有提供任何输入。

fontmake -i -- MyFont.designspace

必须使用这两种方法中的一种来指定确切一种输入类型。

输出文件格式选项

您可以在 -o 选项后提供一个或多个输出文件格式。例如,-o otf ttf 为输入文件中的每个主文件创建 OTF 和 TTF 二进制字体文件。

以下输出文件格式可用

  • otf:每个主文件的 OTF (CFF-outline) 二进制格式。放置在 master_otf/ 目录中。
  • ttf:每个主文件的 TTF (TrueType-outline) 二进制格式。放置在 master_ttf/ 目录中。
  • otf-cff2:具有 CFF2 outlines 的每个主文件的 OTF 二进制格式。放置在 master_otf/ 目录中。
  • variable:TrueType 可变字体。放置在 variable_ttf/ 目录中。
  • variable-cff2:具有 CFF2 outlines 的可变字体。放置在 variable_otf/ 目录中。

以下输出文件格式也可用,但通常由 fontmake 作为上述输出之一的中介步骤内部使用

  • otf-interpolatable:适合合并到可变字体中的 OTF 二进制格式。放置在 master_otf_interpolatable/ 目录中。(与 otf 不同,这些轮廓未优化。)
  • ttf-interpolatable:适合合并到可变字体中的 TTF 二进制格式。放置在 master_ttf_interpolatable/ 目录中。(轮廓以与插值兼容的方式转换为二次曲线。)
  • ufo:可以使用标志将 Glyphs 源转换为 UFO,或使用 --save-ufo-as-zip 标志转换为 UFO zip(.ufoz)格式。放置在 master_ufo/ 目录中。

如果没有指定格式选项,默认为 -o otf ttf

其他重要命令行选项

  • -i(插值实例):并非总是需要每个主文件的二进制文件;如果您在 Glyphs 文件中定义了实例(“导出”),则默认情况下它们将不会生成。要生成它们,请传递 -i 标志,该标志插值静态实例,并将它们放置在相应的 instance_ttf/instance_otf/ 目录中。

  • --output-dir <some_directory>:将所有输出放置在给定的目录中,而不是上述提到的每个格式的目录中。

  • --output-path <filename>:如果输出是单个二进制文件,则此选项有效,并将输出写入给定的文件名。

  • -f(展平组件):确保包含自身包含组件的任何符号都分解为单个级别。这在某些渲染环境不正确处理嵌套组件时推荐 - 有关详细信息,请参阅此链接

高级用法

请参阅USAGE.md

故障排除

请参阅TROUBLESHOOTING.md

开发者

开发者可以通过克隆git仓库来获取fontmake的最新版本

git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .

想要快速测试源代码更改而不重新安装的开发者可以在从本地源检出安装时使用“--editable”选项

pip install -e .

建议在虚拟环境中安装fontmake,以防止其依赖项与全局安装的其他模块发生冲突。

您还可以使用pipx工具来自动化在隔离环境中安装/升级像fontmake这样的python应用程序。

发布新版本

  1. 提交并推送您为新版本所做的最终更改。
  2. 创建一个带有前缀“v”的版本号的带注释的Git标签,例如:git tag -a v3.1.1
  3. 将发布说明写入标签消息。它们将作为发布说明显示在GitHub的发布页上。
  4. 按照如下方式推送标签:git push origin v3.1.1,其中origin是要推送版本的常用远程名称。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

fontmake-3.9.0.zip (467.8 kB 查看哈希值)

上传时间

构建分发

fontmake-3.9.0-py3-none-any.whl (36.1 kB 查看哈希值)

上传时间 Python 3

支持