Refresh

This website ru.stringtranslate.com/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D0%B9%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0/Complex_text_layout is currently offline. Cloudflare's Always Online™ shows a snapshot of this web page from the Internet Archive's Wayback Machine. To check for the live version, click Refresh.

stringtranslate.com

Сложная компоновка текста

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

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

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

Характеристики, требующие CTL

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

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

Реализации

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

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

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

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

Смотрите также

Ссылки

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

Внешние ссылки