[HarfBuzz] Ligatures
Richard Wordingham
richard.wordingham at ntlworld.com
Sat May 23 15:33:12 UTC 2020
On Sat, 23 May 2020 11:25:38 +0300
Eli Zaretskii <eliz at gnu.org> wrote:
> > From: Khaled Hosny <dr.khaled.hosny at gmail.com>
> > Date: Sat, 23 May 2020 09:51:21 +0200
> > Cc: harfbuzz at lists.freedesktop.org
> > What are you going to do about kerning, or mark positioning?
> > Partially kerning arbitrary glyphs (because the sub string match
> > some regular expression) is worse than not kerning at all.
>
> I don't think I understand the question. How is kerning related to
> the issue at hand? I'm not an expert on typesetting text (so maybe I
> don't even understand what exactly is meant by "kerning" in this
> context), so please tell more details about this.
The simplest way of laying out proportionally spaced text is to have a
fixed glyph-dependent distance ('advance width') from the 'origin' of a
glyph to the origin of the next glyph and simply lay them out in a
sequence, like movable type. However, if one chooses widths suitable
for the sequences 'AM' and 'MV', then there may be an unsightly gap in
the middle of 'AV'. Kerning is basically the process of adjusting those
gaps. Kerning is done by the shaper. To do it, it needs the
whole sequence of characters.
To a first approximation, mark positioning is handled by passing the
whole clusters to the shaper, and suitable regular expressions will
handle this. However, sometimes clusters will interact. Microsoft had
an example in the OpenType specification of the handling of the sequence
Wö <U+0057, U+006F, U+0308> with a comparatively huge 'W'. In this
example, the umlaut would be lowered to get out of the way of the 'W'.
To do this, the shaper has to be presented with "W" and "ö" as part of
the same sequence.
Richard.
More information about the HarfBuzz
mailing list