The job of a rendering engine is to take a run of formatted text together with a list of available fonts, and create visual output for screen or printer, following the typographical rules for the writing systems used. The rules for rendering English are relatively simple. Typewriter-like output is acceptable for some uses. Laying out text in a variable-width font, with justification and hyphenation for line breaking, is a harder task, but one that had been solved on personal computers in the 1980s. Other simple alphabets, such as Cyrillic, Georgian, and Armenian, are no harder to display.
Other writing systems present harder challenges for rendering.
- Accented letters, in some cases with multiple accents
- Right-to-left writing (Arabic and Hebrew alphabets and some others)
- Complex shaping (Arabic and many South Asian alphabets)
- Large character sets (Primarily Chinese, Japanese, and Korean)
The leading rendering engines are
- Pango Free for Unix, Mac, Windows; LGPL
- SIL Graphite, Free for Unix, Windows; LGPL
- Trolltech Scribe, (No user-friendly links), Free for Unix, Mac, windows; GPL (Version 4 of Qt only)
- Microsoft Uniscribe, Proprietary, Windows only
- Apple ATSUI and MLTE, Proprietary, Mac only
(more details to come)