用 fontforge 调整字体不尽人意之处 所属栏目:工具软件 14年10月22日 标签:

以调整 AdobeSongStd-Light.otf 字体中的中文逗号的微小瑕疵为例,展示 fontforge 的基本用法。

 

这两年,估计 XeTeX 或者 LuaTeX 的用户对 OpenType 字体不会陌生,因为这两个 TeX 引擎都以直接支持系统本地 TrueType 和 OpenType 字体而著称。目前免费的中文 OpenType 字体仅有 Adobe 公司伴随 Adobe Reader 发放的宋体(AdobeSongStd-Light.otf) 和黑体(AdobeHeitiStd-Regular.otf),它们都可以在你所安装的 Adobe Reader 目录中找到。

Adobe 宋体在设计上算是中规中矩,但是也是略微有些瑕疵,比如中文逗号。下面我采用 LuaTeX 对 Adobe 宋体与大家所熟知的 SimSun 字体的中文逗号做一下比较:

Adobe 宋体

SimSun 宋体

稍微细心观察应该可以看出 Adobe 宋体的中文逗号的位置有些过于靠下了,甚至超过了底线。如果只是用 Adobe 宋体做做字处理的话,这个瑕疵可以视而不见。不过,要是想调整一下,用 fontforge 可以很容易做到。

首先,用 fontforge 打开 Adobe 宋体:

$ fontforge AdobeSongStd-Light.otf

在 fontforge 的“CID" 菜单中选中 "AdobeSongStd-Light-Hanzi" 以打开 Adobe 宋体的汉字部分,然后在 "View" 菜单中选中 "Goto" 打开 fontforge 字符定位对话框,在其中输入中文的逗号字符(输入的字符可能显示的不正确,但是不影响使用),确定之后,就可以将 fontforge 窗口中的字符位置定位到 “,”:

鼠标左键双击上图所示的“,”位置,即可打开该符号的编辑界面:

摁住鼠标左键并拖动,框选字符轮廓:

然后用键盘的 Up 键将选中的字符轮廓向上平移,直到自己感觉舒适为止,譬如:

这样调整完毕后,在 "File" 菜单中选择 "Generate Fonts" 来生成字体,对打开的字体生成对话框,设置如下:

最后 "Save" 即可生成新的 Adobe 宋体。

再使用这个 hack 过的 Adobe 宋体,中文逗号的效果如下:

个人认为要比 hack 之前的顺眼多了。

当然,这只是用以演示 fontforge 的小示例。事实上,我们可以用 fontforge 对字体来进行更复杂的修改,也可以设计字体。

galeki
个性签名:

手机扫码浏览更方便: