把两个字体都打开,分别点击 元素 – 字体信息 – 通用,可以看到 全字大小,我们需要将小的向大的看齐
例如zhong.ttf
是256,ying.ttf
是1000, 那么ying.ttf
不用管,将zhong.ttf
的全字大小改成1000,保持勾选缩放轮廓(默认就是勾选了的)
然后点击 OS/2 – 特征,把所有选项都改成“任何”(这点很关键,如果不这么做会导致输出的字体间距异常),再点击确定

点击 文件 – 生成字体,字体类型选择“TrueType”,取消勾选“保存之前确认”,然后点击 选项,取消勾选“TrueType渲调提示”(Hints会随着缩放而变形,可能导致缩放后的字体无法正常显示),最后点击 Generate 生成即可,这里我们保存为zhong-1000.ttf
不要反向看齐,将大的字体缩小会略微失真,最终间距会有很小的差距,虽然不仔细对比根本注意不到,但我们这可是《完美》教程:)
三、字体合并
将B合并到A,两者重复的字符字形会保留A的,因此要按需选择合并顺序。
例如,我的zhong.ttf
里面中英文字符都有,但我想用ying.ttf
替换里面的英文字符,那么就需要优先打开ying.ttf
, 然后点击 元素 – 合并字体,选择zhong-1000.ttf
,会有提示框问是否“retain kerning imformation”,选择“是”
合并后,点击 元素 – 字体信息 – PS字体名称,这里为了防止最终生成的字体和原本的两种字体撞名字、撞家族、撞标识,我们需要将所有相关字段改成自定义字段。例如,我的ying.ttf
字体名叫FiraMono-Medium
,那么我就要将所有含Fira
Mono
的字段替换为自定义字段,如FiraFZ

同样的,在 TTF信息 中,也要修改所有相关字段(尤其是“惟一标识”一行),如果有字段是红色无法修改,点击右键 与PostScript名称分离 即可修改

和前文一样,点击 OS/2 – 特征,将里面的所选项都改成“任何”。还是在 OS/2 中,点击 字符集,在“Unicode范围”和“微软编码页”上面勾选默认(保证WPS等软件能识别出所有语言),点击确定
最后,和前文的步骤一样,生成字体即可