From: verdy_p (verdy_p@wanadoo.fr)
Date: Wed Nov 26 2008 - 14:53:09 CST
"John Hudson" <john@tiro.ca>
> verdy_p wrote:
> 
> > For example I spoke about the "special" mark-to-mark positioning for Vietnamese, where accents are not placed 
on 
> > their normal anchor (above centered) if they are above a circumflex: "kerning" still does occur, despite of the 
> > generic mark-to-mark anchor, it affects the position of the acute or grace accent (above a circumflex), but it 
does 
> > not move to the right or left the possible subsequent mark-to-mark anchor after the acute/grave accent (which 
> > remains above-centered, but may be at a lower position than the one normally set by the acute/grave accent 
alone).
> 
> > In that case, the term "kerning" is still the one to choose for the position adjustment: this is a more complex 
> > case: you still need generic mark-to-mark positioning, but you also need kerning for some combinations of 
accents, 
> > to move them slightly away from their normal anchor position, but also to "slide down" the next generic anchor 
> > (something that kerning also performs for base-to-base positioning !).
> 
> No, that isn't kerning either. Kerning is an advance width adjustment. 
> Since combining marks are zero-width, they do not kern.
I have NOT written that the position adjustment for the next anchor had any effect on the advance width for the 
position of the next base glyph. I've just written that the fact that diacritics need to move anchors when they are 
stacked together means that they are affectively advancing those anchors for further diacritics) (but not 
necessarily the anchor for the next base glyph (the one that we call the "advance width").
I don't see, from a general point of view what is the difference between moving the anchor for the next base 
character and moving the anchor for the next diacritics above or below (note that some diacritics ARE also moving 
the anchor for the next base character).
You seem to restrict kerning to only one type of anchor, and only for base-to-base advance width, but why not take 
the problem more globally and consider that this is exactly the same problem when moving anchord for diacritics 
above, that may also move the anchor for the base character itself or for the next base character (consider the 
diacritics above or below letters i, I, l, or diacritics written on the left or right).
Your limited view about what kerning is (only horizontal) does not work in practice for many cases, even when there 
is just ONE diacritic on a single base character. In my case as in yours, the specific position adjustment is made 
based on pairs of glyph compositions: between two base letters, or between specific diacritics and a base letter, 
or between two diacritics. For me, kerning is every position adjustment (horizontal and/or vertical) that is made 
specifically for some pairs, but not for the generic case of arbitrary pairs.
The arbitray case is handled by the advanced width (base-to-base positioning) or generic anchor positions and does 
not use any list of exception pairs, and then you create a list of finely-tuned position adjustments for specific 
pairs of any kinf of pairs (the pairs may be designed as long lists of pairs of glyph Ids, or pairs of glyph 
classes (easier to design, you just need to define ONCE these classes in a font table, as lists of glyph ids that 
are memeber of each defined class, and then assign to the class its own id that can be referenced in the pairs for 
glyph-to-glyph positioning), or even substituted glyph ids (generated by GSUB rules to create merged glyphs that 
are internally positioned but handled as a whole if it was only one glyph, including pairs of diacritics treated as 
if it was a single diacritic or other combininations that are suitable for a font design) ; in addition these 
subst'ed ids could be members of glyph classes because they would also have the same kind of anchors:
This can be used then for handling all cases of position adjustments, including for adjusting the advance width, or 
the bounding box, or the collapsable margin box, or a editor cursor position (for complex 2D glyph layouts): the 
only difference is that they are defined using different anchors, and some anchors are needed for different uses.
This archive was generated by hypermail 2.1.5 : Wed Nov 26 2008 - 14:56:26 CST