Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Деванагари ddhrya -ligature, как показано на JanaSanskritSans шрифт, который должен быть вызван с помощью макета двигателя , чтобы сделать последовательность द + ् + ध + ् + र + ् + य = द्ध्र्य.
Слово العربية al-arabiyyah , «арабский [язык]» на арабском языке, в последовательных стадиях передачи. В первой строке показаны буквы в порядке слева направо и без них, как они могут отображаться в приложении без сложного макета текста. Во второй строке было применено двунаправленное отображение, а в третьей механизм формирования глифов отображал буквы в соответствии с контекстом.

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

Скрипты, требующие CTL для правильного отображения, могут быть известны как сложные скрипты . Примеры включают арабский алфавит и письменности брамической семьи , такие как деванагари , кхмерское письмо или тайский алфавит . Многие скрипты не требуют CTL. Например, латинский алфавит или китайские символы можно набирать, просто отображая каждый символ один за другим в прямых строках или столбцах. Однако даже у этих сценариев есть альтернативные формы или дополнительные функции (например, курсивное письмо), которые требуют CTL для создания на компьютерах.

Характеристики, требующие CTL [ править ]

Основные характеристики сложности CTL:

  • Двунаправленный текст , где символы могут быть написаны справа налево или слева направо.
  • Контекстно-зависимые формы и лигатуры , при которых персонаж может изменять свою форму в зависимости от своего местоположения и / или окружающих символов. Например, у символа арабского письма может быть до четырех различных форм, в зависимости от контекста.
  • Порядок, при котором отображаемый порядок символов не совпадает с логическим порядком. Например, в деванагари, который записывается слева направо, графема Появится «й» слева от ( «до») согласные , что: в कि кий , то ि -i должен оказывать на левом , его нос достигает точки выше k- вправо.

Не все проявления этих характеристик требуют CTL. Например, в греческом алфавите есть контекстно-зависимая форма буквы сигма , которая отображается как ς в конце слова и σ в другом месте. Однако эти две формы обычно хранятся как разные символы; например, Unicode имеет как U + 03C2 ς ГРЕЧЕСКАЯ СТРОЧНАЯ БУКВА КОНЕЧНАЯ СИГМА, так и U + 03C3 σ ГРЕЧЕСКАЯ СТРОЧНАЯ БУКВА СИГМА , и не рассматривает их как эквивалентные . В целях сопоставления и сравнения программное обеспечение должно рассматривать строку «δῖος Ἀχιλλεύς» как эквивалентную «δῖοσ Ἀχιλλεύσ», [1] но для целей набора они различны, и CTL не требуется для выбора правильной формы.

Реализации [ править ]

Большая часть программного обеспечения для рендеринга текста, поддерживающего CTL, будет включать информацию о конкретных сценариях и, таким образом, сможет правильно их отображать без файлов шрифтов, требующих предоставления инструкций о том, как расположить символы. Такое программное обеспечение обычно предоставляется в виде библиотеки ; примеры включают:

  • Core Text для macOS
  • Uniscribe (с универсальным механизмом шейпинга) и DirectWrite для Microsoft Windows
  • HarfBuzz , кроссплатформенная библиотека
  • Pango , кроссплатформенная библиотека, которая в настоящее время включает HarfBuzz

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

Примеры этого последнего подхода включают Apple Advanced Typography (AAT) и Graphite . Оба эти названия охватывают как формат инструкций, так и поддерживающее его программное обеспечение; AAT включен в операционные системы Apple , а Graphite доступен для систем на базе Microsoft Windows и Linux .

Формат OpenType в первую очередь предназначен для систем, использующих первый подход (знание макета в рендерере, а не в шрифте), но он имеет несколько функций, которые помогают с CTL, такие как контекстные лигатуры. Инструкции AAT и Graphite могут быть встроены в файлы шрифтов OpenType.

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

  • Типография
  • Юникод
  • Системы письма, требующие сложной верстки текста:
    • Арабский алфавит
    • Большинство сценариев семейства брахманов
    • N'Ko сценарий
    • Тенгвар (диакритические знаки и цифры)

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

  1. ^ «FAQ - Греческий язык и сценарий» . Консорциум Unicode. 2012-12-03 . Проверено 13 сентября 2013 . Легче просто приравнять два сигма-кода для операций, которые, например, связаны с содержанием слова.

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

  • Примеры сложного рендеринга - примеры сложных систем письма по всему миру от SIL international
  • Сложная верстка текста - настольные технологии Open Group
  • Поддержка индийских скриптов в Mozilla, а также других скриптов CTL
  • Project SILA - проект интеграции Graphite и Mozilla
  • Архитектура CTL в Solaris - технические документы по глобализации Solaris
  • Сложные сценарии - глобальный портал разработки и вычислений Microsoft
  • Домашняя страница Theppitak - информация об обработке тайского языка
  • Страница HarfBuzz на Freedesktop.org
  • D-Type Unicode Text Module - портативная программная библиотека для сложного текста
  • BidiRenderer - приложение, которое иллюстрирует формирование и расположение сложного текста в двунаправленных абзацах с помощью FriBidi, FreeType и HarfBuzz.
  • Tehreer-Android - библиотека, которая дает полный контроль над технологиями, связанными с текстом, такими как двунаправленный алгоритм, формирование открытого типа, набор текста и рендеринг текста.