[NTG-context] kerning with buggy libertine

Philipp Gesang Philipp.Gesang at alumni.uni-heidelberg.de
Wed Aug 7 10:08:43 CEST 2013


···<date: 2013-08-05, Monday>···<from: Hans Hagen>···

> On 8/4/2013 3:43 PM, Philipp Gesang wrote:
> >Hi Hans,
> >
> >this is a bug report thanks to Khaled:
> >
> >   http://tex.stackexchange.com/a/126650/14066
> >
> >In short: the font loader applies the kerning of libertine
> >version 5.3.0 even though this appears to be broken in the font.
> >Context translation of the example:
> >
> >   \definefontfeature [kerning] [mode=node,smcp=yes,kern=yes]
> >   \definefont [libertineserifsmallcaps] [file:LinLibertine_R.otf*kerning]
> >   \definefont [libertinesanssmallcaps]  [file:LinBiolinum_R.otf*kerning]
> >
> >   \def\demotext{Vacillate Vaccine Vapour Vanish Va...}
> >
> >   \starttext
> >     {\libertineserifsmallcaps \demotext}\par
> >     {\libertinesanssmallcaps  \demotext}\par
> >   \stoptext
> >
> >(Doesn’t occur in base mode.) The technical details are in the
> >thread Khaled references.
> 
>     \showotfcomposition{file:LinLibertine_R.otf*kerning}{+1}{Va} \page
>     \showotfcomposition{file:LinBiolinum_R.otf*kerning} {+1}{Va} \page
> 
> You need to be more explicit (which font, where to download the
> problematic one, etc ... i downloaded the 5.3 version - i think - of
> ll). In what sense is it broken in the font?

It’s that version (5.3.0). To quote Jonathan Kew [1]:

    The problem arises because the first subtable includes the
    "V" (and "T") glyphs in its coverage (as first glyph of the
    pair), but then the a.sc and hyphen.sc glyphs are not
    included in the ClassDef2 table, so they map to class 0, for
    which the kerning is zero. [...]

    The description of ClassDefFormat2 says that "Any glyph not
    covered by a ClassRangeRecord is assumed to belong to Class
    0". If that is the case, then I think this is a font bug: any
    first-glyph mentioned in a PairPosFormat2 subtable's coverage
    when ClassDef2 uses format 2 will, in effect, "shadow" all
    subsequent subtables, so the same first-glyph cannot be used
    again.

And the follow up [2]:

    FWIW, testing LinLibertine in IE10 on Win8, I see the same
    behavior as in Firefox (using harfbuzz): the <V, a.sc> and
    <T, hyphen.sc> pairs are NOT kerned.

    So I believe this supports the interpretation that this is a
    font bug, and we should -not- special-case Class0 as per the
    experimental harfbuzz patch.

    (In principle, a font could have real kerning values
    specified for <classN, class0>, although it's most likely
    that class0 will always be used for the default do-nothing
    case.)


Best,
Philipp

[1] http://lists.freedesktop.org/archives/harfbuzz/2013-August/003469.html
[2] http://lists.freedesktop.org/archives/harfbuzz/2013-August/003470.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://www.ntg.nl/pipermail/ntg-context/attachments/20130807/2c5ed4b1/attachment.pgp>


More information about the ntg-context mailing list