Ss01 with pos feature no working

I am trying to add a stylistic set where character bounce around.

pos @calt1 <0 -15 0 0>;
pos @calt2 <0 -5 0 0>;
pos @calt3 <0 5 0 0>;
pos @calt4 <0 15 0 0>;
pos @calt5 <0 10 0 0>;

But the feature is not being recognized. What am I doing wrong ?

Some layout engines have certain expectation about what rules to expect in what features. So it might be that the app you are using to test this is ignoring stylistic set features in GPOS.

Hey @GeorgSeifert I know not all software will recognize it. I meant it doesn’t work in glyphs !


No GPOS preview inside Glyphs, sorry.

Does it work after being exported ? Due to a deadline I had to use another editor…

It should work in TextPreview even.

Thanks ! I will try it out.

@mekkablue I got everything to work. And indeed the fonts generated from Glyphs are working fine ! Thanks.

I do have one question. Does anyone know about a bug in Illustrator CC ? Because the stylistic sets are listed and can be chosen, but the (re)positioning isn’t.

that might be the effect I mentioned earlier that some layout engines ignore GPOS in certain features.

I tested it in Stylistic styles. I added it to calt to see if that made a change, but it didn’t …

Would you know a workaround ?

Not for AI, I am afraid. I just tried with the latest version, and it still ignores vertical shifts in GPOS, at least for Latin. Edit: turns out it is possible, see below.

Here is the GitHub gist of the Wiggle script btw:

Update: I just did get it to work in (the latest version of) AI, right after I posted the thing above. :sweat_smile:

  1. Make sure you have at least one regular kern pair in Windows > Kerning.
  2. Add the GPOS wiggle code to Font Info > Features > kern
  3. Update the feature code: there must be a Languagesystems declaration.
  4. Compile and export

Hi @mekkablue ! Thank you very much for this info ! I will try it out.

I tried to demonstrate adding GPOS to a Stylistic Set today (G3) and could not get it to work within Glyphs, it compiled fine, I got no error message, I was confused and apologised to my students for lack of Glyphs knowledge :-).
I want to judge Capital Spacing, and other funky spacing stuff from features within a font editor, so why is only the GSUB-half of features supported?

GPOS can get confusing in the Edit view where glyphs might overlap (like marks on top of base glyphs). That makes it difficult to edit the glyphs since they are superimposed and not clearly differentiated. Some limited GPOS like kerning and cursive attachment is supported in Edit view.

But as @mekkablue mentioned, the Text Preview (in the Window menu) does a real preview of the font, just like any Mac app would, with GSUB and GPOS. Note that there is currently no way to configure the active features in the Text Preview window, it just uses the default features like kern, liga, or mark.

Yes it might get confusing when you switch GPOS on in Edit view, but then you can switch it off.
I want to activate capital spacing when editing kerning between capitals, how can I achieve that?

This is not supported in Edit view. A future version of Glyphs will let you enable features such as cpsp in the Text Preview window, so that would work.

Maybe some features such as cpsp could also be implemented in the Edit view directly, not sure how that would work since that would break some assumptions the app currently makes.

In the meantime, you can rename the cpsp feature to kern and preview your text in the Text Preview window:

1 Like

Hi Rainer,
I would like to run the Wiggle script on Glyphs 3, but I don’t manage to. I took it on the Github repo, but even when changing the lines 86 and 87 like below it just creates a “wiggle” class, nothing more. What am I doing wrong?

print( )(create_otclass( classname=classname, classglyphs=sorted([ for g in Font.glyphs if g.export == True ]) ))
print( )(create_otfeature( featurename=featurename, featurecode=featuretext, codesig="BASELINE-WIGGLE" ))

I brought the Baseline Wiggle script back to the mekkablue scripts.

1 Like

This is great, thanks!
I’m running the updated script and this error message is appearing:

Baseline Wiggle Error: local variable 'otClass' referenced before assignment
Traceback (most recent call last):
  File "Baseline", line 361, in BaselineWiggleMain
    if otClass and otFeature:
UnboundLocalError: local variable 'otClass' referenced before assignment```