This is an archive of the original scripts.sil.org site, preserved as a historical reference. Some of the content is outdated. Please consult our other sites for more current information: software.sil.org, ScriptSource, FDBP, and silfontdev



Home

Contact Us

General

Initiative B@bel

WSI Guidelines

Encoding

Principles

Unicode

Training

Tutorials

PUA

Conversion

Resources

Utilities

TECkit

Maps

Resources

Input

Principles

Utilities

Tutorials

Resources

Type Design

Principles

Design Tools

Formats

Resources

Font Downloads

Gentium

Doulos

IPA

Rendering

Principles

Technologies

OpenType

Graphite

Resources

Font FAQ

Links

Glossary


Computers & Writing Systems

SIL HOME | SIL SOFTWARE | SUPPORT | DONATE | PRIVACY POLICY

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



Ligatures

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



Bidirectionality

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: the opinions expressed in submitted contributions below do not necessarily reflect the opinions of our website.



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