• 您的位置 》 教程 》正文
  • 用 fontforge 調整字體不盡人意之處
  • 發布時間: 2015-12-22 來源: is-programmer 瀏覽:11139 作者:galeki

 以調整 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 宋體

undefined

SimSun 宋體

undefined

稍微細心觀察應該可以看出 Adobe 宋體的中文逗號的位置有些過于靠下了,甚至超過了底線。如果只是用 Adobe 宋體做做字處理的話,這個瑕疵可以視而不見。不過,要是想調整一下,用 fontforge 可以很容易做到。

首先,用 fontforge 打開 Adobe 宋體:

$ fontforge AdobeSongStd-Light.otf

在 fontforge 的“CID" 菜單中選中 "AdobeSongStd-Light-Hanzi" 以打開 Adobe 宋體的漢字部分,然后在 "View" 菜單中選中 "Goto" 打開 fontforge 字符定位對話框,在其中輸入中文的逗號字符(輸入的字符可能顯示的不正確,但是不影響使用),確定之后,就可以將 fontforge 窗口中的字符位置定位到 “,”:

20151222165426564.jpg

鼠標左鍵雙擊上圖所示的“,”位置,即可打開該符號的編輯界面:

摁住鼠標左鍵并拖動,框選字符輪廓:

undefined

然后用鍵盤的 Up 鍵將選中的字符輪廓向上平移,直到自己感覺舒適為止,譬如:

undefined

這樣調整完畢后,在 "File" 菜單中選擇 "Generate Fonts" 來生成字體,對打開的字體生成對話框,設置如下:

undefined

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

再使用這個 hack 過的 Adobe 宋體,中文逗號的效果如下:

undefined

個人認為要比 hack 之前的順眼多了。

當然,這只是用以演示 fontforge 的小示例。事實上,我們可以用 fontforge 對字體來進行更復雜的修改,也可以設計字體。


字體管家
福建11选5手机版