跳到內容

字型與文字系統支援對照表

有兩種字型類別會決定可繪製哪些文字系統。Standard-14 字型(Helvetica、Times、Courier)涵蓋 WinAnsiEncoding 的字元集合,除此之外不涵蓋其他字元。已註冊的嵌入 TrueType 或 OpenType 字型,只有在該字型的字元對應表(character map)與目前的塑形路徑都涵蓋某文字系統時,才能繪製該文字系統。沒有任何單一字型類別能單獨繪製完整的 Unicode。

文字系統Standard-14 字型已註冊的嵌入字型
西歐拉丁文是 — 完整的 WinAnsiEncoding(Windows-1252)字元集合
WinAnsi 以外的拉丁重音字母、希臘文、斯拉夫文當字型的字元對應表涵蓋這些字元時
中文、日文、韓文(CJK)當字型的字元對應表涵蓋這些字元時
阿拉伯文、波斯文、烏都文搭配上下文塑形,且字元對應表涵蓋 Arabic Presentation Forms-B 區塊時
希伯來文重排為視覺順序;不塑形
泰文及其他複雜文字系統當字元對應表涵蓋這些字元時;進階塑形有所限制

Standard-14 家族 — Helvetica、Times 與 Courier — 會繪製完整的 WinAnsiEncoding(Windows 代碼頁 1252)字元集合:西歐重音拉丁字母、歐元符號,以及常見的排版標點,包含半形破折號與全形破折號、彎引號、項目符號、刪節號與商標符號(ISO 32000-2 Annex D.2)。它們不會繪製任何其他文字系統。若要繪製該字元集合以外的任何字元,請註冊嵌入字型。SymbolZapfDingbats 是兩個沒有度量相容替代字型的 standard-14 字型;當你需要其中任一個時,請註冊可嵌入的字型。

關於標準字型的工作流程,請參見 使用字型與對齊方式排版文字

已註冊的 TrueType 或 OpenType 字型只會在所選字型的字元對應表與目前的塑形路徑都提供涵蓋範圍時繪製 Unicode。光是註冊字型,並不保證每個碼位(code point)都有字形。

  • 涵蓋範圍取決於字元對應表。 引擎只有在嵌入字型將某碼位對應到字形時,才會繪製該碼位。為某一文字系統打造的字型不會繪製另一種文字系統。
  • 拉丁文、希臘文、斯拉夫文與 CJK 會直接依字元對應表繪製,每個碼位對應一個字形,前提是字型涵蓋這些字元。
  • 阿拉伯文還額外需要上下文塑形 — 起首形、中間形、結尾形與孤立形的字母形式,加上 Lam-Alef 連字 — 以及字元對應表涵蓋 Arabic Presentation Forms-B 區塊的字型。僅仰賴 OpenType Glyph Substitution(GSUB)的字型,以及 HarfBuzz 塑形路徑,都屬於未來工作。
  • 由右至左的文字系統(阿拉伯文、希伯來文、波斯文、烏都文)會依 Unicode Standard Annex (UAX) #9 中的 Unicode 雙向演算法重排為視覺順序。希伯來文會重排,但不會塑形,這對該文字系統而言是正確的。

關於阿拉伯文的實作範例與目前由右至左的限制,請參見 繪製由右至左的阿拉伯文 HTML