Поделиться через


Шрифты и текстовые метрики

В этом разделе рассматриваются шрифты структуры, предоставляемые Windows, значения метрик шрифтов, которые могут меняться между версиями Windows, и рекомендации по использованию метрик шрифтов в классических приложениях.

  • Сведения, относящиеся к метрикам шрифта в DirectWrite, см. в текстовых метрик.
  • Дополнительные сведения об управлении текстом в приложениях с помощью GDI см. в разделах Шрифты и текст.

Дополнительные сведения об использовании шрифтов и спецификациях типов см. на веб-сайте microsoft typeography.

Доступные шрифты

Шрифты структуры, предоставляемые Windows, предоставляются как шрифты OpenType с контурами TrueType (Windows также поддерживает шрифты OpenType в формате CFF). Список всех шрифтов, предоставляемых Windows, см. в типографии Майкрософт: шрифты по продуктам или семейству. Все шрифты структуры Windows соответствуют последней версии спецификации OpenType OpenType.

Список всех текущих и устаревших шрифтов пользовательского интерфейса см. в разделе Метрики заблокированных шрифтов ниже.

Изменения шрифта

Чтобы обеспечить обратную совместимость, шрифты редко удаляются из Windows. Однако шрифты часто изменяются. Изменения могут включать добавление символов, перерисовку существующих символов, изменение подсказок или добавление или изменение поддержки расширенных функций OpenType и сложного формирования скриптов.

Заблокированные метрики шрифта

Обратите внимание, что некоторые значения, связанные с шрифтами пользовательского интерфейса и шрифтами по умолчанию, используемыми в приложениях Майкрософт, блокируются. Шрифты пользовательского интерфейса используются для отображения элементов пользовательского интерфейса, таких как субтитры, диалоги и меню. Очень мало изменений вносятся в эти шрифты, учитывая их высокую видимость и частое использование. Однако, поскольку сообщаемые значения, связанные с этими шрифтами, блокируются, могут возникнуть несоответствия между указанными и фактическими значениями шрифтов.

Указанные ниже значения блокируются для шрифтов пользовательского интерфейса и по умолчанию и могут быть неточными:

Ниже приведен список шрифтов пользовательского интерфейса, поставляемых с Windows 8.1 (затронутые заблокированными значениями):

Имя скрипта Шрифт пользовательского интерфейса
Арабский Пользовательский интерфейс Segoe
Армянский Пользовательский интерфейс Segoe
Бангла Пользовательский интерфейс Nirmala
Bopomofo Пользовательский интерфейс Microsoft JhengHei
Брайль Символ пользовательского интерфейса Segoe
Бугийский Пользовательский интерфейс Leelawadee
Канадские аборигены Syllabics Gadugi
Чероки Gadugi
Коптский Символ пользовательского интерфейса Segoe
Китайский (упрощенное письмо) Пользовательский интерфейс Microsoft YaHei
Китайский (традиционное) Пользовательский интерфейс Microsoft JhengHei
Кириллический Пользовательский интерфейс Segoe
Деванагари Пользовательский интерфейс Nirmala
Десерет Символ пользовательского интерфейса Segoe
Ethiopic Эббрима
Грузинский Пользовательский интерфейс Segoe
Glagolitic Символ пользовательского интерфейса Segoe
Готический Символ пользовательского интерфейса Segoe
Греческий Пользовательский интерфейс Segoe
Гуджарати Пользовательский интерфейс Nirmala
Гурмухи Пользовательский интерфейс Nirmala
Иврит Пользовательский интерфейс Segoe
Старый курсив Символ пользовательского интерфейса Segoe
Яванский Текст Javanese
Японский Пользовательский интерфейс Meiryo
Каннада Пользовательский интерфейс Mirmala
Кхмерский Пользовательский интерфейс Leelawadee
Корейский Малгун Готика
Лаосский Пользовательский интерфейс Leelawadee
Латинский Пользовательский интерфейс Segoe
Малаялам Пользовательский интерфейс Nirmala
Монгольский Монгольский Бейти
Мьянма Текст Мьянмы
Н'Ко Эббрима
Огам Символ пользовательского интерфейса Segoe
Ол Чики Пользовательский интерфейс Nirmala
Старый туркский Символ пользовательского интерфейса Segoe
Одия Пользовательский интерфейс Nirmala
Османя Эббрима
Phags-pa Microsoft PhagsPa
Рунический Символ пользовательского интерфейса Segoe
Сора Sompeng Пользовательский интерфейс Nirmala
Синхала Пользовательский интерфейс Nirmala
Сирийский Estrangelo Эдесса
Тай Ле Microsoft Tai Le
Новый Тай Лу Microsoft New Tai Lue
Тамильский Пользовательский интерфейс Nirmala
Телугу Пользовательский интерфейс Nirmala
Тифинаг Эббрима
Таана MV Boli
Тайский Пользовательский интерфейс Leelawadee
Тибетский Microsoft Хималайя
Ваи Эббрима
Yi Microsoft Yi Baiti

 

Ниже приведен список устаревших шрифтов пользовательского интерфейса, которые также влияют на заблокированные значения:

Имя скрипта (устаревшая версия) Шрифт пользовательского интерфейса (устаревшая версия)
Бангла Вринда
Канадские аборигены Syllabics Эвфемия
Чероки Plantagenet
Китайский (упрощенное письмо) Microsoft YaHei и SimSun
Китайский (традиционное) MingLiU и Microsoft JhengHei
Деванагари Мангал
Европейские языки Тахома
Гуджарати Шрути
Гурмухи Раави
Японский Мейрио и Готический пользовательский интерфейс MS
Каннада Тунга
Кхмерский Кхмерский
Корейский Gulim
Лаосский Лаосский пользовательский интерфейс
Малаялам Kartika
Языки Ближнего Востока Тахома
Одия Калинга
Сингальский Искоола Пота
Тамильский Латха и Vijaya
Телугу Гаутами
Тайский Лилаваде и Тахома

 

Эти шрифты используются в качестве значений по умолчанию в приложениях Майкрософт, а также влияют на заблокированные значения:

  • Arial
  • Calibri
  • Уэльс
  • Consolas
  • Курьер New
  • MS Mincho
  • Times New Roman
  • Вердана

Метрики динамических шрифтов

Кроме заблокированных метрик, перечисленных выше, значения шрифта точно сообщаются. Если шрифт изменен в новой версии Windows, динамические значения шрифта будут отличаться между новым и старым. Например, если глиф добавляется к шрифту, значения в заголовке шрифта могут измениться. Вырезка может привести к тому, что эти значения (включая xMin, xMax, yMin и yMax, а также сообщить о минимальном и максимальном ограничивающем поле для глифов в шрифте) были заблокированы и не сообщали истинные значения.

Важный

Если в приложении используются динамические значения шрифтов (например, в TEXTMETRIC), эти значения изменятся, если шрифты изменяются в будущих версиях Windows. Не используйте эти фактические значения в ситуациях, когда текст должен оставаться статическим.

 

Рекомендации по использованию метрик шрифта

  • Метрики экрана вычислений и метрики шрифта (например, средняя ширина) при запуске приложения и используйте эти значения для размещения приложения. Это обеспечит согласованную точную отрисовку, и макет будет реагировать на изменения шрифтов или разместить резервный вариант шрифта. Общие сведения о резервных вариантах шрифтов и связывании шрифтов см. в разделе Глобализация по шагу: шрифты. Дополнительные сведения см. в статье использование резервных шрифта.
    • Чтобы вычислить базовую метрику, отрисуйте репрезентативный текст для предполагаемого языка или скрипта.
    • Для элементов управления, содержащих только одну строку распакованного текста, выложите их в соответствии с полной шириной неисправного текста.
    • Для элементов управления с несколькими строками получите общую длину, разделите на длину символа, и у вас есть сплошная ширина для работы. Обратите внимание, что это сложнее для сложных сценариев, где один символ для читателя может быть несколькими точками кода.
  • Используйте sTypoAscender, sTypoDescender и unitsPerEm (из таблицы OS/2) для вычисления вертикального интервала. STypoAscender используется для определения оптимального смещения от верхней части текстового кадра до первого базового плана и sTypoDescender определяет оптимальное смещение от нижней части текстового кадра до последней базовой.
  • Если вы используете DirectWrite, создайте макет с помощью IDWriteTextLayout. IDWriteTextLayout предоставляет по возрастанию + по убыванию + lineGap в естественном макете. Доступ к этим конкретным значениям можно получить с помощью DWRITE_FONT_METRICS. Сведения об этом интерфейсе см. в форматировании текста и макете.
  • Если вы используете GDI, отрисовывать экран вне экрана, проверьте макет (например, длину строки или символы на строку) и пересчитывайте окончательные параметры макета, используемые в фактической отрисовке.
  • Не создавайте макеты статически на основе определенных значений для определенных версий шрифтов. Фактические значения могут меняться с выпуска на выпуск.

Справочник

IDWriteTextLayout

DWRITE_FONT_METRICS

TEXTMETRIC

единицPerEm

таблица OS/2

таблица метрик вертикальных устройств (VDMX)

типографию Майкрософт: шрифты по продуктам или семейству

концептуальные

текстовые метрики (DirectWrite)

шрифты и текст (GDI)

microsoft Typeography