When fonts do not know everything: an extensible system for multilingual text rendering
We have been developing a general-purpose multilingual text-processing library, which is designed to be extensible. The font layout table is a newly introduced resource that enables users to add support for drawing new scripts and languages. Font layout tables complement fonts; the knowledge required for complex text layout is stored in fonts and/or font layout tables. If a font contains, for example, ligature information, the corresponding font layout table describes the knowledge other than ligatures. A font layout table is used to convert a character code sequence into a glyph string to be displayed. It consists of rules, structured as cascaded stages, that may contain regular expressions and character categories. This combination enables flexible code sequence manipulation. In our multilingual text-processing library, the drawing module is script- and language-independent. It reads the necessary fonts and font layout tables on demand. Since font layout tables conceal the differences between font formats, the drawing module can handle fonts of different formats in a unified manner. This paper describes the problems in drawing multilingual text, several existing solutions to the problems and their drawbacks, and our solutions in detail. Copyright (c) 2007 John Wiley & Sons, Ltd.
font rendering complex text layout multilingual text processing computer typography