[HarfBuzz] No kerning?

Jamie Dale jamiedale88+harfbuzz at gmail.com
Mon Oct 5 14:48:22 PDT 2015


Yeah, we actually use a slightly older version of the Roboto font.

Here's what I get using the non-GPOS version:

[image: Inline images 1]

Things are a lot more squished than with our old code, but the "T" "e" part
might actually be the same (it's kinda hard to tell though).

-Jamie.

On 5 October 2015 at 22:27, Behdad Esfahbod <behdad.esfahbod at gmail.com>
wrote:

> The version of the font from Jamie *does* have a kern table.
>
> HB is kerning just fine:
>
> behdad:~ 0$ hb-shape Roboto-Regular.ttf Test
> [T=0+1126|e=1+1072|s=2+1071|t=3+690]
> behdad:~ 0$ hb-shape Roboto-Regular.ttf Test --features=-kern
> [T=0+1225|e=1+1072|s=2+1071|t=3+690]
>
> If I drop the GPOS table from font, HB will use the kern table, which
> produces
> slightly different kerning:
>
> $ hb-shape Roboto-Regular#1.ttf Test
> [T=0+1175|e=1 at -49,0+1023|s=2+1071|t=3+690]
>
> but this one is kerned *less*.
>
> I have no idea why you get such different results.
>
> Attaching the font without GPOS table for you to test.
>
> b
>
> On 15-10-05 04:54 PM, Nikolay Sivov wrote:
> > On 05.10.2015 23:17, Jamie Dale wrote:
> >> I don't know what font data our "kerning only" implementation is using
> >> under the hood, but the kerning used when calculating the advance is
> >> from a call to FT_Get_Kerning with the FT_KERNING_DEFAULT flag. We only
> >> do this when FT_HAS_KERNING reports that the font has kerning data, and
> >> the remainder of the advance comes from the advance.x value on the
> >> FT_GlyphSlot for the glyph, such that:
> >>
> >> TotalAdvance = Kerning + GlyphSlotAdvanceX;
> >
> > If that's the case it sounds like HB variant actually the one that gives
> you
> > kerned advances, and not FT_Get_Kerning one, because freetype kerning is
> based
> > on glyph pairs data from 'kern' table, and like I said this font doesn't
> have it.
> >
> > I think you could try ftstring demo program from freetype-demos, to see
> if
> > switching kerning on and off makes any difference. You can also visually
> > compare output.
> >
> >>
> >> -Jamie.
> >>
> >> On 5 October 2015 at 20:49, Nikolay Sivov <bunglehead at gmail.com
> >> <mailto:bunglehead at gmail.com>> wrote:
> >>
> >>     On 05.10.2015 22:32, Jamie Dale wrote:
> >>
> >>
> >>         The images below are using the Roboto font, and show the output
> from
> >>         each implementation.
> >>         The top image is using our "kerning only" implementation, and
> >>         the bottom
> >>         image is using HarfBuzz. Note that the "T" and "e" characters
> are
> >>         further apart in the bottom image.
> >>
> >>
> >>     Roboto-Regular.ttf from https://github.com/google/roboto doesn't
> >>     have 'kern' table, so the only way to enable kerning for it is to
> >>     use GPOS kern feature.
> >>
> >>     What does your "kerning only" implementation do? It only applies
> >>     this GPOS feature skipping the rest of shaping/positioning stuff?
> >>
> >>     _______________________________________________
> >>     HarfBuzz mailing list
> >>     HarfBuzz at lists.freedesktop.org <mailto:
> HarfBuzz at lists.freedesktop.org>
> >>     http://lists.freedesktop.org/mailman/listinfo/harfbuzz
> >>
> >>
> >
> > _______________________________________________
> > HarfBuzz mailing list
> > HarfBuzz at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20151005/371ba82c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 2106 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20151005/371ba82c/attachment-0001.png>


More information about the HarfBuzz mailing list