如何使用 FontTools 合并两种字体?

如何使用 FontTools 合并两种字体?

进一步来说,

使用FontTools,如何将 OpenType 字体与 TrueType 字体合并(或者将 TrueType 字体与 TrueType 字体合并,如果命令中有差异),

无损“或不调整大小或弄乱任何字形(假设文件大小无关紧要,输出字体供个人使用),

无需替换 TrueType 字体中的任何字形(仅从 OpenType 字体中添加额外的 unicode 字形)。

输出字体可以是 TrueType 或 OpenType,只要满足上述要求即可,没有偏好。如果可能,请解释是否存在差异。

此外,输出字体的标题/名称应该与 TrueType 字体的标题/名称相同。

merge更新:我认为这个问题基本已经得到解答。和的行为pyftmerge似乎比文档中描述的更微妙。通常,相同 Unicode 值的多个字形将被覆盖。所有UnicodeFull字体,只要它们具有相同的 Em 大小,都应该合并,无论它们是 OpenType 还是 TrueType,而包含UnicodeBmp字体将导致合并失败,无论该字体是 OpenType 还是 TrueType。

没有选项或参数pyftmerge,命令始终是:

pyftmerge [Primary font input] [Additional font input]

主字体中现有的 Unicode 值字形将不是将被覆盖,并将优先于任何附加字体的字形。输出字体的名称值将与主字体相同。

答案1

您所询问的事情需要一些初步工作。

来自 fonttools 将多种字体合并为一种(来源中的文本以粗体显示):

所有字体当前都必须具有 TrueType 轮廓(glyf 表)。

fonttools 项目 另外说:

该项目包括 TTX 工具,该工具可以将 TrueType 和 OpenType 字体转换为 XML 文本格式(也称为 TTX)。它支持 TrueType、OpenType、AFM 以及一定程度上的 Type 1 和一些 Mac 特定格式。

您需要使用 TTX 工具将 OpenType 字体转换为 TTX 格式,以便能够将 TTX 格式转换为 TrueType 字体。

一旦两种字体都采用 TrueType 格式,fonttools 可能就能够将它们合并。

相关内容