OpenType 字型中有數項設定都與垂直方向的行距相關。本教程解釋如何設定相容的垂直度量。
在設計字型的某個階段(最好在早期),您可能會遇到字元上方和下方空間有限的問題。例如,新增對越南語的支援可能具有挑戰性,因為它有許多帶有兩個變音符號的大寫字母。使用特殊的堆疊組合標記會有所幫助,但仍然重要的是在字型中設定正確的間距度量。
文書處理器、頁面佈局軟體、電子閱讀器、遊戲引擎、網路瀏覽器、PDF 生成器和印表機驅動程式不使用相同的機制來確定行距。本教程提供資訊和示例,展示哪些字型度量最適合您的字型。我們還討論了使用 FontCreator 定義這些值是多麼容易,但本教程中的建議也適用於其他字型編輯器。
多年來,OpenType 規範和與這些度量相關的建議都發生了變化,因此網際網路上關於此主題有很多過時和不正確的資訊。
在 OpenType 出現之前,有僅用於 Windows 的 TrueType 字型和用於 Macintosh 的 Postscript 字型。OpenType 被髮明為通用(跨平臺)基於向量的字型格式,但它帶有具有平臺特定行為的相容性/遺留度量。這就是為什麼在 OpenType 字型資源中有三組間距度量:排版、Windows 和 Macintosh。
為了克服這些相容性問題,OpenType 規範中引入了一個新標誌。如果字型啟用了"使用 typo 度量進行行距",我們強烈建議這樣做,所有應用程式都應該使用這些跨平臺值來確定預設行距。
如果字型設定了此標誌"使用 typo 度量進行行距",則 Microsoft Word 使用排版值。否則,它使用 WinAscent 和 WinDescent 以及 LineGap 作為預設行距。
在 Windows 上,文字將在這些使用的上升器和下降器值上方被剪裁,因此確保所有字形輪廓都在視覺(非剪裁)區域內。
越來越多的應用程式使用排版間距度量值,但主要是遺留軟體仍然使用 Windows 或 Macintosh 特定度量。為了獲得一致的行距而不剪裁,我們建議採用以下方法。
Typo Ascender 和 Typo Descender 應該至少總和為"每 em 單位"(upem)。從覆蓋字型支援的主要語言的所有字形中獲取最大和最小垂直輪廓位置。通常擴充套件拉丁字符集,例如 Unicode 塊基本拉丁語以及拉丁語-1 補充,就可以了。然後按比例增加值,使它們總計 upem。
將 Typo Line Gap 值設定為 upem 的 7% 到 25% 之間,以便所有三個排版值的總和構成良好的預設行距。
WinAscent 和 WinDescent 應該容納所有字形的最大和最小垂直輪廓位置。按比例增加值,使 WinAscent - WinDecent 至少等於 TypoAscender - TypoDescender + TypoLineGap。
這些值代表字型建立者的設計意圖,而不是任何計算值,單個字形可能會超過它們代表的限制。某些應用程式(主要是基於 Mac 的)使用或曾經使用這些度量。
只需將這些設定為匹配相應的排版間距度量值。
既然您更好地瞭解瞭如何設定垂直間距值,手動計算所有這些值仍然不容易。幸運的是,FontCreator 有一個按鈕可以為您完成所有魔法:
根據您的喜好調整行距值,並確保您同意計算值。在 Windows、Macintosh、網路瀏覽器以及 Microsoft Word 和 Adobe InDesign 等應用程式上測試字型。
為樣式連結的字型(例如常規、斜體、粗體和粗斜體字型)使用相同的值,以便在更改字型樣式時文件佈局不會重新流動。
某些字型(用於複雜指令碼)可能包含基礎字元和組合標記,當一起使用時可能會超過計算的限制。在這種情況下,您應該考慮增加間距度量。
其他要求適用於打算用於垂直佈局的 CJK(中文、日文和韓文)字型。
您可能會發現不可能在不同應用程式之間獲得一致佈局和美觀間距之間的良好平衡。如果輪廓太小或太大,您應該考慮增加或減少字形輪廓的大小。如果 CapHeight 小於 ½ upem,我們認為輪廓太小,如果超過 ¾ upem,則太大。
歡迎您提供反饋、改進建議以及與本教程和其他教程相關的問題;請將它們釋出到 High-Logic 字型論壇。
2022 年 12 月 3 日更新 - 更新了文字和螢幕截圖以反映 FontCreator 當前版本的更改