Contact Us


Initiative B@bel

WSI Guidelines


















Type Design


Design Tools



Font Downloads










Font FAQ



Computers & Writing Systems


You are here: Rendering > Principles
Short URL: https://scripts.sil.org/CmplxRndExamples

Examples of Complex Rendering

Sharon Correll

Many writing systems around the world have complex rules governing the way the elements of the script are written. These kinds of writing systems require smart font technology to be rendered properly on the computer. Examples of smart font technologies include Graphite,  OpenType, and  AAT. Below are some examples of complex behaviors.

Diacritic Placement

Diacritics often require smart positioning. Notice that in the example below, the red grave accent must be positioned higher when there is an intervening diacritic such as a tilde, in contrast to when it appears directly over the base character. Similarly, the tilde must be positioned differently over the narrow "i" than the wider "e", and must be adjusted vertically when it is placed above an uppercase letter.

Diacritic positioning in Roman script

Many non-Roman scripts, such as Thai, also have stacking diacritics.

Stacking diacritics in Thai

Below is an example of a diacritic in Arabic script. The varying sizes of the base letters require smart placement of the diacritic.

Positioning in Arabic

Contextual Shaping

In many writing systems the exact shape of the letter depends on the neighboring characters or its position within the word. In Greek, the sigma takes an alternate form at the end of the word. (Note: in Unicode and most other encodings, the Greek word-final sigma is encoded as a distinct character, so a smart font is not required to show this behavior.)

Contextual shaping in Greek

Arabic script uses extensive contextual shaping to produce its cursive form. The figure below shows four forms of the letters "beh" and "meem". Typically there is a word-initial (red), word-medial (green), word-final (blue), and isolate (black) form of each character.

Contextual shaping in Arabic

The figure below shows a letter in Burmese (red) whose shape is dependent on the preceding consonant around which it must wrap:

Contextual shaping in Burmese

Here is an example of both contextual shaping and positioning in Burmese script. When the red character is added, the tail of the base character must be removed. To add the blue character, the preceding (red) letter must be moved to the left to make room for it.

Contextual shaping and positioning in Burmese


It is common in many scripts for multiple characters to combine into a single shape. Below is an example of the "lam-alef" ligature in Arabic script (note that the figure is read from right to left!):

An Arabic ligature

In Tamil script, the short and long "u" vowels form ligatures with the preceding consonant.

Consonant + u ligatures in Tamil

Here is another ligature typical of Indic scripts, involving a viramacized consonant followed by a second consonant. In the figure, the Tamil virama is written as a dot above the first consonant (but notice that the virama is not shown in the ligated form).

In Indic scripts, the term "conjuncts" is often used with regard to these letter combinations.

Tamil conjunct involving a viramacized consonant

In IPA, a sequence of tone letters combine to form a single tone contour symbol.

Ligature formation in IPA tone letters

Reordering and Splitting

It is common in Indic scripts for consonants and the vowels that follow them to form clusters, with the vowels being written in specific positions relative to the consonant. Below we see such behavior in Bengali, where the red items indicate vowels. In the first example, the vowel is displayed to the right of the preceding consonant (as expected), and in the second, the vowel is displayed to the left. In the third item, the vowel is split into two forms, one of which is written to the left and the other to the right.

Vowel reordering and splitting in Bengali

The following example shows a combination of reordering and conjunct creation in Devanagari script. The orange virama (or "halant") in Devanagari indicates the absence of a vowel. The red ra character is unique in that the virama causes it to be rendered as a "reph", above and to the right of the consonant cluster. The virama also causes the two neighboring blue consonants to form a conjunct, and in both cases the virama disappears. The following vowel (in green) is rendered to the left of the entire conjunct.

Conjunct with reordering in Devanagari script


Semitic scripts such as Arabic and Hebrew are written from right to left. Numerals, however, are written from left to right.

Birdirectionality in Arabic

Note: If you want to add a response to this article, you need to enable cookies in your browser, and then restart your browser.

Note: the opinions expressed in submitted contributions below do not necessarily reflect the opinions of our website.

© 2003-2019 SIL International, all rights reserved, unless otherwise noted elsewhere on this page.
Provided by SIL's Writing Systems Technology team (formerly known as NRSI). Contact us here.