Porting to Glyphs

Tutorial
by Rainer Erich Scheichelbauer
en zh

8 August 2022 Published on 20 May 2013

When you switch to Glyphs from a different workflow, a lot becomes easier. But it’s important to mention what works differently from what you may be used to. Here are some very handy tips.

So you are considering moving your font project to Glyphs. Here are a few subtle workflow differences you ought to be aware of. We have discussed opening existing fonts before. This post here specifically deals with moving a type design project to a Glyphs workflow.

Moving your files to Glyphs

Glyphs reads and writes UFO files. For VFB files, there is a FontLab 5 macro that saves the frontmost file in FontLab in a Glyphs file available for download. Newer versions of FontLab can already export to .glyphs directly.

Fontographer files need to either be converted to FontLab files first, and then exported with the same script. Or, you generate a PFB and open that in Glyphs. In the case of a PFB, the kerning data is kept in a separate metrics file. Glyphs can read import AFM files. Just choose File > Import > Metrics…, pick the AFM file in the dialog that follows, and Glyphs imports and applies kerning pairs for all selected glyphs.

Glyph naming scheme

Glyphs employs an elaborate glyph naming scheme with human-readable glyph names. This has a lot of advantages. Writing feature code becomes much easier with ‘custom naming’. The management of Unicode values and some of the OpenType feature code can be automated if you stick to the naming convention. That’s a few worries less. Read more about glyph names.

The application tries to re-interpret glyph names when you open a file. Perhaps this is not the top entry on your wishlist. Go to Glyphs > Preferences > User Settings and check the Keep glyph names from imported files option if you do not want Glyphs to mess with your glyph names.

What this option does is check the Use custom naming option for you. This option is tucked away under File > Font Info > Other. You can disable and re-enable it there on a per-font basis.

Keep in mind that you will lose the benefits I mentioned above if you use custom naming. Perhaps you only disagree with some parts of the convention. In that case, it’s more advisable to set up your own glyph info.

Automatic alignment

I used to have an arsenal of hundreds of little FontLab scripts. When I switched to Glyphs, I was afraid I would not be able to port them all to the new environment. As it turned out, I did not need nine out of ten scripts. That is because the problems the scripts addressed did not even occur in Glyphs. Go figure.

One of these things was keeping widths and sidebearings of base glyphs and diacritics in sync. Glyphs does that by default, unless you specifically tell it not to do so. The same principle applies for the positioning of accents in composite glyphs, which, by default, is done through corresponding anchors in both the base component and the mark component. Read more about diacritics in Glyphs.

Depending on how far along in your project you are, this can be either a godsend or a nuisance. You can disable it right from the start by checking Disable automatic alignment for imported files in Glyphs > Preferences > User Settings.

Again, you can also disable it on a per-font basis in File > Font Info > Other. There you’ll find a Disable automatic alignment option:

Worries be gone

Okay, we have already covered a few things that need to be mentioned in the ‘no more worries’ category: Unicode values, some feature code, and the syncing of sidebearings. Sure enough, there’s much more. In fact, Glyphs is designed from the ground up to facilitate or even automate technical decisions as far as possible, allowing you to focus on design questions. Of course, this is not the place to mention all features of Glyphs (the handbook is). Here are a few highlights anyway.

Overlaps, yes please

For one thing, you need not worry about path overlaps anymore. As a matter of fact, it is even recommendable to keep the overlaps in your drawings as they facilitate the design of your shapes and the set-up of masters for interpolation.

Of course, in the final OTF, these overlaps and intersections must be gone. But don’t worry about them, just sit back and relax. Glyphs can take care of removing the overlaps for you at export time. All you need to do is make sure the Remove Overlap option is checked when you export the font. That’s it.

Automatic extremum points

Remember how you have always been told to keep your nodes at the extremes of your curves? Glyphs can take care of this as well. Go to File > Font Info > Exports, and add a custom parameter to an instance:

Property: Filter
Value: AddExtremes;

Sure enough, you are free to take control yourself with the Paths > Add Extremes command, or by Shift-clicking a curve with the Draw tool (shortcut P). After all, in most cases, working with extremum nodes makes designing a curve easier. But sometimes, it is easier to have a free curve. And in these cases, this little parameter does the trick. And don’t worry that the autohinter might not find the extremum points it so desperately needs, because at export, hinting is applied after all parameters have been carried out.

Easy group kerning

Okay, so you have a few solitary kerning pairs. Sure enough, there is a lot more to say about kerning (and to show, too), but a quick way to raise your kerning to the group level is to download, install, and run the Kerning > Set Kerning Groups script in the mekkablue scripts collection. And then, compress kerning in the gear menu Window > Kerning. That’s about it.

Legacy Unicode troubles

One final advice. Sometimes you would have two identical copies of a glyph in the font. In the very most cases, that is not necessary anymore.

For historical reasons, some characters are duplicated in Unicode. For instance, there are Arabic legacy encodings for the individual four forms: isolated, initial, medial and final. But what you are actually supposed to use is the default encoding that Unicode offers that does not differentiate between the positions, because the positional form is done via OpenType features anyway. So what we end up with are five possible codes for one Arabic letter. Take beh-ar, for example:

U+0628 ARABIC LETTER BEH
U+FE8F ARABIC LETTER BEH ISOLATED FORM
U+FE90 ARABIC LETTER BEH FINAL FORM
U+FE91 ARABIC LETTER BEH INITIAL FORM
U+FE92 ARABIC LETTER BEH MEDIAL FORM

What some designers do, is to have glyphs for all five characters, and put the isolated form in both U+0628 and U+FE8F. What happens then is that Glyphs reroutes U+FE8F ARABIC LETTER BEH ISOLATED FORM to U+0628, and that you end up with two Glyphs carrying the Unicode value U+0628. If that happens to you, quickly walk through your Arabic glyphs (you can step through your glyphs in Edit view with the Home and End keys, or, on a MacBook, with Fn and the left and right arrows), and simply deactivate or delete the duplicate glyphs.


Update 2021-06-14: minor adjustments for Glyphs 3.
Update 2022-08-08: minor formatting, updated title.