On Tue, Feb 19, 2013 at 05:53:04PM -0500, Behdad Esfahbod wrote: > On 02/19/2013 05:47 PM, Khaled Hosny wrote: > > On Tue, Feb 19, 2013 at 05:34:40PM -0500, Behdad Esfahbod wrote: > >> As for *where* to cut the ligature, here's what you need: > >> > >> * Count the number of cursor positions *inside* the ligature. For the > >> "fi" > >> ligature it's one. And we have one cursor position before the ligature, > >> so in > >> this case we need to cut it in two pieces, > >> > >> * The common heuristic then is to cut the advance width of the ligature > >> (well, cluster really) into two equal pieces. If you want to be fancy, you > >> can call hb_ot_layout_get_ligature_carets(), and if the number of carets > >> matches what you expect (1 in this case I believe?), you can use the > >> returned > >> caret positions instead of equally dividing the ligature. I haven't seen > >> anyone implementing this though, as it gives very marginal improvements > >> over > >> the heuristic. > > > > It can make quite some different with some Arabic ligatures, but few > > fonts implement it because few (no?) engines support it :) > > Correct. Maybe you can give me a font... ;)
OK, here is one :) https://github.com/khaledhosny/sahl-naskh > Note that BTW, a similar issue exists when kerning text. Most fonts implement > kerning by adjusting the advance width of the first glyph. What this means > however is that for a pair like "Te", if the e moves way under the T, > essentially we will get a very narrow selection width for the "T", and > unchanged width for the "e". That's less than ideal. > > In HarfBuzz we split the kerning half-and-half for old-style TrueType kern > pairs. But don't do something like that for GPOS kerning since, well, with > GPOS the font designer has full control on what to do. Maybe we should do the > same for GPOS kerning tables that only have adjustment for the first glyph and > not the second? Donno. May be a nice improvement. What do others think? I think it would be a good idea, that is the majority of LTR kerning anyway. Regards, Khaled _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
