zenjia-fonts icon indicating copy to clipboard operation
zenjia-fonts copied to clipboard

Increasing Legibility using TrueType Bytecode Hints

Open Artoria2e5 opened this issue 8 years ago • 1 comments

Cantarell 在設計上強調 Legibility,即(形狀上的)可讀性。漢字由於筆劃數量較多,熒幕(尤其是 loDPI)上的可讀性一直成為問題。

Microsoft 在 TrueType 字型檔案格式中提供一組可編程的 TrueType Bytecode 系統,系統在算繪字型時會運行這段 Bytecode 變換形狀優化輸出(一般是對齊到像素點上,所謂「gridfitting」)。傳統以來一直是字型設計者手工加入此小程式,費時費力,有時還會如 Monotype 經手 Hinting 的「微軟雅黑」那樣到處出事。

Belleve Invissfdhanautohint 能夠由程式自動產生 Bytecode 小程式,看算繪結果應該是很不錯的。我今天稍微測試了一下,用調參工具得到 --MIN_STEM_WIDTH=30 --MOST_COMMON_STEM_WIDTH=80 下的輸出如下:

微調結果

(LCD RGB Antialised,應在 100% 和 RGB 排列的 LCD 熒幕上觀看) (優化重點在小字啦,大字基本用不上本來也該 --PPEM_MAX=24 去掉 )

這東西的缺點嘛……

  1. 生成的帶有 Bytecode 的字型好像還是挺大的
  2. 用 TrueType 的話相對 OpenType 對於一些人而言是歷史倒退
  3. Bytecode Hinting 只會在 hintmediumhintfull 啟用
  4. 調參需要仔細來……我這點肯定不夠

我測試的時候用的是 cwTeXHeiZH TTF 經 fontforge 匯出的 sfd。用 repo 裡面的 sfd 的話有很多地方要一個個 validate 我懶得……

Artoria2e5 avatar Jan 19 '16 00:01 Artoria2e5