Re: Combining marks with two letters

From: John Hudson (
Date: Tue Feb 12 2008 - 14:28:07 CST

  • Next message: John Hudson: "Re: Combining marks with two letters"

    Philippe Verdy wrote:

    > That's not the reply: I am looking for an encoded character (i.e. the code
    > point) that has the designated properties. I'm not refering to the
    > invisibility as an excuse (your statement is justifying the use of
    > invisibility because it's invisible). It's like if you said: I'm right
    > because I know I'm right. By definition an invisible thing is zero-width and
    > zero-contour. This does not mean this is a character, or even a glyph.

    A glyph is an indexed entity in a font glyf table or similar array. A no-ink, zero-width
    glyph is no different in this respect from any other kind of glyph, and font developers
    can include as few or as many such glyphs in their fonts as they want or need for
    particular purposes. The relationship of *any glyph* -- visibilium et invisibilium -- to a
    character is likewise font-internal. A glyph may be directly mapped to a character code
    via the cmap table (or, thankfully less common these days, via glyph name parsing) or
    indirectly via a glyph-to-glyph lookup. What James and I are talking about are mechanisms
    for handling positioning via CGJ if that character occurs in glyph strings for lookup
    processing, including mechanisms in which CGJ is represented by no-ink, zero-width glyph(s).

    There are other mechanisms possible, all also font-internal. The advisability of any
    mechanism depends on how layout engines interpret CGJ and whether they include it in glyph
    strings for layout purposes. A layout engine can make discreet use of control character
    glyphs, if it so chooses, so it is possible, for instance, that a CGJ glyph might be
    available to GSUB lookups but not to GPOS lookups; that might solve the dual use of CGJ as
    documented in the standard. Alternatively, a font developer might opt to impose such a
    restriction internally in the font, by removing CGJ glyphs from the string *as a GSUB
    operation* -- technically, a ligation of

            <any-glyph> CGJ -> <any-glyph>

    Such a lookup would remove the CGJ from subsequent GPOS lookups.

    In summation, what we really need is documentation from layout engine developers
    explaining how they interpret CGJ.

    John Hudson

    Tiro Typeworks
    Gulf Islands, BC
    The Lord entered her to become a servant.
    The Word entered her to keep silence in her womb.
    The thunder entered her to be quiet.
                 -- St Ephrem the Syrian

    This archive was generated by hypermail 2.1.5 : Tue Feb 12 2008 - 14:31:42 CST