Re: How is glyph shaping done?

From: John Hudson (tiro@tiro.com)
Date: Fri Jan 31 2003 - 14:03:52 EST

  • Next message: Erik.Ostermueller@alltel.com: "compatibility between unicode 2.0 and 3.0"

    At 09:28 AM 1/31/2003, Mete Kural wrote:

    >So does this mean that every character rendered on the
    >screen in a Unicode-enabled program such as Internet
    >Explorer or some editor, have a corresponding
    >presentation form Unicode associated to it?

    No. Most complex script shaping is now handled by a combination of shaping
    engine and font lookups. The shaping engine analyses the text strings,
    performs any character level pre-processing (e.g. re-ordering for Indic
    scripts), and then implements specific lookups in the font for glyph
    substitution and positioning. This means that there is no need for the
    various contextual forms of Arabic letters to be encoded in a font's
    character-to-glyph mapping data at all.

    On Windows, the shaping engines for complex scripts are part of Uniscribe
    (usp10.dll) and make use of OpenType font technology. An Arabic OpenType
    font will contain layout features for Initial <init>, Medial <medi> and
    Final <fini> substitutions (and possibly Isolated <isol>, e.g. to handle
    contextual variation of the letter heh). Uniscribe analyses strings of
    Arabic text, keeps track of the position of letters and their neighbours,
    and implements the appropriate layout feature for each letter.

    For more information, see
    http://www.microsoft.com/typography/developers/opentype/default.htm, and
    the MS Arabic font specification at
    http://www.microsoft.com/typography/specs/default.htm

    John Hudson

    Tiro Typeworks www.tiro.com
    Vancouver, BC tiro@tiro.com

    A book is a visitor whose visits may be rare,
    or frequent, or so continual that it haunts you
    like your shadow and becomes a part of you.
                            - al-Jahiz, The Book of Animals



    This archive was generated by hypermail 2.1.5 : Fri Jan 31 2003 - 14:51:47 EST