Сложная текстовая раскладка ( 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.
Проще просто приравнять два сигма-кода для операций, которые связаны с содержимым слов, например.