Importing existing fonts

Tutorial
by Rainer Erich Scheichelbauer
en fr zh

12 August 2022 Published on 21 June 2012

You want to manipulate an already existing font? Here are some very handy tips.

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, components and automatic alignment

Quadratic TrueType curves vs. cubic CFF (a.k.a. PostScript) curves: the outline flavour is preserved when the file is opened. You can convert between outline sort with Paths > Other > Convert to Cubic or Convert to Quadratic (including batch-converting for any selection of glyphs in Font view). In TrueType fonts, 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 always 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. To achieve that, the Glyph > Create Composite (Ctrl-Cmd-C) menu command will become your new best friend.

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 composite structure for your diacritics, you can make use of automatic alignment, which helps you take care of the diacritic sidebearing problem. To do that, make sure you have unchecked the File > Font Info > Other > Disable Automatic Alignment checkbox.

Reconstructing a multiple-master setup

If you want to do something more complex, like interpolating a new weight from two existing fonts (e.g., a light and a bold), then you will have to unite the two masters in one .glyphs file. To do that, follow these steps:

  1. Open both fonts.
  2. Switch to the primary font, e.g., the lighter or more condensed one.
  3. Choose File > Font Info > Masters, and the font info window will open.
  4. Click on the plus button in the lower left corner of the window, and choose Add Other Font.
  5. In the upcoming dialog sheet, pick the secondary font. Once you confirm by pressing the OK button, it will be added as a second master.
  6. Back in Font Info > Masters, make sure both masters have diverging interpolation values, e.g. two different Weight values, otherwise you cannot interpolate. Read more about setting up masters.

Once you have both masters in one file, it is not just a good idea to save the file (Cmd-S). Now you face the bigger task of making the glyphs compatible, i.e., establishing the same structure of paths, components, anchors, corner and cap components in both masters, so the shapes can actually interpolate. There are two ways of making sure you can spot incompatibilities: firstly, add an instance between the two masters in Font Info > Exports, or, alternatively, add the Enforce Compatibility Check parameter to Font Info > Font. Then Glyphs will indicate incompatible glyphs with a red marking, both in Font and Edit view.

To make incompatible glyphs compatible again, these ideas may help you:

  • Hold down the Option key and choose Paths > Correct Path Direction in all Masters (Cmd-Opt-Shift-R) to reset the start point of each path, reorder paths and components, and reset the orientation of each path.
  • Filter > Shape Order (Glyphs 2: Fix Compatibility) for dragging outlines and components into the same order in all masters.
  • Open Corner and Reconnect Nodes from the context menu for introducing path overlaps to facilitate interpolation. (Pro tip: The two commands are also available in the Paths > Other submenu, so you can set a keyboard shortcut, and you can hold down the Opt key to apply them to all masters.
  • In a glyph, step through all masters (Cmd-1, Cmd-2, …) and reset the anchors to their defaults by holding down the Option key and choosing Glyph > Reset Anchors (Cmd-Opt-R) in each master. You may have to fix anchor positions manually.
  • Reconstruct composites (like ccedilla and edieresis) by, again, stepping through masters (Cmd-1, Cmd-2, …) and reintroducing their default components with Glyph > Create Composite (Ctrl-Cmd-C) in each master.
  • View > Show Master Compatibility (Ctrl-Opt-Cmd-N) can help spot compatibility problems. Read more about achieving and maintaining compatibility.

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 glyph names

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

We therefore strongly recommend 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 sometimes the case if you exchange font data with UFO users.

In short, unless you have a good reason not to, take our advice and follow these two steps:

  1. Make sure that File > Font Info > Other > Use Custom Naming is unchecked, and
  2. Reset Unicode values and glyph names by selecting all glyphs in Font view and choosing Glyph > Update Glyph Info.
  3. Update automatic OpenType feature code, see below.

OpenType features

Some OpenType feature code will be lost. Glyphs attempts to reverse-engineer the code as much as possible from the compiled OT tables inside the font file, and it gets better at it with each and every update, but it can only get so far.

But Glyphs can build a lot of feature code automatically based on the glyph names you employ. So, you may want to ditch the imported feature code, and instead 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. Hint: search for ‘localize’.
  • 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, cv01 etc. allow Glyphs to build the OpenType features 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 more complex contextual substitutions, for you. These you will just have to do manually.

Kerning

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

Most glyph-level PostScript are preserved, also alignment zones and standard 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.

One drawback: glyph-level hints are usually not hooked up to a node anymore. In a multiple master setup, you want to fix this for the first master only: drag the blue circles and triangles onto outline nodes that make sense. As long as the outlines are compatible, node-connected hints from the first master are propagated to all interpolations. Alternatively, you can determine a different master as source for interpolating hints with a Get Hints from Master parameter in File > Font Info > Font.

For a quick guide on how to set your stems and zones, refer to the tutorial about PostScript autohinting, and have a more in-depth look into PS hinting with the manual PostScript hinting tutorial.

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.
Update 2018-08-01: added tips for Multiple Master reconstruction, updated screenshots, minor changes to reflect features of app version 2.5.
Update 2019-10-15: fixed typos and updated link about how to set a shortcut in System Preferences (thanks Nathalie Dumont).
Update 2021-06-14: minor adjustments for Glyphs 3, mainly URLs and menu names.
Update 2022-08-12: updated title, related articles, minor formatting.
Update 2024-07-17: Fixed a typo (thanks Dean).