Alternates workflow

Hi everyone. I am new to Glyphs and to font editing as well.
I need to create a font based on vectors from Illustrator, with Alternates for all Uppercase letters, both regular and bold.

Currently I am creating two Glyphs files, one for Regular and one for Bold, and everything seems fine.

Next step will be the creation of alternates, but I am not sure of what the ideal workflow should be…

Should I duplicate each letter with cmd+D, then paste in the alternative vector?

Where do I apply the naming convenction “aalt”?

Thanks in advance,

The convention would be D.aalt (or D.alt01 or D.ss01, the latter for stylistic sets). Adding the dot tells the software to recognize it as an alternate for the D (D.alt01 will be recognized as a D in spell-checking or if you copy-paste the text; Dalt would be considered a separate character). Whatever you add after the dot doesn't matter, but there are some conventions and Glyphs relies on those for some automated tasks and features.

As a bonus, underscores are standard for ligature. So dots to say alternates (D.alt), underscore for ligatures (f_j).

Are you drawing your vectors in a different program and then pasting them or do you mean paste the original D? If the former, you should definitely give Glyphs a try for drawing vectors; it's weird to get into it, but it's much more powerful than Illustrator.

As for workflows, there are some standards, but this is one of those things I feel it’s whatever you are more comfortable with. Your method sounds good.

1 Like
Although not quite necessary, it may be worthwhile to convert it into one file and make it multiple master, which allows you to create weights in between. See the handbook for further information. Yes. If you want a stylistic alternate, I advise you add the suffix .ss01 which will be used in salt (stylistic alternate) and ss01 (stylistic set 01) feature. After adding the right suffix, go to the feature tab in Font Info and hit circular arrow at the bottom left (the automatic feature generation button).

The aalt feature will be automatically created and is nothing you have to worry about.

To make the alternate glyphs, duplicate the base letters. They will get a “.001” suffix. Select them all and goto Edit > find… > Find and Replace. Search for “.001” and replace by “.ss01”.

1 Like

thanks for all the help!
I forgot to say that I need to use alternates randomly, to have a more realistic handwriting effect. Each letter should cycle through 3 alternates.

So if I understood correctly, I duplicate my glyph, give it a .alt01 or .alt02 suffix, then in the features tab I click the circular arrow

PS: I cannot draw the letters in Glyphs because I didn’t draw them at all, my job is to make this font out of and existing .ai file. I also tried to use multiple masters, but it seems I would have a lot of extra work fixing vector conflicts.

I tried with one glyph to test it, but I can’t make it work…
I created 2 alternates for the glyph B, and tested with B.alt01, B.aalt, B.aalt01 B.alt B.001, but none of them seems to have any effect on the automatic feature creation.
The feature “aalt” is always generated, but the content is:

feature frac;
feature ordn;

I test the font in Illustrator, but the contextual alternates feature is always disabled.

I tried also with B.ss01, which creates the stylistic alternate, and it works, but it’s not what I need.

This contextual alternate feature (what is sometimes called pseudo-random) cannot be automatically written and you should write it by yourself, because context is arbitrary.

OK, here’s how you should do it.

  1. Make three classes that belong to each step of the cycle. (calt0 to calt2. The calt0 class has A, B, … z, and calt1 has A.calt1, B.calt1, … z.calt1). You don’t have to use the suffix .calt1 and .calt2, it’s just my own preference.

  2. Make a new feature, name it calt, and write a code like this.
    sub @calt0 @calt0’ by @calt1;
    Two things you have to know here. The name that starts with @ is the class that you created. It exists to differentiate between a single glyph and a class. The second thing is the quote (’) that indicates which part you want to substitute. This line means, “when a glyph that belongs to @calt0 group is followed by another @calt0 glyph, the latter is replaced with its .calt1 variant”.

  3. OpenType does substitutions one by one, so you need to write a code for two more steps too. In the end, the code should look like this.
    sub @calt0 @calt0’ by @calt1;
    sub @calt1 @calt1’ by @calt2;
    sub @calt2 @calt2’ by @calt0;

I think it works. Let me know if anything is unclear.

1 Like

Read this please:

oh, thanks Tosche. For some reason I confused “aalt” feature with “calt”, at this point I don’t think I understand so well where “aalt” is applied.

I assume that also the classes have to be created manually, since the automatic feature puts everything in the class “Uppercase”

A glyph palette in Illustrator and InDesign shows you variants of a glyph that you select (a glyph with a little triangle at the bottom right has variants. Click for a while to make them appear). AALT feature does that, by checking other substitution features. Yes, many classes have to be built manually, especially when they are used in contextual alternates. Automatic feature generation only predicts what you want and isn't supposed to do everything. The 'Uppercase" class is used in the case feature, which is one of the few straightforward and predictable classes.