Шрифты и текстовые метрики — Win32 apps
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 5 мин
В этом разделе рассматриваются шрифты структуры, предоставляемые Windows, значения метрик шрифта, которые могут меняться между версиями Windows, и рекомендации по использованию метрик шрифтов в классических приложениях.
- Сведения, относящиеся к метрикам шрифта в DirectWrite, см. в разделе «Текстовые метрики».
- Дополнительные сведения об управлении текстом в приложениях с помощью GDI см. в разделах, посвященных шрифтам и тексту.
Дополнительные сведения об использовании шрифтов и спецификациях типов см. на сайте шрифта Майкрософт.
Доступные шрифты
Шрифты структуры, предоставляемые Windows, доставляются как шрифты OpenType с контурами TrueType (Windows также поддерживают шрифты OpenType в формате CFF). Списки всех шрифтов, предоставляемых Windows, см. в разделе «Шрифты Майкрософт» по продуктам или семействам. Все Windows шрифты структуры соответствуют последней версии спецификации OpenType.
Список всех текущих и устаревших шрифтов пользовательского интерфейса см. в разделе «Заблокированные метрики шрифтов » ниже.
Изменения шрифта
Чтобы обеспечить обратную совместимость, шрифты редко удаляются из Windows. Однако шрифты часто изменяются. Изменения могут включать добавление символов, перерисовку существующих символов, изменение подсказок или добавление или изменение поддержки расширенных функций OpenType и создание сложных форм скриптов.
Метрики заблокированных шрифтов
Обратите внимание, что некоторые значения, связанные с шрифтами пользовательского интерфейса и шрифтами по умолчанию, используемыми в приложениях Майкрософт, блокируются. Шрифты пользовательского интерфейса используются для отображения таких элементов пользовательского интерфейса, как субтитры, диалоговые окна и меню. Очень мало изменений вносятся в эти шрифты, учитывая их высокую видимость и частое использование. Однако, так как сообщаемые значения, связанные с этими шрифтами, блокируются, могут возникнуть расхождения между указанными и фактическими значениями шрифтов.
Следующие сообщаемые значения блокируются для пользовательского интерфейса и шрифтов по умолчанию и могут быть неточными.
- Эти значения из таблицы OS/2 шрифта:
- xAvgCharWidth
- sTypoLineGap
- sTypoAscender
- sTypoDescender
- usWinAscent
- usWinDescent
- Значение unitsPerEm , заданное в заголовке шрифта
- Значения из таблицы метрик «Вертикальное устройство» (VDMX)
- Расширенные ширины для отдельных глифов
Ниже приведен список шрифтов пользовательского интерфейса, поставляемых с Windows 8.
1 (на которые влияют заблокированные значения):
| Имя сценария | Шрифт пользовательского интерфейса |
|---|---|
| Арабский | Segoe UI |
| Армянский | Segoe UI |
| Бангала (ранее Бенгали) | Nirmala UI |
| Бопомофо | Microsoft JhengHei UI |
| Брайля | Segoe UI Symbol |
| Бугийский | Leelawadee UI |
| Канадские аборигены syllabics | Gadugi |
| Чероки | Gadugi |
| Коптский | Segoe UI Symbol |
| Китайский (упрощенное письмо) | Microsoft YaHei UI |
| Китайский (традиционное письмо) | Microsoft JhengHei UI |
| Кириллица | Segoe UI |
| Девангари | Nirmala UI |
| Deseret | Segoe UI Symbol |
| Ethiopic | Ebrima |
| Грузинский | Segoe UI |
| Глаголитическое | Segoe UI Symbol |
| Готический | Segoe UI Symbol |
| Греческий | Segoe UI |
| Гуджарати | Nirmala UI |
| Гурмукхи | Nirmala UI |
| Иврит | Segoe UI |
| Старый курсив | Segoe UI Symbol |
| Яванская письменность | Текст Javanese |
| Японский | Пользовательский интерфейс Meiryo |
| Каннада | Пользовательский интерфейс Mirmala |
| Кхмерский | Leelawadee UI |
| Корейский | Malgun Gothic |
| Лаосский | Leelawadee UI |
| Латиница | Segoe UI |
| Малаялам | Nirmala UI |
| Монгольский | Mongolian Baiti |
| Мьянма | Myanmar Text |
| Н’Ко | Ebrima |
| Огхэм | Segoe UI Symbol |
| Письменность ол-чики | Nirmala UI |
| Старый туркский | Segoe UI Symbol |
| Одия (ранее Ория) | Nirmala UI |
| Османя | Ebrima |
| Phags-pa | Microsoft PhagsPa |
| Рунический | Segoe UI Symbol |
| Сора Сомпенг | Nirmala UI |
| Сингальский | Nirmala UI |
| Сирийский | Estrangelo Эдесса |
| Тай Ле | Microsoft Tai Le |
| Новая письменность тай-лю | Microsoft New Tai Lue |
| Тамильский | Nirmala UI |
| Телугу | Nirmala UI |
| Тифинаг | Ebrima |
| мальдивский | MV Boli |
| Тайский | Leelawadee UI |
| Тибетский | Microsoft Himalaya |
| Ваи | Ebrima |
| Носу | Microsoft Yi Baiti |
Ниже приведен список устаревших шрифтов пользовательского интерфейса, на которые также влияют заблокированные значения:
| Имя скрипта (устаревшая версия) | Шрифт пользовательского интерфейса (устаревшая версия) |
|---|---|
| Бангала (ранее Бенгали) | Вринда |
| Канадские аборигены syllabics | Эвфемия |
| Чероки | Plantagenet |
| Китайский (упрощенное письмо) | Microsoft YaHei и SimSun |
| Китайский (традиционное письмо) | MingLiU и Microsoft JhengHei |
| Девангари | Мангал |
| Европейские языки | Tahoma |
| Гуджарати | Шрути |
| Гурмукхи | Раави |
| Японский | Мейрио и Пользовательский интерфейс MS Gothic |
| Каннада | Tunga |
| Кхмерский | Кхмерский |
| Корейский | Gulim |
| Лаосский | Лаосский пользовательский интерфейс |
| Малаялам | Kartika |
| Языки Ближнего Востока | Tahoma |
| Одия (ранее Ория) | Калинга |
| Синхальский | Искоола Пота |
| Тамильский | Латха и Виджайя |
| Телугу | Gautami |
| Тайский | Лилаваде и Тахома |
Эти шрифты используются в качестве значений по умолчанию в приложениях Майкрософт и также влияют на заблокированные значения:
- Arial
- Calibri
- Cambria
- Consolas
- Courier New
- MS Mincho
- Times New Roman
- Verdana
Динамические метрики шрифтов
Кроме заблокированных метрик, перечисленных выше, значения шрифтов точно сообщаются.
Если шрифт изменен в новой версии Windows, динамические значения шрифтов будут отличаться между новым и старым. Например, при добавлении глифа в шрифт значения в заголовке шрифта могут измениться. Вырезка может привести к тому, что эти значения (включая xMin, xMax, yMin и yMax, а также сообщить о минимальном и максимальном ограничивающем прямоугольнике для глифов в шрифте) были заблокированы и не сообщали истинные значения.
Важно!
Если в приложении используются динамические значения шрифтов (например, в TEXTMETRIC), эти значения изменятся, если шрифты изменяются в будущих версиях Windows. Не используйте эти фактические значения в ситуациях, когда текст должен оставаться статическим.
Рекомендации по использованию метрик шрифта
- Метрики экрана вычислений и метрики шрифта (например, средняя ширина) при запуске приложения и используйте эти значения для размещения приложения. Это обеспечит согласованно точную отрисовку, и макет будет реагировать на изменения шрифтов или вместить резервный шрифт.
Общие сведения о резервном и связывании шрифтов см. в разделе «Пошаговые инструкции по глобализации: шрифты». Сведения об использовании резервных шрифтов см. в разделе «Использование резервных шрифтов » для сведений, относящихся к юникционным подписям.- Чтобы вычислить базовую метрику, отрисуйте репрезентативный текст для предполагаемого языка или скрипта.
- Для элементов управления, содержащих только одну строку нескрытого текста, разместите их в соответствии с полной шириной неисправного текста.
- Для элементов управления с несколькими строками получите общую длину, разделите на длину символа, и у вас есть сплошная ширина для работы. Обратите внимание, что это сложнее для сложных скриптов, где один символ для средства чтения может быть несколькими кодовой точками.
- Используйте sTypoAscender, sTypoDescender и unitsPerEm (из таблицы OS/2) для вычисления вертикального интервала. STypoAscender используется для определения оптимального смещения от верхней части текстового кадра до первого базового плана, а sTypoDescender определяет оптимальное смещение от нижней части текстового кадра до последней базовой.

- Если вы используете DirectWrite, создайте макет с помощью IDWriteTextLayout. IDWriteTextLayout предоставляет ascenderdescenderlineGap + + в естественном макете. Доступ к этим конкретным значениям можно получить с помощью DWRITE_FONT_METRICS. Сведения об этом интерфейсе см. в разделе «Форматирование текста» и «Макет».
- Если вы используете GDI, отрисовка вне экрана, проверьте макет (например, длину строки или символы на строку) и пересчитывайте окончательные параметры макета, используемые при фактической отрисовке.
- Не создавайте макеты статически на основе определенных значений для определенных версий шрифтов. Фактические значения могут меняться с выпуска на выпуск.
Reference
IDWriteTextLayout
DWRITE_FONT_METRICS
TEXTMETRIC
unitsPerEm
Таблица ОС/2
Таблица метрик вертикального устройства (VDMX)
Типография Майкрософт: шрифты по продукту или семейству
Основные понятия
Текстовые метрики (DirectWrite)
Шрифты и текст (GDI)
Шрифтовое оформление Майкрософт
Шрифт для метрики — Вопросы по шрифтам
#1 OFFLINE Sid V.

Отправлено 13 Март 2017 — 16:22
Ребят, помогите пожалуйста. Взялся сделать друзьям метрику, не могу подобрать шрифт для цифр. Чтобы «ноль» был похож на «ноль». Подскажите кто каким пользуется, или как называются те, что на фото. Перелопатил 1500 шрифтов, ничего подобного не подобрал.
Прикрепленные изображения
- Наверх
#2 OFFLINE kolokop
Отправлено 13 Март 2017 — 16:52
Вы пока всё это писали, из круга растянув или сжав получили бы такой ноль как Вам нравится.
На втором фото ровный круг.
Во многих языках буква О очень схожа с нолём.
- Наверх
#3 OFFLINE HAMM
Отправлено 13 Март 2017 — 17:08
Поиском, трафаретные шрифты.
На вскидку: DS Army Cyr, Glasten.
- Наверх
#4 OFFLINE 3D-BiG
Отправлено 13 Март 2017 — 18:45
Куча трафаретных шрифтов (так и искать)…. Или вертикальной полоской рассечь ноль в любом шрифте — дело пяти секунд…
- Наверх
#5 OFFLINE Sid V.
Отправлено 13 Март 2017 — 19:09
Последний комментарий очень понравился. Это мне в голову не пришло. Все оказывается очень просто.)) Спасибо всем ответившим. Оперативно отреагировали. Вечером буду пробовать.
- Наверх
#6 OFFLINE Seyv
Отправлено 14 Март 2017 — 00:19
Вертикальной не креативно Не армейскую весчь делаете и не на склад.
Проявите фантазию, ну хотя бы наискосок линией рассеките
»Прежде чем решать задачу, полезно ознакомиться с ее условиями.» Математик Дьердь Пойа
- Наверх
#7 OFFLINE 3D-BiG
Отправлено 14 Март 2017 — 09:48
Проявите фантазию, ну хотя бы наискосок линией рассеките
Ну да — по диагонали зафердипюлить….
Есть еще вариант: сделать заказ разработчикам шрифтов на свой дизайнерский шрифт…. Так я поступал, когда занимался газетами сканвордов, то заказывал специальные шрифты для набивания ответов сканвордов в текстовом режиме, а получал, в зависимости от типа шрифта, готовую таблицу с ответами или для сканвордов или для сотовых сканвордов, что резко увеличило производительность при подготовке макета газет — за 4 часа успевал сверстать 3 газеты и подготовить выдачу на фотовывод.
… И это на «Пне-2» с 128метрами памяти, ибо давно этим занимался — лет 15 назад…. Но это была НЕ единственная фича, позволявшая делать работу быстро и качественно — специально нарабатывал фичи для скоростной работы….
Сообщение отредактировал 3D-BiG: 14 Март 2017 — 11:13
- Наверх
#8 OFFLINE Nikodim-09
Отправлено 14 Март 2017 — 11:11
Последний комментарий очень понравился. Это мне в голову не пришло. Все оказывается очень просто.)) Спасибо всем ответившим. Оперативно отреагировали. Вечером буду пробовать.
Что получилось в итоге? Фото если есть.
- Наверх
#9 OFFLINE Sid V.

Отправлено 14 Март 2017 — 12:25
Фотки нет, на домашнем компе осталось. Пишу с рабочего. Взял обычный трафаретный шрифт с интернета, все равно все фердиплюшки на меленьких цифрах не видно будет, немного пораздвигал цифры «0», «6», «9», чтобы фрезой 2 мм можно было пройти, меньше не нашлось. Сегодня буду пробовать резать. Что получится, завтра сброшу.
- Наверх
#10 OFFLINE Sid V.
Отправлено 16 Март 2017 — 14:35
Вот что получилось. Откровенно говоря не могу оценить, пригодно ли «это» для подарка. С цифрами какая-то проблема. Прошу выдать экспертное заключение.
Прикрепленные изображения
- Наверх
#11 ONLINE vv92
Отправлено 16 Март 2017 — 19:30
Красота небесная.
У меня, правда со вкусом беда.
Знаю технику безопасности как свои три пальца.Эксперт — это существо, которое перестало мыслить, ибо оно знает!В мире еще много граблей, на которые не ступала нога человека.
Пожалуйста! Исправляйте мои глупые ошибки (но оставьте мои умные ошибки)!
- Наверх
#12 OFFLINE Seyv
Отправлено 16 Март 2017 — 20:10
Да, беда
»Прежде чем решать задачу, полезно ознакомиться с ее условиями.» Математик Дьердь Пойа
- Наверх
#13 OFFLINE Sid V.
Отправлено 17 Март 2017 — 11:39
У меня со вкусом та же история.
Может у кого есть конкретные замечания? С радостью послушал бы.
- Наверх
#14 OFFLINE yaso73
Отправлено 17 Март 2017 — 11:58
Пойдёт.
- Наверх
#15 OFFLINE Seyv
Отправлено 17 Март 2017 — 14:12
Повторюсь. Получился армейско-складской вариант. Для детей надо что-то детское, для сердца — сердечное
А то сердечко с серийным номером получилось, типа вот тебе — ты у меня 2016 цатая
»Прежде чем решать задачу, полезно ознакомиться с ее условиями.» Математик Дьердь Пойа
- Наверх
#16 OFFLINE 3D-BiG
Отправлено 17 Март 2017 — 15:09
Есть ряд шрифтов типа рукописных, но с незамкнутыми кругами, а еще проще взять любой понравившийся и порезать так, что-бы нормально смотрелось, поэтому, когда мне надо было выполнять подобного типа надписи, я не замудрялся, ибо достаточно владею Корелом, дабы нарезать буквы и подправить резку бокрасивей.
.. А то поиски шрифта (особенно правильно выполненного шрифтовиком, так что-бы и петель в буквах не было и кернинг в шрифте верно был настроен) в ворохах хлама ламмерских помазушек, тратишь времени больше, чем самому внести изменения, сделав из понравившегося трафаретный… А то до анекдота доходит: в винде родной для нее шрифт Георгия в начертании Италики для кириллических букв — полный гиморрой, ибо весь в петлях, а про кернинг — даже не слышали, ибо в нем хвостики букв постоянно накладываются друг на друга…
Сообщение отредактировал 3D-BiG: 17 Март 2017 — 15:13
- Наверх
#17 OFFLINE konkop
Отправлено 17 Март 2017 — 16:34
Беда не в том, что это некрасиво и безвкусно. А в том, что это не оригинально, ширпотреб.
Каждый второй «счастливый папаша» встречает свое расширившееся семейство с таким набором литер, сделанных за тридцать копеек чужими руками из отходов в цехе за углом. Поэтому переживать о тонкостях шрифта здесь вовсе избыточно.
- Наверх
#18 ONLINE vv92
Отправлено 17 Март 2017 — 16:40
Вы меня обижаете. А шарики тоже внучке не покупать?
Знаю технику безопасности как свои три пальца.Эксперт — это существо, которое перестало мыслить, ибо оно знает!В мире еще много граблей, на которые не ступала нога человека.
Пожалуйста! Исправляйте мои глупые ошибки (но оставьте мои умные ошибки)!
- Наверх
#19 OFFLINE konkop
Отправлено 17 Март 2017 — 16:45
А шарики тоже внучке не покупать?
Внучке можно.
Жене не советую )
- Наверх
#20 ONLINE vv92
Отправлено 17 Март 2017 — 16:47
Камешек в колечке или бритву для ног?
Знаю технику безопасности как свои три пальца.Эксперт — это существо, которое перестало мыслить, ибо оно знает!В мире еще много граблей, на которые не ступала нога человека.
Пожалуйста! Исправляйте мои глупые ошибки (но оставьте мои умные ошибки)!
- Наверх
Знакомство с Font Metrics
Файлы шрифтов содержат большое количество информации о шрифте. Являетесь ли вы дизайнером или разработчиком, узнав больше о том, как работают шрифты, вы можете открыть новые двери в том, как вы работаете и что вы создаете.
Что такое метрики шрифта?
Начнем со шрифта.
Шрифт — это цифровое представление гарнитуры, состоящее из ряда глифов (обычно называемых буквами или символами). Компьютеры считывают файл шрифта, чтобы отображать глифы на экране в виде пикселей. Чтобы описать, как все эти отдельные глифы должны быть собраны вместе в слова, предложения и абзацы, дизайнеры шрифтов кодируют шрифт с помощью метрики .
Метрики шрифта помогают компьютеру определять такие вещи, как расстояние между строками по умолчанию, насколько высокими или низкими должны быть подстрочные и надстрочные символы и как выравнивать два фрагмента текста разного размера рядом друг с другом.
Визуализация метрик шрифта очень похожа на рекомендации в Sketch или Photoshop.
Метрики для lato.ttf, просмотренные с помощью https://opentype.js.org/font-инспекции.html, а затем визуализированные.
Ваш компьютер постоянно использует метрики шрифтов, но как дизайнер или разработчик вы, вероятно, не думаете о них в повседневной жизни. Возможно, вы впервые слышите о метриках шрифтов.
Точно так же, несмотря на то, что средства проектирования и разработки используют метрики шрифтов «под капотом», они не часто раскрывают их своим пользователям. Но они могли — и это могло бы изменить то, как вы проектируете. Чтобы понять как, нам сначала нужно поговорить об анатомии шрифта.
Загляните внутрь, введите
За буквами, составляющими это предложение, скрывается анатомия. Как показано в приведенном ниже примере, изгиб буквы «s» называется корешком, а пробел внутри букв «a» или «o» — счетчиком. Затем есть воображаемая линия, на которой «сидят» все буквы (базовая линия), вершины заглавных букв (высота прописной буквы) и вершины строчных букв (высота x).
Анатомия шрифта. Кредит: https://www.fontshop.com/glossary.
Когда мы практикуем типографику, размещая текст на странице или экране, мы часто используем различные элементы анатомии для создания удобочитаемости и красоты. Например, подсказки для поиска в Картах Google содержат как название места, так и адрес.![]()
Чтобы помочь вам сосредоточиться на самой важной информации (название места), типограф выбрал для адреса меньший размер шрифта и более светлый цвет. Но для удобства чтения и название места, и адрес имеют общую цифру 9.0031 базовый уровень .
Базовая линия также полезна для создания вертикального ритма, который может облегчить читателям переход от строки к строке, от абзаца к абзацу и от раздела к разделу.
Еще одна часто используемая анатомия — высота крышки , верхняя часть заглавных букв. Это часто помогает выровнять ваш шрифт по верхнему краю изображения.
Уведомление от Airbnb.
Или можно объединить базовую линию и высоту заглавных букв, чтобы создать игривый контейнер для мелкого шрифта.
Название/описание с https://helmsworkshop.com/clients.
Когда мы центрируем значки по вертикали с помощью шрифта, мы обычно центрируем на основе высоты прописной буквы (если первая буква в верхнем регистре) или высоты x (если первая буква в нижнем регистре).
Типографская анатомия играет большую роль в наших проектах. Части этой анатомии закодированы в метриках шрифта, которые открывают дверь для наших инструментов, чтобы помочь по-новому.
Как сегодня наши инструменты используют метрики шрифтов?
Метаданные метрик шрифта используются такими инструментами, как Sketch, для включения таких функций, как интеллектуальные направляющие, которые могут помочь вам привязать базовую линию к сетке макета.
Точно так же вертикальное выравнивание CSS полностью зависит от метрик шрифта.
К сожалению, в большинстве случаев наши инструменты скрывают анатомию шрифта за ограничительной рамкой .
В Sketch ограничивающая рамка представлена маркерами выбора. В CSS вы можете увидеть это, установив background-color . Позиционирование всех типов связано с ограничительной рамкой, поэтому, если вам нужно 100 пикселей от верхней части экрана до абзаца, наши инструменты дают 100 пикселей до верхней части рамки, а не до верхней части буквы «L» (высота прописной буквы).
или нижняя (базовая линия).
Хотя наши инструменты, как правило, довольно хорошо помогают с выравниванием базовой линии, это не всегда так. Многоколоночные макеты в Sketch могут быть сложными. Если два заголовка разного размера выровнены по нижнему краю ограничивающей рамки, меньший неизбежно будет выглядеть слишком низким. Необходимо позаботиться о создании сетки макета для привязки к смарт-направляющим, или их необходимо выровнять вручную.
Точно так же не всегда работает выравнивание текста по верхнему краю значка. Слева инструмент Sketch для выравнивания по верхнему краю. Справа я вручную выровнял верхнюю часть буквы «L» со значком. На этот раз никакой помощи от умных гидов нет.
Наконец, вертикальное центрирование текста по значку — это проблема. Используя инструмент выравнивания Sketch, текст всегда выглядит слишком низко. То же самое верно и для CSS flexbox align-items: center .
Это связано с тем, что хотя пространство над и под ограничительной рамкой текста одинаковое, пространство над и под буквой «М» неодинаково.
В зависимости от шрифта и размера шрифта выравнивание часто может быть отклонено более чем на 1 пиксель.
Во всех этих примерах вы могли бы «на глазок», щурясь или увеличивая масштаб до тех пор, пока все не станет выглядеть справа . Однако просмотр на глаз имеет некоторые заметные недостатки:
- Перевод — просмотр на глаз приводит к множеству, казалось бы, случайных значений для интервалов/полей. Скажем,
поле: 27px 0 18px. Если вы не создаете проекты самостоятельно, разработчик может легко ошибиться при копировании значений из Sketch. И если вы работаете в команде с другими дизайнерами, соблюдение соглашения об интервалах (например, сетки 8pt) становится почти невозможным. - Техническое обслуживание — даже если все значения пробелов успешно вводятся в код, их легко случайно сломать при будущих изменениях кода.
- Гибкость — если размер, высота строки или шрифт когда-либо изменятся, вам придется снова все тщательно проверять на глаз.

С современными инструментами метрики шрифта обычно скрыты за кулисами. Но они не должны быть.
Как наши инструменты могут использовать метрики шрифтов?
Метрики шрифтов позволяют нам создавать более интеллектуальные инструменты. Они являются ключом к открытию ограничивающего прямоугольника, обнажая красивую типографскую анатомию внутри.
Например, если текущим шрифтом является Lato, Sketch может считать метрики шрифта lato.ttf , рассчитать расстояние от базовой линии до высоты шапки, а затем изменить ограничивающую рамку, чтобы привязать ее к этой новой высоте. Вертикальное выравнивание по центру теперь работает отлично.
После сообщения о вашем намерении центрировать по высоте крышки инструменты могут сохранить его. Если нужно увеличить размер значка или уменьшить размер текста (например, если ваши пользователи настроили размер базового шрифта CSS в своем браузере), ничего не сломается.
То же самое преимущество применяется при изменении шрифта (возможно, ваш веб-шрифт не загружается или вы используете стратегию системных шрифтов).
Писать код тоже становится проще — не более того align-self: flex-start; поле сверху: 13px; , чтобы идеально центрировать текст. Если бы CSS предоставлял метрики шрифтов через свойство, такое как ведущая обрезка, flexbox мог бы позаботиться обо всем за вас.
.icon-метка {
/*
обрезать биты ограничивающей рамки
выше высоты шапки и ниже
идеографическая базовая линия
*/
окантовка: кепка идеографическая;
/*
затем центрируйте, используя обрезанную высоту
*/
выровнять себя: по центру;
} Наши инструменты также могут использовать метрики шрифта, чтобы смотреть на x-высоту и предлагать читаемый шрифт для основного текста, быстро находить подходящий запасной шрифт, чтобы избежать FOUC, или в отдаленном будущем алгоритмически предлагать пары шрифтов.
Использование фантастического средства сопоставления стилей шрифтов Моники Динкулеску, чтобы избежать FOUC. Могут ли метрики шрифтов убрать часть догадок?
Заключение
Хорошая типографика — это сложно, но с хорошими инструментами это может быть проще.
Использование необработанных анатомических особенностей шрифта может позволить нам создавать точные, эластичные, читабельные и, возможно, даже оригинальные дизайны.
Но может быть трудно радоваться функциям Sketch, которых не существует, и свойствам CSS, которые не реализованы. К счастью, мы можем построить некоторые из них сами! В следующей статье я расскажу, как именно извлекать и читать метрики шрифтов для ваших шрифтов. Когда у вас будут необработанные данные, я объясню математику их использования в макете и то, как они могут быть полезны в современных HTML и CSS.
Дальнейшее чтение
Метрики шрифтов — низкоуровневая деталь реализации, но они далеко не скучны. Если вам интересно узнать больше, ознакомьтесь с некоторыми из этих фантастических ресурсов. А если ведущая обрезка звучит как привлекательная функция CSS, ознакомьтесь с CSSWG #3240.
- Глубокое погружение в CSS: метрики шрифта, высота строки и выравнивание по вертикали Винсент Де Оливейра
- Приступаем к тонкостям рендеринга текста в Sketch, автор Яким ван Зуйлен
- Understanding the First Baseline Position of Text Майк Рэнкин
- Стоит отметить, что наши старые инструменты дизайна (InDesign, Illustrator) предоставляют более широкие возможности управления метриками шрифта, чем сегодняшние современные инструменты
Шрифты и текстовые метрики — приложения Win32
Редактировать
Твиттер LinkedIn Фейсбук Эл.
адрес
- Статья
- 5 минут на чтение
В этом разделе обсуждаются контурные шрифты, предоставляемые Windows, значения метрик шрифтов, которые могут различаться в разных версиях Windows, а также рекомендации по использованию метрик шрифтов в настольных приложениях.
- Сведения о метриках шрифтов в DirectWrite см. в разделе Текстовые метрики.
- Дополнительные сведения об управлении текстом в приложениях с помощью GDI см. в разделах Шрифты и текст.
Для получения более подробной информации об использовании шрифтов и спецификациях типов см. сайт типографики Microsoft.
Доступные шрифты
Контурные шрифты, поставляемые с Windows, поставляются как шрифты OpenType с контурами TrueType (Windows также поддерживает шрифты OpenType в формате CFF).
Списки всех шрифтов, поставляемых Windows, см. в разделе Типографика Microsoft: шрифты по продуктам или семействам. Все контурные шрифты Windows соответствуют последней версии спецификации OpenType.
Список всех текущих и устаревших шрифтов пользовательского интерфейса см. в разделе Показатели заблокированных шрифтов ниже.
Модификации шрифтов
Для обеспечения обратной совместимости шрифты редко удаляются из Windows. Однако шрифты часто модифицируются. Модификации могут включать добавление символов, перерисовку существующих символов, изменение подсказок или добавление или изменение поддержки расширенных функций OpenType и формирование сложных сценариев.
Метрики заблокированных шрифтов
Обратите внимание, что некоторые значения, связанные со шрифтами пользовательского интерфейса и шрифтами по умолчанию, используемыми в приложениях Microsoft, заблокированы. Шрифты пользовательского интерфейса используются для отображения таких элементов пользовательского интерфейса, как заголовки, диалоговые окна и меню.
В эти шрифты внесено очень мало изменений, учитывая их высокую заметность и частое использование. Однако, поскольку сообщаемые значения, связанные с этими шрифтами, заблокированы, могут быть расхождения между сообщаемыми и фактическими значениями шрифта.
Следующие сообщаемые значения заблокированы для пользовательского интерфейса и шрифтов по умолчанию и могут указываться неточно:
- Эти значения из таблицы шрифтов OS/2:
- xAvgCharWidth
- ТипоЛайнГэп
- stypoAscender
- sTypoDescender
- usWinAscent
- usWinDescent
- В заголовке шрифта указано значениеunitPerEm
- Значения из таблицы показателей вертикального устройства (VDMX)
- Расширение ширины отдельных глифов
Вот список шрифтов пользовательского интерфейса, поставляемых с Windows 8.1 (затронутых заблокированными значениями):
| Имя сценария | Шрифт пользовательского интерфейса |
|---|---|
| Арабский | Сегоу UI |
| Армянский | Сегоу UI |
| бангла (ранее бенгальский) | Нирмала УИ |
| Бопомофо | Пользовательский интерфейс Microsoft JhengHei |
| шрифт Брайля | Символ пользовательского интерфейса Segoe |
| Бугийский | Лилавади UI |
| Слоговое письмо канадских аборигенов | Гадуги |
| Чероки | Гадуги |
| Коптский | Символ пользовательского интерфейса Segoe |
| Китайский (упрощенный) | Пользовательский интерфейс Microsoft YaHei |
| Китайский (традиционный) | Пользовательский интерфейс Microsoft JhengHei |
| Кириллица | Сегоу UI |
| Деванагари | Нирмала УИ |
| Десерет | Символ пользовательского интерфейса Segoe |
| Эфиопский | Эбрима |
| Грузинский | Сегоу UI |
| Глаголица | Символ пользовательского интерфейса Segoe |
| Готика | Символ пользовательского интерфейса Segoe |
| Греческий | Сегоу UI |
| Гуджарати | Нирмала УИ |
| Гурмухи | Нирмала УИ |
| Иврит | Сегоу UI |
| Старый курсив | Символ пользовательского интерфейса Segoe |
| Яванский | Яванский текст |
| Японский | Мейрио УИ |
| Каннада | Мирмала УИ |
| Кхмерский | Лилавади UI |
| Корейский | Мальгун Готика |
| Лаос | Лилавади UI |
| Латинский | Сегоу UI |
| малаялам | Нирмала УИ |
| Монгольский | Монгольский Байти |
| Мьянма | Мьянма Текст |
| Н’Ко | Эбрима |
| Огам | Символ пользовательского интерфейса Segoe |
| Ол Чики | Нирмала УИ |
| Древнетюркский | Символ пользовательского интерфейса Segoe |
| Одиа (ранее Ория) | Нирмала УИ |
| Османья | Эбрима |
| Фагс-па | Microsoft PhagsPa |
| Рунический | Символ пользовательского интерфейса Segoe |
| Сора Сомпенг | Нирмала УИ |
| Сингальский | Нирмала УИ |
| сирийский | Эстранжело Эдесса |
| Тай Ле | Майкрософт Тай Ле |
| Новый Тай Лю | Майкрософт Нью Тай Лю |
| Тамильский | Нирмала УИ |
| Телугу | Нирмала УИ |
| Тифинах | Эбрима |
| Таана | МВ Боли |
| тайский | Лилавади UI |
| Тибетский | Майкрософт Гималаи |
| Вай | Эбрима |
| Йи | Майкрософт Йи Байти |
Вот список устаревших шрифтов пользовательского интерфейса, на которые также влияют заблокированные значения:
| Имя сценария (устаревшее) | Шрифт пользовательского интерфейса (устаревший) |
|---|---|
| бангла (ранее бенгальский) | Вринда |
| Слоговое письмо канадских аборигенов | Евфимия |
| Чероки | Плантагенет |
| Китайский (упрощенный) | Microsoft YaHei и SimSun |
| Китайский (традиционный) | MingLiU и Microsoft JhengHei |
| Деванагари | Мангал |
| Европейские языки | Тахома |
| Гуджарати | Шрути |
| Гурмухи | Раави |
| Японский | Мейрио и пользовательский интерфейс MS Gothic |
| Каннада | Тунга |
| Кхмерский | Кхмерский |
| Корейский | Гулим |
| Лаос | Лаосский пользовательский интерфейс |
| малаялам | Картика |
| Ближневосточные языки | Тахома |
| Одиа (ранее Ория) | Калинга |
| сингальский | Искоола Пота |
| Тамильский | Латха и Виджая |
| Телугу | Гаутами |
| тайский | Лилавади и Тахома |
Эти шрифты используются по умолчанию в приложениях Microsoft, и на них также влияют заблокированные значения:
- Arial
- Калибри
- Камбрия
- Консолас
- Курьер Новый
- МС Минчо
- Таймс Нью Роман
- Вердана
Показатели динамического шрифта
Помимо заблокированных показателей, перечисленных выше, значения шрифта сообщаются точно.
Если шрифт изменен в новой версии Windows, динамические значения шрифта будут различаться между новым и старым шрифтом. Например, когда к шрифту добавляется глиф, значения в заголовке шрифта могут измениться. Отсечение может произойти, если эти значения (включая xMin, xMax, yMin и yMax, а также минимальную и максимальную ограничивающую рамку для глифов в шрифте) были заблокированы и не отображали истинные значения.
Важно
Если вы используете динамические значения шрифта в своем приложении (например, в TEXTMETRIC ), эти значения изменятся, если шрифты будут изменены в будущих версиях Windows. Не используйте эти фактические значения в ситуациях, когда текст должен оставаться статичным.
Рекомендации по использованию метрик шрифта
- Вычисляйте метрики экрана и метрики шрифта (например, среднюю ширину) при запуске приложения и используйте эти значения для макета приложения. Это обеспечит неизменно точную визуализацию, и ваш макет будет реагировать на изменения в шрифтах или приспосабливаться к резервному шрифту.
Обзор резервных шрифтов и связывания шрифтов см. в разделе Globalization Step by Step: Fonts. См. раздел «Использование резервного шрифта» для получения информации, относящейся к Uniscribe.- Чтобы вычислить базовую метрику, отобразите репрезентативный текст для предполагаемого языка/сценарии.
- Для элементов управления, которые содержат только одну строку развернутого текста, расположите их так, чтобы они соответствовали полной ширине необрезанного текста.
- Для элементов управления с несколькими строками получите общую длину, разделите ее на длину символа, и вы получите твердую ширину для работы. Обратите внимание, что это сложнее для сложных скриптов, где один «символ» для читателя может быть несколькими кодовыми точками.
- Используйте sTypoAscender, sTypoDescender и unitPerEm (из таблицы OS/2) для расчета интервала по вертикали. sTypoAscender используется для определения оптимального смещения от верхней части текстового фрейма до первой базовой линии, а sTypoDescender определяет оптимальное смещение от нижней части текстового фрейма до последней базовой линии.


Общие сведения о резервном и связывании шрифтов см. в разделе «Пошаговые инструкции по глобализации: шрифты». Сведения об использовании резервных шрифтов см. в разделе «Использование резервных шрифтов » для сведений, относящихся к юникционным подписям.

Обзор резервных шрифтов и связывания шрифтов см. в разделе Globalization Step by Step: Fonts. См. раздел «Использование резервного шрифта» для получения информации, относящейся к Uniscribe.