Re: Combining marks with two letters

From: James Kass (
Date: Mon Feb 11 2008 - 19:53:16 CST

  • Next message: James Kass: "Re: Combining marks with two letters"

    John Hudson wrote,

    > Since CGJ is a kind of control character, it may or may not be 'painted' during line
    > layout, i.e. a glyph may or may not be displayed, and this depends on the individual
    > layout engine. If a glyph is displayed -- even an invisible, zero-width glyph -- then it
    > will break mark-to-mark positioning unless that glyph is accounted for in the GPOS
    > lookups. It can be accounted for, of course, because CGJ is technically a combining
    > character itself, and can certainly be classed as a mark in the font GDEF table. So what
    > you could do is position the indisible CGJ on the preceding mark as if it were another
    > mark and then position marks relative to the CGJ with a 0,0 offset. The trouble with this
    > approach is the ambiguity of the CGJ as mark: is it an above mark, a below mark, an
    > overlay mark? In order to function within GPOS lookups it needs to be able to play
    > multiple roles, mimicking the position of above marks in some situations and below marks
    > in other situations. That's tricky, although not impossible with a little creative
    > contextual GSUB accessing different CGJ glyphs despending on preceding context.
    > A preferable situation is one in which CGJ is not painted, and so does not interrupt the
    > glyph sequences for OTL lookups.

    It isn't a question of whether CGJ get inks on the screen, even the invisible
    kind. It's whether or not the rendering engine includes the character as
    part of look-up strings.

    If the rendering engine includes the GID for the CGJ as part of the
    look-up string submitted to the font, then CGJ needs to be included
    in the OT tables.

    It might be a good idea to bring this up on the OpenType list. Rendering
    engines need to deal with this in a consistent fashion in order to ensure
    that OpenType is cross-platform.

    It would seem strange to make anchor points for an invisible mark. I
    think that there should be no reason for a rendering engine to submit
    a CGJ as part of a GPOS look-up. (However, the rendering engine
    should never do any kind of canonical re-ordering after stripping
    out the CGJ.) Making multiple zero-width zero-contour glyphs so
    that different mark classes can essentially be assigned to the same
    *character* strikes me as a beautiful hack.

    Are there any circumstances where the CGJ would need to be included
    in a GSUB look-up? In other words, can the presence of CGJ in text
    trigger a ligature substitution?

    Best regards,

    James Kass

    This archive was generated by hypermail 2.1.5 : Mon Feb 11 2008 - 19:56:08 CST