![]() | This article includes alist of references,related reading, orexternal links,but its sources remain unclear because it lacksinline citations. Please helpimprove this article byintroducing more precise citations.(July 2013) (Learn how and when to remove this message) |
Complex text layout (CTL) orcomplex text rendering is thetypesetting ofwriting systems in which the shape or positioning of agrapheme depends on its relation to other graphemes. The term is used in the field of softwareinternationalization, where each grapheme is acharacter.
Scripts which require CTL for proper display may be known ascomplex scripts. Examples include theArabic alphabet and scripts of theBrahmic family, such asDevanagari,Khmer script or theThai alphabet. Many scripts do not require CTL. For instance, theLatin alphabet orChinese characters can be typeset by simply displaying each character one after another in straight rows or columns. However, even these scripts have alternate forms or optional features (such ascursive writing) which require CTL to produce on computers.
The main characteristics of CTL complexity are:
Not all occurrences of these characteristics require CTL. For example, theGreek alphabet has context-sensitive shaping of the lettersigma, which appears as ς at the end of a word and σ elsewhere. However, these two forms are normally stored as different characters; for instance,Unicode has bothU+03C2 ςGREEK SMALL LETTER FINAL SIGMA andU+03C3 σGREEK SMALL LETTER SIGMA, and does not treat them asequivalent. For collation and comparison purposes, software should consider the string "δῖος Ἀχιλλεύς" equivalent to "δῖοσ Ἀχιλλεύσ",[1] but for typesetting purposes they are distinct and CTL is not required to choose the correct form.
Most text-rendering software that is capable of CTL will include information about specific scripts, and so will be able to render them correctly withoutfont files needing to supply instructions on how to lay out characters. Such software is usually provided in alibrary; examples include:
However, such software is unable to properly render any script for which it lacks instructions, which can include many minority scripts. The alternative approach is to include the rendering instructions in the font file itself. Rendering software still needs to be capable of reading and following the instructions, but this is relatively simple.
Examples of this latter approach includeApple Advanced Typography (AAT) andGraphite. Both of these names encompass both the instruction format and the software supporting it; AAT is included onAppleoperating systems, while Graphite is available forMicrosoft Windows andLinux-based systems.
TheOpenType format is primarily intended for systems using the first approach (layout knowledge in the renderer, not the font), but it has a few features that assist with CTL, such as contextual ligatures. AAT and Graphite instructions can be embedded in OpenType font files.
It is easier to simply equate the two sigma codes for operations which are concerned with word content, for example.