修复一些不能直接使用或不好用的ttf字体文件

Share on:

Overview

有些TrueType字体文件(.ttf)下载回来后,虽然能在专用的字体编辑/查看软件中正常打开,并能看到字体形状,但却不能在无论Word、LibreOffice、Windows、Linux、Android中当一个正常字体用。

胡搞一通后(本人不懂字体),摸索出了一些解决以下问题的方法:

  1. .ttf文件无法当普通字体用

  2. .ttf文件中没有图形的字符,使到时显示空白,并不像正常情况那样fallback到系统默认字体

  3. 能用但太小,一个字图形边缘空白太大

解决步骤

用的软件是FontForge

  1. 把以下脚本保存为.pe后缀,通过cli调用

     1#!/usr/bin/env fontforge
     2
     3Open($1)
     4
     5RemoveAllKerns()
     6DetachAndRemoveGlyphs()
     7SelectAll()
     8UnlinkReference()
     9Reencode("unicode")
    10
    11Generate($1:r + "_patch.ttf")
    

    如果不懂通过cli调用,也可以在FontForge在界面中打开字体文件后,点击菜单“文件->执行脚本->选择FF”,然后把

    1RemoveAllKerns()
    2DetachAndRemoveGlyphs()
    3SelectAll()
    4UnlinkReference()
    5Reencode("unicode")
    

    这几行粘贴进去,点击确定。

  2. 在FontForge界面中打开上一步处理过后生成的新字体文件,菜单“文件->生成字体”保存成一个新.ttf文件。这一步要点时间(1分钟)。忽略所有警告和错误。

  3. 菜单“编辑->选择->空格字形”,然后点“Clear”删掉它们。

    你会看见原本空白的格子变成了一个带浅灰色叉的格子。这样这个字体文件中没有图形的字符就可以被fallback用默认字体显示出来了。 

针对某一类字符调整图形

菜单“基础->字体信息->统一码范围”,这里可以按类型批量选择字符,例如:

  • 基本大小写英文字母+数字+基本符号:基本拉丁文

  • 我们平时所用汉字(包括简和繁):中日韩统一表意字符

改变字符图形大小

图形太小是常见的情况。如果用起来字符间总有消除不掉的间距,有可能是这个原因。

批量选择要放大的字符后,菜单“基础->变换->变换”,其中有等比缩放功能。

完全处理完成后,使用菜单“文件->生成字体”保存成一个新.ttf文件。

本博客文章皆属原创(除特别标明外)。 未联系作者获得同意前,不可转载。
All articles are original (except for those specially claimed) and copyrighted. Copying without permission is forbidden.

打赏作者

写作不易,感谢支持! 扫个码吧~