字体与文字系统支持矩阵
重点速览
标题为“重点速览”的章节文字系统能否渲染,取决于两类字体。标准 14 款字体(Helvetica、Times、Courier)只覆盖 WinAnsiEncoding 字符集。已注册的嵌入 TrueType 或 OpenType 字体,只有在该字体的字符映射表与当前塑形路径同时覆盖某文字系统时,才能渲染该文字系统。没有任何一类字体可以单独渲染全部 Unicode。
文字系统覆盖
标题为“文字系统覆盖”的章节| 文字系统 | 标准 14 款字体 | 已注册的嵌入字体 |
|---|---|---|
| 西欧拉丁文 | 是 — 完整的 WinAnsiEncoding(Windows-1252)字符集 | 是 |
| WinAnsi 之外的拉丁重音字符、希腊文、西里尔文 | 否 | 当该字体的字符映射表覆盖它们时 |
| 中文、日文、韩文(CJK) | 否 | 当该字体的字符映射表覆盖它们时 |
| 阿拉伯文、波斯文、乌尔都文 | 否 | 需配合上下文塑形,且字符映射表覆盖 Arabic Presentation Forms-B 区块 |
| 希伯来文 | 否 | 会重排为视觉顺序;不塑形 |
| 泰文及其他复杂文字系统 | 否 | 当字符映射表覆盖它们时;高级塑形能力有限 |
标准 14 款字体
标题为“标准 14 款字体”的章节标准 14 款字体家族 — Helvetica、Times 和 Courier — 可渲染完整的 WinAnsiEncoding(Windows 代码页 1252)字符集:西欧重音拉丁文、欧元符号,以及常见排版标点,包括短破折号和长破折号、弯引号、项目符号、省略号和商标符号(ISO 32000-2 Annex D.2)。它们不渲染任何其他文字系统。对于该字符集之外的任何字符,请注册一款嵌入字体。Symbol 和 ZapfDingbats 是标准 14 款字体中仅有的两款没有度量兼容替代字体的字体;当你需要其中任意一款时,请注册一款可嵌入的字体。
标准字体工作流请参见 使用字体与对齐排版文本。
已注册的嵌入字体
标题为“已注册的嵌入字体”的章节已注册的 TrueType 或 OpenType 字体渲染 Unicode 时,仅限于所选字体的字符映射表与当前塑形路径同时覆盖的范围。仅注册一款字体,并不能保证每个码位都有可用字形。
- 覆盖范围取决于字符映射表。 只有当嵌入字体将某个码位映射到字形时,引擎才会绘制该码位。为某一文字系统构建的字体,不会渲染另一种文字系统。
- 拉丁文、希腊文、西里尔文和 CJK 在字体覆盖它们时,会直接通过字符映射表渲染,一个码位对应一个字形。
- 阿拉伯文 还需要上下文塑形 — 词首、词中、词尾和独立字母形式,加上 Lam-Alef 连字 — 以及一款字符映射表覆盖 Arabic Presentation Forms-B 区块的字体。仅依赖 OpenType 字形替换(GSUB)的字体,以及 HarfBuzz 塑形路径,属于未来工作。
- 从右到左的文字系统(阿拉伯文、希伯来文、波斯文、乌尔都文)会使用 Unicode 标准附件(UAX)#9 中的 Unicode 双向算法重排为视觉顺序。希伯来文会被重排但不塑形,这对该文字系统而言是正确的。
阿拉伯语示例和当前的从右到左限制,请参见 渲染从右到左的阿拉伯语 HTML。
另请参阅
标题为“另请参阅”的章节- 字体:值类型、嵌入与回退 —
FontInfo值对象,以及标准 14 款字体的替代回退。 - 排版:字体注册表、子集化、CMap、编码、BiDi — 注册、编码与双向引擎。
- CSS 支持矩阵 — CSS 功能支持,包括
direction。