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. Best regards, Philipp -- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments
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? Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
···
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
On 8/7/2013 10:08 AM, Philipp Gesang wrote:
It’s that version (5.3.0). To quote Jonathan Kew [1]: And the follow up [2]:
it all makes me wonder if otf is that clear and clean and good ... font designers nowadays need to be programmers and close-readers-of-specs too (esp because it seem to take years to uncover such aspects) anyhow, new beta ... plus some extra messages (the first concern fixing a luatex table ... not related to the issue but nicer anyway) fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_0' fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_1' fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_2' fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_3' fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of A (U+00041) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of À (U+000C0) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Á (U+000C1) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of  (U+000C2) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of à (U+000C3) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ä (U+000C4) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Å (U+000C5) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ă (U+00102) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of V (U+00056) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of W (U+00057) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Y (U+00059) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ÿ (U+00178) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of P (U+00050) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of K (U+0004B) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of X (U+00058) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of T (U+00054) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ţ (U+00162) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ť (U+00164) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ț (U+0021A) the message is a signal for users not to complain too loudly if some expected kern doesn't show up (i didn't test side effects so we might now run into other cases) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
···
On 8/7/2013 10:08 AM, Philipp Gesang wrote:
It’s that version (5.3.0). To quote Jonathan Kew [1]: And the follow up [2]:
it all makes me wonder if otf is that clear and clean and good ... font designers nowadays need to be programmers and close-readers-of-specs too (esp because it seem to take years to uncover such aspects)
anyhow, new beta ... plus some extra messages (the first concern fixing a luatex table ... not related to the issue but nicer anyway)
Thanks, Libertine is now as broken as it should be ;-)
fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_0' fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_1' fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_2' fonts > otf loading > fixing kernclass table of lookup 'pp_l_3_k_3'
fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of A (U+00041) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of À (U+000C0) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Á (U+000C1) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of  (U+000C2) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of à (U+000C3) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ä (U+000C4) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Å (U+000C5) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ă (U+00102) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of V (U+00056) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of W (U+00057) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Y (U+00059) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ÿ (U+00178) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of P (U+00050) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of K (U+0004B) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of X (U+00058) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of T (U+00054) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ţ (U+00162) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ť (U+00164) fonts > otf loading > lookup 'pp_l_3_k_3': ignoring further kerns of Ț (U+0021A)
the message is a signal for users not to complain too loudly if some expected kern doesn't show up
As most of those go away once the font is cached it is not a big deal anyways. Best, Philipp
participants (2)
-
Hans Hagen
-
Philipp Gesang