fontforge - 合并字体以添加字形的脚本
Posted
技术标签:
【中文标题】fontforge - 合并字体以添加字形的脚本【英文标题】:fontforge - Script to merge fonts to add glyphs 【发布时间】:2017-12-24 05:07:52 【问题描述】:我有两个 .ttf 字体文件,其中一个包含我需要合并到另一个字体文件的字形。使用GUI,会有一个对话框说
当要紧缩的字形之一来自基本字体时,是否要保留所选字体的紧缩信息?
我需要为此选择否。生成合并字体后,会出现警告说字体使用了非常规的 em 大小。生成字体应该有Missing points at extrema
等错误,没关系。
现在,这一切都是通过 GUI 完成的,我必须合并 很多 字体文件,所以我选择了编写脚本。
#!/usr/local/bin/fontforge
i = 2
while(i < $argc)
Open($1)
MergeFonts($argv[i])
MergeFeature($1)
Generate($argv[i])
i = i + 1
endloop
这样,我收到错误MergeFeature: Failed to find kern info in file
,因此无法生成字体。我有什么遗漏的吗?
【问题讨论】:
【参考方案1】:如果您不希望包含字距调整信息,请删除以下行:
MergeFeature($1)
这最终会调用 LoadKerningDataFromMetricsFile,但由于字体文件未包含字距调整指标而失败。
根据documentation:
此命令将允许您搜索 adobe 功能文件 (.fea) 以获取功能/查找信息,或者搜索包含指定字体的字距调整对的 afm、ofm、tfm、pfm 或 mac 资源文件。在很多情况下它是不需要的,因为当 FontForge 打开一个 .pfa 或 .pfb 字体时,它会自动在同一个地方搜索一个合适的 .afm 文件。
【讨论】:
以上是关于fontforge - 合并字体以添加字形的脚本的主要内容,如果未能解决你的问题,请参考以下文章
使用 fontforge 和 fonttools 创建轻量级后备字体
如何从 Opentype 字体的 GPOS 表中使用和提取字距调整对,以在 Java 中将字形正确显示为 Path2D?