Komplexes Textlayout - Complex text layout
Complex Text Layout ( CTL ) oder Complex Text Rendering ist der Satz von Schriftsystemen, bei denen die Form oder Positionierung eines Graphems von seiner Beziehung zu anderen Graphemen abhängt. Der Begriff wird im Bereich der Software- Internationalisierung verwendet , wo jedes Graphem ein Zeichen ist .
Skripte, die für eine korrekte Anzeige CTL erfordern, können als komplexe Skripte bezeichnet werden . Beispiele sind das arabische Alphabet und Schriften der brahmischen Familie , wie Devanagari , Khmer-Schrift oder das thailändische Alphabet . Viele Skripte erfordern keine CTL. Beispielsweise können das lateinische Alphabet oder chinesische Zeichen gesetzt werden, indem einfach jedes Zeichen nacheinander in geraden Zeilen oder Spalten angezeigt wird. Aber selbst diese Skripte haben alternative Formen oder optionale Funktionen (wie kursive Schrift), die CTL erfordern, um auf Computern zu produzieren.
Merkmale, die CTL erfordern
Die Hauptmerkmale der CTL-Komplexität sind:
- Bidirektionaler Text , wobei Zeichen entweder von rechts nach links oder von links nach rechts geschrieben werden können.
- Kontextsensitives Formen und Ligaturen , bei denen ein Zeichen seine Form abhängig von seiner Position und/oder den umgebenden Zeichen ändern kann. Beispielsweise kann ein Zeichen in arabischer Schrift je nach Kontext bis zu vier verschiedene Formen haben.
- Reihenfolge, bei der die angezeigte Reihenfolge der Zeichen nicht der logischen Reihenfolge entspricht. In Devanagari zum Beispiel, das von links nach rechts geschrieben wird, erscheint das Graphem für "kurzes i" links von ("vor") dem Konsonanten, auf den es folgt: in कि ki sollte das ि -i auf der linken Seite wiedergegeben werden , sein Bogen reicht bis über das क k- nach rechts.
Nicht alle Vorkommen dieser Merkmale erfordern CTL. Zum Beispiel hat das griechische Alphabet eine kontextsensitive Gestaltung des Buchstabens sigma , der als ς am Ende eines Wortes und an anderer Stelle erscheint. Diese beiden Formulare werden jedoch normalerweise als unterschiedliche Zeichen gespeichert; beispielsweise Unicode hat sowohl U + 03C2 ò GREEK SMALL LETTER FINAL SIGMA und U + 03C3 σ GREEK SMALL LETTER SIGMA , und nicht , sie als behandeln äquivalent . Für Sortier- und Vergleichszwecke sollte die Software die Zeichenfolge "δῖος Ἀχιλλεύς" als äquivalent zu "δῖοσ Ἀχιλλεύσ" betrachten, aber für Satzzwecke sind sie unterschiedlich und CTL ist nicht erforderlich, um die richtige Form zu wählen.
Implementierungen
Die meisten CTL-fähigen Text-Rendering-Programme enthalten Informationen zu bestimmten Skripten und können diese daher korrekt wiedergeben, ohne dass Schriftartdateien Anweisungen zum Anordnen von Zeichen bereitstellen müssen. Solche Software wird normalerweise in einer Bibliothek bereitgestellt ; Beispiele beinhalten:
- Kerntext für macOS
- Uniscribe (mit Universal Shaping Engine) und DirectWrite für Microsoft Windows
- HarfBuzz , eine plattformübergreifende Bibliothek
- Pango , eine plattformübergreifende Bibliothek, die heute HarfBuzz enthält
Eine solche Software ist jedoch nicht in der Lage, ein Skript, für das Anweisungen fehlen, richtig zu rendern, was viele Minderheitenskripte umfassen kann. Der alternative Ansatz besteht darin, die Wiedergabeanweisungen in die Schriftartdatei selbst aufzunehmen. Die Rendering-Software muss immer noch in der Lage sein, die Anweisungen zu lesen und zu befolgen, aber das ist relativ einfach.
Beispiele für diesen letzteren Ansatz sind Apple Advanced Typography (AAT) und Graphite . Beide Namen umfassen sowohl das Befehlsformat als auch die Software, die es unterstützt; AAT ist in Apple- Betriebssystemen enthalten , während Graphite für Microsoft Windows- und Linux- basierte Systeme verfügbar ist.
Das OpenType- Format ist in erster Linie für Systeme gedacht, die den ersten Ansatz verwenden (Layout-Kenntnisse im Renderer, nicht die Schriftart), es bietet jedoch einige Funktionen, die bei CTL helfen, wie z. B. kontextbezogene Ligaturen. AAT- und Graphite-Anweisungen können in OpenType-Schriftartendateien eingebettet werden.
Siehe auch
- Typografie
- Unicode
- Schreibsysteme, die ein komplexes Textlayout erfordern:
- Arabisches Alphabet
- Die meisten der Brahmic Familie von Skripten
- N'Ko-Skript
- Tengwar (Diakritik und Zahlen)
Verweise
Externe Links
- Beispiele für komplexes Rendering – Beispiele für komplexe Schriftsysteme von SIL international auf der ganzen Welt
- Komplexes Textlayout — Die Desktop-Technologien der Open Group
- Unterstützung indischer Skripte in Mozilla — auch andere CTL-Skripte
- Projekt SILA – Graphit- und Mozilla- Integrationsprojekt
- CTL-Architektur in Solaris — Solaris Globalization Whitepapers
- Komplexe Skripte – Microsoft Global Development and Computing Portal
- Theppitak's Homepage — Informationen zur thailändischen Sprachverarbeitung
- HarfBuzzs Seite auf Freedesktop.org
- D-Type Unicode Text Module — Tragbare Softwarebibliothek für komplexe Texte
- BidiRenderer — Eine Anwendung, die die Gestaltung und das Layout von komplexem Text in bidirektionalen Absätzen mit FriBidi, FreeType und HarfBuzz veranschaulicht
- Tehreer-Android — Eine Bibliothek, die die volle Kontrolle über textbezogene Technologien wie bidirektionale Algorithmen, Open Type Shaping, Textsatz und Textrendering bietet.