Tokens tutorial

I am trying to make my way through the tutorial but I am already stumbling on the first hurdle.
When I add the Kern features it tells me "use of undefined class name “@v
I guess I need to define them in the Class section but not sure about nomenclature

Typically you don’t need to edit the ‘kern’ feature in the Features tab; it’s automatically generated from the kerning pairs as defined in Edit view.

What kerning features do you want to added? And what would you like to use the @v class for?

If you want to refer to the kerning groups as define in Edit view, use the following kerning group naming scheme:

  • @MMK_R_# for kerning as a right glyph (left kerning group)
  • @MMK_L_# for kerning as a left glyph (right kerning group)

For example, the left kerning group comma has the feature class @MMK_R_comma and the right kerning group v has the feature class @MMK_L_v.

Thanks Florian,
What kerning features do you want to added? And what would you like to use the @v class for?
I don’t really want to do anything, I am just trying to follow a ‘tutorial’ in order to understand Tokens
But the tutorial assumes that I understand certain things that I clearly don’t, so I am confused and looking for some answers

Which tutorial are you currently reading? The Tokens tutorial makes no mention of an @v class.

not the @v class but it mentions the @L and @A class
I followed this tutorial with a file that only contains a few glyphs, so I substituted @L and @A by @v and @c but I keep getting the message: "use of undefined class name “@v

That example is more pedagogical than practical. In practice, you would define kerning between two glyphs or kerning groups in Edit view.

Using the ‘kern’ feature in the Feature tab is rarely needed, but can be useful if you have specific requirements. For example, you can define glyph classes declaratively using predicate tokens and than define kerning rules using those classes, like so:

@CapitalLatin = [$[script == "latin" AND case == upper]];
@TightLeft = [$["tight left" in tags AND maxY > 550]];

pos @CapitalLatin @TightLeft 50;

Bu the classes have to be defined before you can use them. Either as

@ClassName = [...];

as in the example above or in the Classes section in the sidebar of the Festures tab:



Thanks Florian, it all goes right above my head.
But really appreciate you taking the time :slight_smile:

Thanks for the feedback, this is very valuable for me. I’ll see if I can clarify the text.

1 Like