From: James Kass (thunder-bird@earthlink.net)
Date: Mon Feb 11 2008 - 19:53:16 CST
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