Re: Why people still want to encode precomposed letters

From: verdy_p (
Date: Wed Nov 26 2008 - 14:53:09 CST

  • Next message: John Hudson: "Re: Why people still want to encode precomposed letters"

    "John Hudson" <>
    > verdy_p wrote:
    > > For example I spoke about the "special" mark-to-mark positioning for Vietnamese, where accents are not placed
    > > 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
    > > 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
    > > 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
    > > 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