我怎样才能自动合并两种字体,以便第一种字体中没有、但第二种字体中可用的字形可以合并到第一种字体中?
答案1
这是一个简单的任务字体。
评论附录:合并之前,先在两种字体中单击元素 > 字体信息...,查看 em 大小等值是否匹配。否则,更新任一字体以匹配其他字体的值。这可以防止出现字符大小不同等问题。此信息可能应该添加到答案中。– Cristan
首先,您需要打开缺少字形的字体并选择。在此示例中,和Element -> Merge Fonts
的字形是缺少的。
E
F
选择要从中提取字形的字体。系统会询问您是否要保留现有的字距;您很可能要No
在此处选择,但如果您得到奇怪的结果,请关闭 fontforge 并使用 重试Yes
。
缺失的字形应该很快就会添加:
最后,将File -> Generate Fonts
字体导出到所需位置。
答案2
还可以看看谷歌的Google Noto 字体项目及其Noto Tools
合并字体.py脚本。
有关制作/添加字体到 Windows 的更多详细信息,请查看我的其他答案这里。
答案3
- 安装FontForge
- 它通常安装在
C:\Program Files (x86)\FontForgeBuilds\bin
,因此将其添加到您的路径环境变量中(仅适用于 Windows 用户)。 - 将以下代码粘贴到名为
mergefonts.ff
#!/usr/local/bin/fontforge
Open($1)
SelectAll()
ScaleToEm(Strtol($3))
Generate("1.ttf")
Close()
Open($2)
SelectAll()
ScaleToEm(Strtol($3))
Generate("2.ttf")
Close()
Open("1.ttf")
MergeFonts("2.ttf")
Generate($4)
Close()
- mergefonts.ff 脚本用法:
fontforge -lang=ff -script mergefonts.ff <font1> <font2> <font_size_in_em> <output_merged_font>
例子:
fontforge -lang=ff -script mergefonts.ff font1.ttf font2.ttf 1000 mergedfont.ttf