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


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.


Reply via email to