Матрица поддержки шрифтов и письменностей
Коротко о главном
Заголовок раздела «Коротко о главном»Поддержка письменностей зависит от двух классов шрифтов. Стандартные 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 из Unicode Standard Annex (UAX) #9. Иврит переупорядочивается, но не формируется, что для этой письменности корректно.
Разобранный арабский пример и текущие ограничения направления справа налево см. в Рендеринг арабского HTML с направлением справа налево.
См. также
Заголовок раздела «См. также»- Шрифт: типы значений, встраивание и резервные шрифты — объект-значение
FontInfoи резервная замена на стандартные 14 шрифтов. - Типографика: реестр шрифтов, субсеттинг, CMap, кодировка, BiDi — регистрация, кодировка и движок двунаправленного письма.
- Матрица поддержки CSS — поддержка возможностей CSS, включая
direction.