Importing Existing Fonts

  • by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

When you open a compiled .otf or .ttf file in Glyphs, the app does its best to reverse engineer them into a Glyphs file. But keep in mind that both PostScript and TrueType-flavoured OpenType fonts are compiled formats, so it is no surprise that there are a few things that cannot safely be extracted.

Work on a Copy

First and most important advice: ALWAYS WORK ON A COPY. In some versions of macOS, the original OTF may be overwritten by the Glyphs file in the Finder – unless you duplicate or make a copy first. So, let me repeat that slowly: ALWAYS WORK ON A COPY.

Better Get the Original Files

If you have a chance to get your hands on the original VFB or UFO, this is certainly to be preferred. There is a handy Export script for FontLab which will export your VFB directly into a native Glyphs file. And as for UFOs, Glyphs can open and save them natively.

If you only have the compiled OTF or TTF, make sure you are legally entitled to whatever you want to do with it. Check your EULA or ask the original designer.

Paths and Components

The paths of TrueType fonts are converted into cubic béziers. This is because the editing tools in Glyphs are PostScript-oriented. The good news is that components are retained.

Paths from PS-flavoured OTFs (with an .otf file name suffix) are kept without any loss. Keep in mind that, in CFF fonts, components are dissolved into plain outlines. If you just want to add a glyph into your font, and export again, this should not bother you. But if you plan to do more, you may want to reconstruct compounds.

If you fix the sidebearing of a letter, make sure to also adjust the sidebearings of all related diacritics, e.g. A and Adieresis, Atilde, Aacute, Agrave etc. See the Spacing tutorial for details. If you employ a proper compound structure for your diacritics, you can make use of automatic alignment, which helps you take care of the diacritic sidebearing problem.

If you want to do something more complex, like interpolate a new weight, re-inserting overlaps and reconstructing composites may be a good idea. Open Corner and Reconnect Nodes from the context menu, and Glyph > Make Component Glyph will help you with that. Your mileage may vary greatly, though. Since preparing for interpolation is a bigger endeavor, we advise reading through the three Multiple Master tutorials. For glyph compositing, take a closer look at the Diacritics tutorial, or even take it a step further with the Reusing Shapes tutorials.

Nice vs. Custom Glyph Names

Glyphs keeps the production names in the font file and therefore activates File > Font Info > Other Settings > Use custom naming when you import a font. You can change that behaviour by disabling Glyphs > Preferences > User Settings > Keep glyph names from imported files. Some app functionality, such as automatic OT feature code, depends on the ‘nice names’, which Glyphs uses by default.

We therefore suggest using the built-in nice names scheme for glyph names. That is, except when you need to integrate with a workflow that prescribes a different naming scheme. (This is often the case if you exchange font data with UFO users.) In short, unless you know what you are doing, make sure that File > Font Info > Other Settings > Use Custom Naming is off.

Glyphs employs a single name, single Unicode value strategy, which generally is a very good thing. However, this also means that double encodings will be lost upon import. If you really need that glyph with two different Unicode values, create a duplicate of the glyph and rename it. If you know the Unicode value, rename it according to the uniXXXX convention, e.g., duplicate the Greek letter Omega and call it uni2126. Glyphs will rename it to its nice name (Ohm in this case) unless you use custom naming.

By the way, many Unicode values and glyph names can be standardized by selecting all glyphs and choosing Glyph > Update Glyph Info.

OpenType Features

Some OpenType feature code is lost. Glyphs attempts to reverse-engineer the code as much as possible from the compiled OT tables inside the font file, but can only get so far. However, Glyphs can build a lot of feature code automatically based on the glyph names you employ. So, you may want to rename some of your glyphs to profit from the automation:

  • By default, ligatures go into dlig (discretionary ligatures) except for fi, fl, f_f, f_f_l and f_f_i, which go into liga (standard ligatures). If you want to force a ligature into the liga feature, add a .liga suffix to the glyph names. Hint: you can batch rename.
  • Special glyphs for localizations need a .loclXXX suffix, where XXX stands for the OpenType language tag, e.g. .loclDEU for German, .loclTRK for Turkish, .loclPLK for Polish. Many fonts just use the language tag itself as suffix. If you want to make use of the automatic feature generator, simply batch rename .TRK to .loclTRK etc. and rebuild the feature by clicking on the Update button in File > Font Info > Features window. Search the tutorials for more info on language support.
  • If numerals sport the following suffixes, Glyphs will automatically build the respective features:
  • Use .init, .medi, .fina and .isol for positional alternates (initial, medial, final and isolated shapes).
  • Some fonts use .alt as suffix for glyphs that form stylistic sets. Suffixes like .ss01, .ss02 etc. allow Glyphs to build the sets automatically.

For more feature automation, we encourage you to take a look in the Appendix section of the Glyphs Handbook (a PDF manual), or look if there is a tutorial about it. Generally, as you might have guessed by now, it is a good idea to use the name of the respective feature as the glyph suffix. But careful: Glyphs cannot guess more complex stuff, like contextual alternates (calt), for you. These you will just have to do manually.


Kerning is generally preserved, but contextual kerning is not. It probably is a good idea to open Window > Kerning, and then click the gear wheel and choose Clean up from the pop-up menu. You may want to revise and fix your kerning and, if necessary, contextual kerning.

PostScript Hints

Individual PostScript hints are lost. But alignment zones and stems are preserved. If those were all set properly, chances are the autohinter will give you better hinting than before. All you have to do is activate the Autohint option when you export your font to a new OTF.

For a quick guide on how to set your stems and zones, refer to the tutorial about PostScript autohinting.

Font Info

In File > Font Info > Font Glyphs keeps family-wide information. It cannot reverse-engineer everything, so you will have to reconstruct some of the information manually.

The original glyph order is stored in a custom parameter. You probably do not need that, so unless you have a good reason not to, you can safely do away with that glyphOrder parameter. The same goes for most custom parameters in the Font tab of the Font Info. They are there for completeness, but usually not necessary. Revise each entry, perhaps see if your font works without, and remove accordingly.

All measurement information, like vertical metric values, is stored as parameters in File > Font Info > Masters. Revise and change where necessary.

Update 2016-12-05: Fixed typos, updated screenshots, fixed menu names, added links.