Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Uniscribe - это набор служб Microsoft Windows для визуализации текста в кодировке Unicode , особенно сложной разметки текста . Они реализованы в DLL USP10.DLL . USP10.dll стал общедоступным в Windows 2000 и Internet Explorer 5.0. Кроме того, платформа Windows CE поддерживает Uniscribe начиная с версии 5.0.

Хотя Uniscribe продолжает поддерживаться, в Windows 7 была введена его предполагаемая замена DirectWrite [ необходима цитата ] , которая имеет больше функций.

USP10.dll [ править ]

USP является аббревиатурой для U nicode S cripts P rocessor. Основное назначение Uniscribe:

  1. преобразование входного текста из входной последовательности в визуальную последовательность.
  2. замена глифов в зависимости от контекста (например, разные формы арабских символов)
  3. упорядочение отображаемого текста на основе направления потока текста (например, LTR vs RTL, горизонтальный vs вертикальный).

Ниже перечислены некоторые распространенные версии usp10.dll, а также способы их распространения.

Функции добавляются только в соответствии с частью номера версии "major.minor", третья часть в полном номере версии используется для идентификационных номеров целевой системы, для которой DLL была перенесена Microsoft, а последняя часть - это номер сборки на каждая версия целевой системы (которая может изменяться в ходе регулярных обновлений системы / программного обеспечения). Некоторые исправления предоставляют обновления только для определенных приложений (особенно в каталоге установки Office) и не подходят для использования в системном каталоге Windows (чья версия DLL никогда не должна обновляться и часто защищается системой):

Размеры файлов могут различаться в зависимости от конкретных локализаций библиотеки DLL (в зависимости от целевой системы или приложения, для которого она была скомпилирована); приведенные здесь предназначены для английско-американской локализации.

Универсальный движок шейпинга [ править ]

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

UniScribe использует несколько специфичных для сценариев механизмов формирования для обработки типографики в поддерживаемых сложных сценариях; они реализованы в дополнение к общему механизму для несложных шрифтов (таких как кириллица, греческий, латинский и т. д.). В настоящее время используемые движки включают [2] индийские (бенгальский, деванагари, гуджурати, гурмукхи, каннада и т. Д.), Арабский, хангыль, иврит, кхмерский, мьянманский и тайский / лаосский варианты.

Сложность стандарта Unicode и неоднозначность спецификации OpenType часто приводят к неполным или ошибочным реализациям сложного текстового макета. Механизмы формирования для конкретных сценариев работают от случая к случаю и не всегда обрабатывают общие функции шрифтов OpenType, что затрудняет поддержку новых сценариев программистам ОС и разработчикам шрифтов. Ошибки реализации очень трудно или невозможно исправить на более позднем этапе без нарушения обратной совместимости для существующих документов и шрифтов, часто требующих новых функций компоновки OpenType и переделки существующих шрифтов и механизмов визуализации типографики. [2] [6] [7] [8]

В Windows 10 была проведена большая работа по рефакторингу для реализации обобщенной модели формирования, Universal Shaping Engine (USE). Этот механизм напрямую основан на свойствах глифов, определенных в стандарте Unicode, в надежде, что любой сложный сценарий с подходящим шрифтом будет поддерживаться без времени и усилий, необходимых для создания специального механизма формирования. [3]

ЕГЭ строится на обобщенной «универсальной кластерной модели», разработанной для индийских шрифтов, которая моделирует надмножество систем письма человека. Движок классифицирует каждый символ сложного скрипта на несколько категорий, базовых классов и подклассов. Например, предварительная индийская классификация включает общие, слоговые и позиционные категории, далее разделенные на основание (число, согласный, буква тона, зависимый гласный и т. Д.), Базовый гласный (независимый гласный), число (присоединяющееся число Брахми), конечный , средние согласные и согласные-модификаторы, средние согласные, а также верхние, нижние, левые и правые согласные и гласные. Строки символов Unicode преобразуются в набор классов USE с использованием четко определенных правил,превращение композиции глифов в стандартную процедуру и разрешение межсимвольного взаимодействия, невозможного с текущими языковыми функциями, определенными в спецификациях OpenType.[2]

Универсальный движок шейпинга был представлен на встрече разработчиков OpenType в 2014 году; совместимый подход также был реализован в текстовом формирователе HarfBuzz с открытым исходным кодом . В Windows 10 USE обрабатывает в общей сложности 45 сложных сценариев: балийский, батак, брахми, бугинский, бухид, чакма, чам, дуплоян, египетские иероглифы, Гранта, Хануно, яванский язык, Кайти, Кая Ли, Харошти, Ходжки, Худавади, Лепча, Лимбу, Махаджани, Мандайский, Манихейский, Мэйтей Майек, Моди, Монгольский, Н'Ко, Пахау Хмонг, Пхаг-па, Псалтырь пехлеви, Реджанг, Саураштра, Шарада, Сиддхам, Сингальский, Сунданский, Силоти Тагбанри, Тагалог Tai Le, Тай Tham (очень несовершенно), Тай Вьет, Такри, тибетский, Тифинаг и Tirhuta.

Версии [ править ]

Хотя Uniscribe стал доступен с Windows 2000, новые версии Uniscribe предоставили системе больше функций, а именно поддержку других систем письма. Более раннее обновление поддерживает отображение арабского и иврита , затем тайского и вьетнамского языков . Начиная с Windows XP , поддерживается больше южноазиатских и ассирийских алфавитов.

См. Также [ править ]

  • Международные компоненты для Unicode
  • OpenType
  • Продвинутая типографика Apple
  • Панго
  • Графит (SIL)
  • DirectWrite

Ссылки [ править ]

  1. ^ https://msdn.microsoft.com/en-us/goglobal/bb688099.aspx#W10 >
  2. ^ a b c d Джон Хадсон (10 мая 2016 г.). «Создание шрифтов для универсального механизма шейпинга» (PDF) . Tiro Typeworks . Проверено 9 июня 2020 .
  3. ^ a b Windows формирует языки мира - Эндрю Гласс
  4. ^ "RE: Шрифт Symbola (был: шрифт Джеймса Касса и Code2000)" . Проверено 29 января 2011 .
  5. ^ Public Review Issue # 37 , Предложение по разъяснению и консолидации функции ZERO WIDTH JOINER в индийских скриптах , Консорциум Unicode
  6. ^ Проблемы индийской типографики в текущих реализациях OpenType Layout - Джон Хадсон
  7. ^ Исправление разметки Indic2 OpenType - Джон Хадсон
  8. ^ За рамками формирования и к общей модели типографики OpenType - Джон Хадсон
Ноты
  • Не описывать
  • Типографика Microsoft
  • Не подписывайтесь на MSDN
  • Летний институт языкознания. Не описывать версии

Внешние ссылки [ править ]

  • Как обновить usp10.dll в Windows 2000
  • Не описывать версии
  • Введение в Uniscribe и хорошую демонстрацию