Сложная верстка текста
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Июль 2013 г. ) |
Сложная компоновка текста ( CTL ) или сложная рендеринг текста — это набор систем письма , в которых форма или расположение графемы зависит от ее отношения к другим графемам. Этот термин используется в области интернационализации программного обеспечения , где каждая графема является символом .
Сценарии, для правильного отображения которых требуется CTL, могут называться сложными сценариями . Примеры включают арабский алфавит и шрифты брахмической семьи , такие как деванагари , кхмерский алфавит или тайский алфавит . Многие сценарии не требуют CTL. Например, латинский алфавит или китайские символы можно набирать, просто отображая каждый символ один за другим в прямых строках или столбцах. Однако даже эти сценарии имеют альтернативные формы или дополнительные функции (например, рукописное письмо), для создания которых на компьютерах требуется CTL.
Характеристики, требующие CTL
[ редактировать ]Основными характеристиками сложности CTL являются:
- Двунаправленный текст , где символы могут быть написаны как справа налево, так и слева направо.
- Контекстно-зависимое формирование и лигатуры , при которых персонаж может менять свою форму в зависимости от своего местоположения и/или окружающих символов. Например, символ арабского письма может иметь до четырех различных форм в зависимости от контекста.
- Порядок, при котором отображаемый порядок символов не совпадает с логическим порядком. Например, в деванагари, который пишется слева направо, графема «короткое i» появляется слева («перед») от согласной, следующей за ней: в कि ki ि -i . должна отображаться слева , его лук доходит до क k- вправо.
Не все проявления этих характеристик требуют CTL. Например, в греческом алфавите буква сигма имеет контекстно-зависимую форму , которая отображается как ς в конце слова и σ в других местах. Однако эти две формы обычно сохраняются как разные символы; например, Unicode имеет оба U + 03C2 ς ГРЕЧЕСКАЯ СТРОЧНАЯ БУКВА ЗАКЛЮЧИТЕЛЬНАЯ СИГМА и U+03C3 σ ГРЕЧЕСКАЯ СТРОЧНАЯ БУКВА СИГМА и не рассматривает их как эквивалентные . В целях сопоставления и сравнения программное обеспечение должно рассматривать строку «δῖος Ἀχιλλεύς», эквивалентную «δῖοσ Ἀχιλλεύσ», [1] но для целей верстки они различны, и CTL не требуется для выбора правильной формы.
Реализации
[ редактировать ]Большинство программ рендеринга текста, поддерживающих CTL, будут включать информацию о конкретных сценариях и, таким образом, смогут правильно отображать их без необходимости в файлах шрифтов предоставлять инструкции о том, как располагать символы. Такое программное обеспечение обычно имеется в библиотеке ; примеры включают:
- Основной текст для macOS
- Uniscribe (с Universal Shaping Engine) и DirectWrite для Microsoft Windows
- HarfBuzz — кроссплатформенная библиотека.
- Pango — кроссплатформенная библиотека, которая в настоящее время включает HarfBuzz.
Однако такое программное обеспечение не может правильно отображать ни один сценарий, для которого у него нет инструкций, которые могут включать множество сценариев меньшинства. Альтернативный подход — включить инструкции по рендерингу в сам файл шрифта. Программное обеспечение для рендеринга по-прежнему должно уметь читать и следовать инструкциям, но это относительно просто.
Примеры этого последнего подхода включают Apple Advanced Typography (AAT) и Graphite . Оба эти названия охватывают как формат инструкций, так и поддерживающее его программное обеспечение; AAT включен в Apple операционные системы , а Graphite доступен для Microsoft Windows и Linux систем на базе .
Формат OpenType в первую очередь предназначен для систем, использующих первый подход (знания макета в средстве визуализации, а не шрифта), но он имеет несколько функций, которые помогают с CTL, например контекстные лигатуры. Инструкции AAT и Graphite могут быть встроены в файлы шрифтов OpenType.
См. также
[ редактировать ]- Типография
- Юникод
- Системы письма, требующие сложной компоновки текста:
- арабский алфавит
- Большинство Брахмического семейства. сценариев
- сценарий Н'Ко
- Тенгвар (диакритические знаки и цифры)
Ссылки
[ редактировать ]- ^ «Часто задаваемые вопросы — греческий язык и письменность» . Консорциум Юникод. 03.12.2012 . Проверено 13 сентября 2013 г.
Легче просто приравнять два сигма-кода для операций, связанных, например, с содержимым слова.
Внешние ссылки
[ редактировать ]- Примеры сложного рендеринга — SIL International. примеры сложных систем письма по всему миру от
- Сложная верстка текста — Open Group Desktop Technologies от
- Поддержка индийских скриптов в Mozilla , а также других CTL-скриптов.
- Project SILA — Graphite и Mozilla проект интеграции
- Архитектура CTL в Solaris — технические документы по глобализации Solaris
- Сложные сценарии — Глобальный портал развития и вычислений Microsoft
- Домашняя страница Theppitak — информация об обработке тайского языка
- Страница HarfBuzz на Freedesktop.org
- Текстовый модуль Unicode D-Type — портативная программная библиотека для сложного текста.
- BidiRenderer — приложение, которое иллюстрирует формирование и расположение сложного текста в двунаправленных абзацах с использованием FriBidi, FreeType и HarfBuzz.
- Tehreer-Android — библиотека, которая дает полный контроль над технологиями, связанными с текстом, такими как двунаправленный алгоритм, формирование открытого типа, набор текста и рендеринг текста.
- Tehreer-Cocoa — автономный движок шрифтов и текста для iOS.