Starting from your final summary:
Manuel Mall wrote:
IMO FOP should limit itself to:
a) Use kerning only for consecutive characters within the same fo
Ok, but more on this later in this message ...
b) Limit itself to the kerning information in the font
Ok
c) Only apply kerning if the letter-spacing property has the value
"normal" (and the font supports it)
Isn't this condition too strong? I see kerning as an extra space,
something that is added to the letter spacing, not something that replaces
it.
A simple example with our kerning couple "AV":
a) at the moment kerning is not implemented, so with normal letter-spacing
the space between A and V seems bigger than the space between I and L, for
example;
b) we implement kerning, so the space between A and V is reduced and it
visually looks like the space between I and L;
c) what if we have a negative letter-spacing? if we don't apply kerning
any more, we go back to a): the space between A and V would seem bigger
than the space between I and L.
In other words: if the kerning value stored in the font is correct, it
should always be added to the letter spacing: it would make the characters
overlap only when the letter-spacing alone would make "normal" characters
overlap, and in this case this should be considered the desired output.
In the end XSL-FO has the letter-spacing property which users (and
programs generating XSL-FO) can use to adjust kerning.
A little doubt concerning letter spaces: at the moment, a letter space is
"assigned" to the preceding character. Is this correct? I don't remember
any section in the specs stating about the "ownership" of letter spaces
... I think that everything is simpler, from the point of view of both
users and implementors, if each letter space is owned by the preceding (or
following) formatting object, but this does not mean it is what the specs
require!
An example: if we have the text WORD where each letter is a fo:character,
the first three fo:character ATM have a letter space each, and the fourth
has none.
All is ok as long as the fo:characters have no (or equal) letter-spacing,
but what if each fo:character has a different letter-spacing property the
ouput is different according to the fo:characters controlling letter
spaces.
Regards
Luca