kern subtable overflow

Christoph's picture

Dear forum,

I'm getting a subtable overflow while trying to compile my features within FL Studio.
Now I tried building the kern feature with FDK, but still I'm getting an overflow. No mixing up different scripts within the classes and also kerning should not be too much (3400 pairs, when expanded 152k).
GPOS feature 'kern' causes overflow of offset to a subtable (0x11a00)

Also there's quite a lot of this stuff:
Pair positioning has two different values in 'kern' feature; choosing the smaller absolute value: Q comma
which seem to be my exceptions.

Any idea?

Thank you,


andreas's picture

For exceptions use single kern pairs at the top of the kerning file.

pos Q by comma -20;

#you can use "enum" to work with classes for exceptions - enum spiltes the classes into singles during compilation

enum pos @_kern_Q by @_kern_... -20;

Be sure, no glyph is part of two or more classes!

k.l.'s picture

pos Q by comma -20;

Andreas, you were dreaming of substitution -- no 'by' in pos commands.  ;-)

which seem to be my exceptions

Looks like there is something wrong with classes: one glyph appearing in more than one leftside class, or in more than one rightside class. I think you should check your class definitions first.
About 3400 kerning pairs may be (but not necessarily are) critical. If you generate fonts with AFDKO 2, you can also try to kick out lines with "subtable break" and add an explicit lookup definition with 'useExtension', so your kern feature looks like this (please exchange parentheses by braces):

feature kern (
    lookup kern0 useExtension (
        pos A B 12;
        pos B C 32;
    ) kern0;
) kern;

But mind that FLS5 cannot compile this, and that such a kern feature will be interpreted only by a few OT-savvy applications like those of Creative Suite.

andreas's picture

yes, I'm dreaming...


pos Q comma -20;

enum pos @_kern_Q @_kern_comma -20;
enum pos [Q Q.alt] [comma colon] -20;

and this works in Fontlab - but do it on the top of your kern list.

Nick Shinn's picture

If you are having problems resolving class conflicts, here's what works for me.

First, select "class kerning" in the metrics panel.

This has several benefits, one of which is to highlight class conflicts in red.
Here, v and c are the master characters in their classes, and y is included in the "v" class.
Therefore, when I attempt to apply a different kern value between y and c, FontLab marks it with a red number warning.

This value is also listed in red in the kern pair table at the right of the metrics window, enabling one to scroll throught the entire kern pairs in a font, looking for conflicts.

Christoph's picture

Thank you all.
I usually check my classes via FL Studio's kerning assistance, which seems to work quite well(?).
Unfortunately I have to generate via FontLab and cannot write all the kern-featurecode by hand ...

dezcom's picture

Thanks for the info, all!


Syndicate content Syndicate content