為何某些中文字體的設計下部會留下很多行距?

如圖,第一行為蘭亭黑;第二行是蘋果自帶黑體;第三行是Adobe黑;第四行是微軟正黑。其實包括之前看到的思源黑體,發現其下面部分總是會留下一些空白行距。一開始以為是中英文混排的問題,可是似乎也不是這個原因。請問這樣設計是出於什麼考量?

----

嗯,補充一下環境,Mac OS X Textedit單倍行距。(外行表示想不到能和這個因素有關)。


很好,提問時知道舉例還知道提供截圖,很難得。

但為什麼對排版和截圖的環境隻字未提?你就不覺得自己用的排版軟體與這個問題會相關嗎?

民眾的問題描述能力太堪憂。

唉,不過還是謝謝題主好歹給了截圖示例。

這和字體的縱向尺度(metrics)參數有關,主要包括 `hhea` 表內的 `ascent`, `descent`, `lineGap` 以及 `OS/2` 表那邊的 `sTypoAscender`, `sTypoDescender`, `sTypoLineGap`, `usWinAscent`, `usWinDescent`。

這些參數描述了字體的縱向尺度有多大,然後很多排版環境(主要是 Word 和 Pages 這樣的消費級文字處理工具)使用它們來(以各種不同的方式)決定排版時默認的行高。

因為這些參數的設定手法非常混亂,缺乏共識,因此在任何字體之間其實都不一致。

而漢字的結構本身與這些參數的初衷不一致,於是大家的理解更不一樣,中文字體的這些縱向尺度就更是混亂不堪。加之中文字體本身的視覺大小較為穩定(限制在 em box 內),行高的差異就更加顯著。

我猜(因為你自己不說清自己的排版環境所以別人就只能費勁地猜還可能猜不對即使猜對了也是白白浪費精力)你是在 OS X 的 TextEdit 或 Pages 里用單倍行距模式。

Adobe 傳統上為CJK字體設定 `hhea.lineGap` 為 1 em,這確實很奇怪,反正效果就是在使用 `hhea` 三兄弟之和來設定默認行高的環境(比如 OS X 這邊)之下 Adobe 的CJK字體會有 2.0 倍的行高。

其他各家字體廠商也一塌糊塗。國內的廠商(方正、漢儀、華文之類)總體就是讓人感覺根本不懂這方面,參數都是亂設的,或者不知道是為了什麼考量而設。日本廠商有一些將參數設定為令 `hhea` 的三個參數之和為 1.5 em,這比較可取。西文的這三個參數之和似乎多為 1.2 em 左右。

Source Han Sans 實際上也是用了 1.5 em 的策略,但因為有別的技術錯誤於是在某些環境下(比如 Photoshop 和 Illustrator)會有不符合預期的奇怪行高表現。

這和 TTF 或 OTF 什麼的沒有關係。這些尺度參數在原始 TrueType 格式與後來的 OpenType 格式之間沒有什麼差異,對於 TrueType 輪廓和 PostScript/CFF 輪廓也沒什麼差異。完全是廠商之間沒有共識所致的混亂。

嗯……看不懂上文在說什麼?那就記住:

  • 目前混亂的默認行高局勢是因為各廠商缺乏合理的考量,也缺乏業界規範。
  • 普通用戶如果想要行高可控,又不得不用 Word 和 Pages 這樣的工具,那麼,不要用倍數行高。(依舊看不懂?今天懶得解釋了,不好意思。)
  • InDesign、Illustrator、Photoshop 這樣的專業工具,以及網頁排版,在行高方面都不受這些參數顯著影響。


是因為 Adobe 和其他廠商對於 hhea(還是 os/2)表裡一條和行距有關的項目理解不同。


你有沒有發現, 你所列出的這四個字體, 除了第三個 Adobe 黑體 - 也就是行距有問題的這個 - 是 OTF 格式的, 其餘三個均是 TTF 格式的?

TTF 的 lineGap 通常為 0, 對於 CJK 字體, OTF 的 lineGap 按照 Adobe 推薦的作法通常為 1000 或者 500 - 雖然我不知道這樣設置有什麼意義, 不過值得慶幸的是高級排版軟體通常會無視這個值.


推薦閱讀:

chrome 字體發虛模糊是因為什麼?
繁體字真的美觀嗎?
怎樣優化 MacBook Air 字體顯示?
PDF 格式的文件為什麼可以做到非常出色的字體渲染效果?
如何評價谷歌發布的新字體 Literata?

TAG:字體 | 中文字體 | 字體設計 |