Bracketed alternates with triangular masters?

I have set up a font with a regular and bold master, and successfully created a special master used for interpolation in bolder weights using the “Bold [100]” layer trick.

Now I am adding another master on a new axis that alters the thickness of the thins. Can I still use the bracketed alternate trick, and if so, how do I set it up? Can I have alternate structures that kick in at certain points of the other axis too?

This is actually a really good questions. I think, the alternate master will still work. There as no way to add a alternate layer for the second axis, currently.

I think it should be implemented like ‘Bold [100][150]’, the first bracket representing the weight axis, the second one standing for the width axis. Just my 2¢.

I simply cannot get this bracket thing to work. Are there any instructions on how to use it? Any documentation? Do I need a space before the baracket or not? I tried the “Use as Master” button but it messed things up (and was not undoable!).

Yes. You need to have a space between the name and the brackets.

Keep in mind that the instance preview is not working. I fixed that and it will be available in the next update.

Great to hear about the preview!

Tim, as I understand it “Use as Master” switches out the selected layer for the like-named master layer. It would be nice if Undo worked, but for now to restore you should be able to apply “Use as Master” again to get the layers to switch places back, and then rename the alternate layer (replacing the timestamp with the bracketed value).

Hmm, doesn’t look quite right.

Thanks for your help, everyone. Now I understand much better. Looking forward to the next version with preview!

This sounds interesting, I tried it but I’m not sure even how to start, can you give us a step by step guide?

You have to manually ensure that the paths are compatible. Usually just copy the Bold master and make changes to it.

@rosaiani There’s a little explanation on TypeDrawers.

This was a case where I had an alternate structure entirely, so I have a Regular [120] layer in addition to the Bold [120] (akin to the broken dollar-sign example you have given).

I’ve now tried to make all layers compatible, and that fixes the nonsense I was getting, but still doesn’t give me what I’m hoping. When the second axis comes into play (last 5 f’s), once past the weight threshold it looks like the interpolations are using the other structure rather than the one that is in the outlines labeled with brackets.

I get this same result whether I include a Regular Condensed [120] layer with the alternate structure or not.

Maybe I need a Bold Condensed master to complete the square?

No, you don’t. But the alternate lmasters are not tested for fonts with more than one axis. I will have a look at it.

The preview will be a big plus indeed.

I found another issue with this bracket procedure if it comes to kerning:
At first glance it seems pretty logically, that each layer (and therefore each
alternative) has its own spacing and kerning values. But at the moment
there is the danger of overlooking a certain letter’s »special« layer when
working through kerning strings. You know what i mean?

So in fact one would kern a letter (one master), but with no result on the
actual output then.

Perhaps a little mark or hint would be nice, wich reminds you of that
special layer?!


The alternate layers do not have its own kerning. It will use the kerning of the original letter. Only the spacing is retained.

oh, u see it actually really was the spacing, sorry for mixing up. but anyway there’s the chance of overlooking them when making changes to a master. perhaps this is just an issue if one got only a few of these bracket-layers instead of working with them on a whole font.

If you need them for more than a handful characters, you are probably better of with a real intermediate master.

I think I've found a workaround for alternative glyphs for different instances when there are two or more axes. But please operate with caution, I'm still testing this myself:
  1. Instead of creating an extra layer in glyphs x, y and z, you create alternative glyphs x.bold, y.bold and z.bold (or better yet, make copies, rename them and rearrange the layers accordingly).
  2. In the font info, you add a custom parameter to your bold instance. Property: remove Glyphs. Value: x,y,z.
  3. Add another custom parameter. Property: rename Glyphs. Value: x.bold=x, y.bold=y, z.bold=z.

Repeat steps 2 and 3 for every instance where x, y and z should switch to their alternative shape.

I have to correct my own logical mistake: this cannot work. Because what happens if wt surpasses 100 but wd is still smaller than 150? So please forget my suggestion from above.
Yeah, my brain started hurting too much to try to figure out the possibilities here.

Thanks for the workaround suggestion. I haven’t done anything with those instance-specific custom parameters, but now that I look at them they look very powerful, for this and other purposes. For example, I just set it up so my “text” and “display” cuts are generated with different font family names, so they can appear in font menus as two different families, though they can stay together in the same Glyphs file.