Подтвердить что ты не робот

Как символ Юникода отображается на глиф шрифта?

Мне интересно, что каждый char в Юникоде имеет кодовую точку; что аналогичный термин для символа в шрифте?

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

Например, когда текстовый редактор декодировал файл из его кодировки символов, и предположим, что греческая альфа α (U + 03B1). Каким именно процессом это приложение выбирает конкретный глиф в шрифте? У большинства приложений предпочтительный шрифт. Скажите, курьер. (И что происходит в случае редкого Unicode char с сердцем ♥ (U + 2665), что не в шрифте по умолчанию? Как приложение знает, что шрифт не содержит этого char?)

Есть ли у шрифта метаинформация о том, какие символы у него есть?

Если два шрифта имеют символ alpha, обязательно ли они имеют одну и ту же "кодовую точку"? Или это зависит от типа шрифта, такого как Type1, Type3, TrueType, OpenType?...

Спасибо за любые указатели или ссылки.

4b9b3361

Ответ 1

Шрифты TrueType состоят из нескольких разделов, а самое главное для этого вопроса - таблицы "глифов" и таблицы ( "cmap" ) для сопоставления символов этим глифам.

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

"Кодовая точка" полностью не зависит от символов, кодировок и шрифтов. Конкретная кодовая точка является универсальной, но для нее существует множество кодировок (UTF-8, UTF-16 и т.д.), И она будет отображаться на разные индексы глифов в разных шрифтах.

Документация разработчика Apple содержит довольно хороший раздел о деталях шрифтов TrueType:

http://developer.apple.com/fonts/ttrefman/

В частности:

Таблица глифов: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html

Карта символов: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html

Я также рекомендую приложение под названием BabelMap, которое дает вам массу интересной информации о шрифтах. В частности, просмотрите сводки инструментов /Unicode, утилиту анализа шрифтов и шрифтов и информацию о шрифтах/шрифтах, где вы можете извлечь всю таблицу отображения глифов в буфер обмена.