DaleZ 大约的确是解决了。
首先看了下 FontTools,里面的 ttx 可以修改xAvgCharWidth
,但没看到里面有合并 ttc 的工具(我希望像原版雅黑一样,也用 ttc 文件安装)。
搜索一番看到 AFDKO 里面有个 otf2otc;但尝试后发现用这个合并出来的 ttc 文件,体积直接就是原来两个 ttf 之和。
而用 FontForge 合并出来的 ttc,体积几乎和原来的单个 ttf 相同。(佬说 FontForge 能合并 glyf 表)
强烈的对比令人非常不爽。
于是我还想挣扎一下,看能不能就在用 FontForge 的基础上解决。
查到一篇小日子写的文章:
……
xAvgCharWidthの書き替え方:
- TTFファイルの中でOS/2テーブルの位置は、ファイル先頭付近の「OS/2」と書いてある所の直後を見れば分かる。「OS/2」の直後には32ビット整数(ビックエンディアン)でチェックサム、オフセット、サイズと続く。手元のファイルでは、オフセットは1D8hや1C8h等であった。このオフセットはファイル先頭からOS/2テーブル先頭までのバイト数。
- OS/2テーブル先頭からバージョン(uint16)、xAvgCharWidth(int16)と続く。手元のファイルでは xAveCharWidthは1959(7a7h)だった。これを1024(400h)に書き替える。
……
机翻勉强阅读。
按这个尝试成功。
用二进制编辑器打开用 FontForge 改好的字体。在开头找到 'OS/2',间隔 32 位之后,是 OS/2 表的位置。
跳转过去,是 16 位的 OS/2 版本号;紧接着是 16 位的xAvgCharWidth
,芜湖。
恢复原始值即可。(顺便一提,各个字重的值不同)
彩蛋:计宗强者