In my last post I documented what I did to add diacritics to my Protest font in FontLab VI.

This post is about adding alternates to Protest. And there are a lot of alternates. However, having already added glyphs to FontLab VI, and having already added diacritics, the process is fairly straightforward.

Preparatory Work

In another blog post I mentioned that I’d been drawing and digitizing glyphs over the past year. That blog post details the digitizing process. You may remember images like the one below, with a sheet of letters drawn one after another.

increase contrast using curves

Each time I worked on a letter I drew a whole bunch and put check marks above the ones that work the best. I chose my favorite letter out of around a dozen versions for the base glyph set, but there are more than one that work pretty well. The three runners up are my alternates.

I digitized everything, so when it came time to put the cream of the crop into FontLab, I also pulled the three runners up. All four versions went into an Illustrator file, separated into tiers:

  • Primary Set
  • Stylistic Set 1
  • Stylistic Set 2
  • Stylistic Set 3

When I put each letter into Illustrator, I ranked them in order with the best in the Primary Set and the worst in Stylistic Set 3. Each set is on a different layer, with one on top of the other.

With the letters in layers I tweaked the Stylistic sets to more closely align to the shape of the Primary set so spacing and typographic color would be more consistent. I did all this before adding any glyphs to FontLab VI.

Next Steps

I’ve already added all of my base glyphs to FontLab. I’ve also spaced the font, and tested the font, and made modifications to the font to fix problems with typographic color. So Protest has come quite a way since doing all that preparatory work in Illustrator.

Now I’m coming back to Illustrator to get the rest of the alternate glyphs, but they haven’t been edited like the rest of the font. The biggest piece of work in the process of adding alternates is editing them to reflect the modifications I’ve made to the font so far. It’s a good chunk of work, but it’s fairly straight forward.

Get the current font into Illustrator

I need to compare the current font to the alternates in Illustrator so I know how to modify the alternates before moving them to FontLab.

First I exported the font from FontLab (File > Export Font As…). I named it with the date, so I know what version it is. I made sure to remove the old version from my system, then re-loaded the new version.

Next I made a new layer in Illustrator containing the base glyphs of the font. Basically, if it’s a glyph that’s going to have an alternate, I type it out in the current version of Protest. Here’s my list:

a æ b c d ð e f g h i j k ĸ l ł m n ŋ ɲ o ø œ p q r s ß t u v w x y z þ ə tt (t_t ligature)
0 1 2 3 4 5 6 7 8 9

I type it in the same order as the existing glyphs in Illustrator. I also break up the text as needed to match the existing glyphs. I use my trusty guidelines to resize the type so it’s the same size as the glyphs I’ve already got in Illustrator.

text layer in Adobe Illustrator

Lastly, I convert the type to outlines. This serves two purposes: 1) I can nudge the letters so they’re right behind the existing glyphs, and 2) I can use Outline view (View > Outline; or just Command+Y) to view everything as black lines on a white background. Outline View makes it super easy to compare all the glyphs to one another, and select paths more easily without the fill getting in the way.

It should look like this:

Modify the alternates

With the Stylistic Set 1 layer visible and the current (edited) font layer visible underneath, it is pretty easy to scale and tweak counters and stroke widths so the alternates will match the color of the font. It just takes a little while, since there are 48 glyphs.

Actually, I have a bit more work than this, because I have the letters with ogoneks to modify. Those 10 glyphs need work in the primary set. Once they’re properly edited I can make alternates for them as well.

Adding Base Glyphs To FontLab

Now that the base glyphs are edited in Illustrator, I can use the same process I used for the primary set to bring the first stylistic set into FontLab VI.

The only thing that differs in this process is the naming. As before, I select a letter element and use Ctrl+P to place the element as a glyph. Now when I name the glyph, it will have “.ss01” at the end. So the alternate A will be named A.ss01 instead.

In order to make it easier to distinguish one set from another, I’ve selected all of the base glyphs in the primary set and flagged them in red. (The flags and colors are near the upper right corner of the Font Window, to the left of the search bar.) After adding all the alternates for Stylistic Set 1, I searched for glyphs containing “.ss01” so they were all in one place. Then I selected those glyphs and flagged them in green. Flagging glyphs make life way easier!


Spacing ends up being pretty easy as well, because in the editing process the alternates have basically the same shape and only vary slightly. So what I can do is use the same sidebearings for the alternates as each of their primary counterparts.

To do this I select the List button near the upper left corner of the Font Window, which brings up a list of all the glyphs in the same order they’re listed in the grid view. Having searched for .ss01 or the “lime” flag, I can see all my base alternates at the top.

In the list I select the left sidebearing and type in the name of the glyph minus the .ss01 suffix. So the LSB of glyph A.ss01 will read “A” giving it the same left sidebearing as the left sidebearing of A. Hitting Tab I’m able to go down the list one glyph after another. When I reach the end of the alternates, I go back to the top of the list and do the same thing for the RSB (right sidebearing).

Afterwards, I’ll use Font > Update Metrics (or Option+Command+M) to update all the metrics. Ta-da! Now all the alternates are spaced!

Generating Diacritic Glyphs

Once again, this is a process I’ve already completed. After the last post I added a few more diacritics, adding bars for the H-bar, h-bar, T-bar, and t-bar to the font, as well as corresponding anchors and recipes. It’s nothing different than any of the other diacritics I detailed in the last post.

In order to automatically generate the glyphs with diacritics for the stylistic set, I need to add the guides and anchors. And since I’ve been there and done that, I can just copy and paste guides and anchors from the Primary Set.

I selected the base glyphs from the lowercase primary set and the stylistic set, then hit Enter to open them in a new Glyph Window. (I’ll do this again with the uppercase after the lower; it’s just easier to keep it all straight doing one set at a time.)

Now I can just select the guide and both of the anchors from a glyph in the primary set, and copy them (Command+C).

Then I double click on the corresponding glyph in the stylistic set and hit paste (Command+V).

I use View > Anchor Cloud to make sure the anchors are aligned the way I want (which they are in most cases). If the anchors need shifting a bit, I can just select the guide and nudge it with the arrows, since my anchors are linked to the guide.

Once all the guides are in place, I can generate the diacritic glyph alternates using essentially the same recipes as before. I went into my recipe file (just a text document), and highlighted all the recipes and copied them, then pasted them into a new text file.

Next I did a simple find and replace. I looked for “ =” and replaced it with “.ss01 =”, then found “ +” and had “.ss01 +” as its replacement. This works for the vast majority of the recipes. The only places it messes things up is with multiple additions (like Aringacute, aringacute, and ijacute), or the attachment operator “&”, which I’ve only used for the napostrophe glyph. Those four I just have to go in and fix. I also don’t have an alternate for the IJ ligature, so I took that out. (Though I may go back and redraw and add those later.)

Then I copy and paste my recipes into the Generate Glyphs dialogue in the Custom tab, check to make sure they are going to generate the way I think they should, and hit go. Just the same as in the last post, only this time I flag them in blue when they are generated, so it’s easier to find them.

After generation, I check each one, tweak as needed, and I’m all done. Ta-da! Now I’ve got a set of about 300 alternates added to Protest. I just repeat this process two more times for the remaining two sets, and Protest goes from being a 436 glyph font to a 1333 glyph font.

Up Next

Next up I’ll be writing about adding OpenType features to Protest. This will include stuff like language support and cycling through alternates.