zenjia-fonts
zenjia-fonts copied to clipboard
Increasing Legibility using TrueType Bytecode Hints
Cantarell 在設計上強調 Legibility,即(形狀上的)可讀性。漢字由於筆劃數量較多,熒幕(尤其是 loDPI)上的可讀性一直成為問題。
Microsoft 在 TrueType 字型檔案格式中提供一組可編程的 TrueType Bytecode 系統,系統在算繪字型時會運行這段 Bytecode 變換形狀優化輸出(一般是對齊到像素點上,所謂「gridfitting」)。傳統以來一直是字型設計者手工加入此小程式,費時費力,有時還會如 Monotype 經手 Hinting 的「微軟雅黑」那樣到處出事。
Belleve Invis 的 sfdhanautohint 能夠由程式自動產生 Bytecode 小程式,看算繪結果應該是很不錯的。我今天稍微測試了一下,用調參工具得到 --MIN_STEM_WIDTH=30 --MOST_COMMON_STEM_WIDTH=80
下的輸出如下:
(LCD RGB Antialised,應在 100% 和 RGB 排列的 LCD 熒幕上觀看)
(優化重點在小字啦,大字基本用不上本來也該 --PPEM_MAX=24
去掉 )
這東西的缺點嘛……
- 生成的帶有 Bytecode 的字型好像還是挺大的
- 用 TrueType 的話相對 OpenType 對於一些人而言是歷史倒退
- Bytecode Hinting 只會在
hintmedium
和hintfull
啟用 - 調參需要仔細來……我這點肯定不夠
我測試的時候用的是 cwTeXHeiZH TTF 經 fontforge 匯出的 sfd。用 repo 裡面的 sfd 的話有很多地方要一個個 validate 我懶得……