有些TrueType字体文件(.ttf
)下载回来后,虽然能在专用的字体编辑/查看软件中正常打开,并能看到字体形状,但却不能在无论Word、LibreOffice、Windows、Linux、Android中当一个正常字体用。
胡搞一通后(本人不懂字体),摸索出了一些解决以下问题的方法:
-
.ttf
文件无法当普通字体用 -
该
.ttf
文件中没有图形的字符,使到时显示空白,并不像正常情况那样fallback到系统默认字体 -
能用但太小,一个字图形边缘空白太大
解决步骤
用的软件是FontForge。
-
把以下脚本保存为
.pe
后缀,通过cli调用#!/usr/bin/env fontforge Open($1) RemoveAllKerns() DetachAndRemoveGlyphs() SelectAll() UnlinkReference() Reencode("unicode") Generate($1:r + "_patch.ttf")
如果不懂通过cli调用,也可以在FontForge在界面中打开字体文件后,点击菜单“文件->执行脚本->选择FF”,然后把
RemoveAllKerns() DetachAndRemoveGlyphs() SelectAll() UnlinkReference() Reencode("unicode")
这几行粘贴进去,点击确定。
-
在FontForge界面中打开上一步处理过后生成的新字体文件,菜单“文件->生成字体”保存成一个新
.ttf
文件。这一步要点时间(1分钟)。忽略所有警告和错误。 -
菜单“编辑->选择->空格字形”,然后点“Clear”删掉它们。
你会看见原本空白的格子变成了一个带浅灰色叉的格子。这样这个字体文件中没有图形的字符就可以被fallback用默认字体显示出来了。
针对某一类字符调整图形
菜单“基础->字体信息->统一码范围”,这里可以按类型批量选择字符,例如:
-
基本大小写英文字母+数字+基本符号:基本拉丁文
-
我们平时所用汉字(包括简和繁):中日韩统一表意字符
改变字符图形大小
图形太小是常见的情况。如果用起来字符间总有消除不掉的间距,有可能是这个原因。
批量选择要放大的字符后,菜单“基础->变换->变换”,其中有等比缩放功能。
完全处理完成后,使用菜单“文件->生成字体”保存成一个新.ttf
文件。