New Features in Glyphs 2.3

by Stella Chupik

10 May 2016

Welcome to Version 2.3 of Glyphs! Take a moment and read through what’s new, and we’re sure you will agree that this is the best app version ever. As always, update by choosing Glyphs > Check for Updates…

Pencil Tool

We added a new tool: the Pencil (shortcut B). The Pencil tool is the fourth icon in the tool bar and allows you to ‘draw’ paths freehandedly. Just draw a line and when you stop drawing it automatically converts your cursor movement into a path:

Cool thing! Naturally, you’ll have to do some cleaning up. But the tablet users amongst you will love this, we’re sure.

While we are at it, there is another change in the toolbar: The Select All Layers tool is now packed behind the Select tool. You can toggle between both selection modes with Shift-V. This helps keep our toolbar clean and tidy.

Open Corner and Reconnect Nodes on Steroids

You can now open multiple corners at once! Simply select all the nodes where you want an overlap, then choose Open Corner from the context menu:

Speaking of opened corners: You can use overlaps for invisibility, too, or white opened corners. Since it is hard to describe, we’ll let a picture speak for itself:

This is going to be huge. For the invisible opened corners to work, they must be small enough. The threshold depends on the lengths of the last segments with the opened corners. The algorithm is a little more complicated, but in general, the visible parts must be longer than the invisible ones.

Likewise, you can now also reconnect many node pairs at once. Select all pairs you want to reconnect, open the context menu and pick Reconnect Nodes. Ta-dah!


Improved Metrics

Perhaps you already noticed the little yellow icons in Font view. They indicate that the current Metrics Key is not in sync, and may need updating.

Speaking of Metrics Keys, you can now combine Metrics Key calculations with auto alignment! To do that, put an equals sign followed by plus or minus and a number into the sidebearing of your auto-aligned glyph. E.g., =+20 will extend the auto-aligned sidebearing by 20 units, while =-15 will decrease ist by 15 units.


Font Note

In File > Font Info (Cmd-I), you will find a new tab, Note. It stores the Font Note, previously only accessible through a custom parameter and a third-party Palette extension. This will make collaboration and keeping to-do lists much easier. Oh, and did we mention, it also supports some Markdown highlighting:

Type in anything you like. It will not be exported into the OpenType font.

State of Component Alignment

​It is time for a little recap, because every Glyphs user should know this. There are two different ways components are positioned automatically.

  1. Aligning components is the first one. Take, for instance, two letter components. They are put next to each other just as if you would type them. Aligning takes both spacing and kerning into account. That may sound like old news to you. But two things are new about it in 2.3:
  • More glyphs are aligned by default. Apart from letters, alignment is now on by default for Spacing Combining marks and small figures. That includes subscript, superscript, and fraction figures. The small-number alignment behaves differently: only the horizontal placement is enforced automatically, following the italic angle if needed. You can freely move them vertically. Try it, it’s cool.

  • And then, you can now force automatic alignment for any component, not just the default cases. To do that, simply right-click a component and choose Enable Automatic Alignment from its context menu.

  1. Attachment is the second major way of automatic component positioning. That means that anchors are used to position a shape relative to another one. Again, no news so far. But now, all glyphs that have matching anchors will be attached by default when used as components in a compound glyph. In other words, if the base glyph has an anchor, e.g., connect, and the attached glyph has one with the same name, but prefixed with an underscore, _connect in our example.

Careful though, attachment anchors are also used for generating glyph positioning features. E.g., top and bottom will cause the automatic creation of mark attachment code, exit and entry are used for cursive attachment in Arabic.

If, however, you want to prevent Glyphs from generating the positioning code, you can now prefix the anchor name with a non-letter. A # works well, but emojis work just as well, so you can let your alignment anchors smile with 😀exit and 😀entry, or 💕top and _💕top. This is useful if you want to use these anchors for positioning components only, and save on the final file size by avoiding a bloated GPOS table.

Wait a minute. Did I say exit and entry for positioning components? You bet I did. Read on.

Sometimes, you need to align shapes, but can’t use normal alignment since it just won’t fit well enough. Now we have alignment anchors, too. Add an #exit anchor to the first and an #entry anchor to the second glyph. The component positioning works exactly like the cursive attachment for Urdu. Leave out the hashtag if you also want the cursive attachment feature code. What it does is move the second glyph to overlap the anchors, just like with the attachment described above. But then, it uses the spacing of the second glyph.

This is very useful for building in-strokes and out-strokes in Arabic letters and other connected scripts, but it can be used for anything you can think of, really.

Placed Image Handling

People who work with placed images will love this. As a tribute to our beloved Netscape Navigator (R.I.P.), we changed the way missing images are displayed. And as a side effect, we have gotten rid of those pesky error messages.


Smart Filters

You want filters? We got filters! We’ve added eight new options for the Smart Filters in the sidebar of the Font tab. For instance, you can now filter based on annotations with Has Annotations, or for the presence of Bracket or Brace Layers, by choosing Has Special Layers. Or, find all glyphs that have manually placed hints with the Has Hints filter option.

Look closely, you can also filter for Category and Subcategory, or whether the glyph has customized glyph info (Has Custom glyph Info). For finding metric problems, you can also filter for glyphs that have auto-alignment in place (Is Auto-Aligned), and whether the metrics keys are out of sync.

OpenType Features

The figure features are calculated differently when a default set plus three of the four variants (.lf, .tf, .osf, .tosf) are present. In that case, Glyphs will not measure your figures anymore, but look at the existing figure suffixes to determine the style of the default figures.

And the building of the ornm (ornaments) is now failsafe: Glyphs checks for the presence of the bullet before it does anything.

The cvXX features (Character Variants) can now be automated. It is triggered when a glyph has a .cvXX suffix, where XX stands for figures between 00 and 99. But don’t get too excited about it, Character Variants are only supported by LateX at the moment.

And as always, there have been many small tweaks and improvements. Kerning in Southeast Asian scripts now ignores marks, for instance. And ccmp works much better now for Devanagari.

Language Support

Glyphs now speaks Chinese! The user interface now has both a simplified Chinese and a traditional Chinese localization. For the latter, we are very much indebted to the wonderful But Ko. Also, the Czech and Japanese localizations have received significant updates.

As for language support in fonts, the African N’Ko script can now be exported. And we have made significant improvements for Kannada, Devanagari, Khmer, Lao, Hangul, Malayalam and Myanmar. Many Glyph Info additions for Arabic: we have added many Unicode 8 and even some Unicode 9 Beta mappings. And Arabic feature generation works much better now. Many improvements for Chinese: We have added CNS1 mapping. And Japanese: improved Japan1 mapping, and accents should now work better with halfforms. Also, you can now kern between Han and Kana glyphs.

For a nice change in the Edit view, the shoulderHeight custom parameter in File > Font Info > Masters can now also be used for Hebrew glyphs.

You can now employ local Glyph Info files. Put your custom GlyphData.xml next to your .glyphs file, or in an Info folder, or in the parent folder. If Glyphs finds it in any of these places, the content will override the installed Glyph Info. This makes it much easier to share custom glyph data for a specific project.

Batch Editing

We made some tweaks to allow an even more streamlined workflow. For starters, you can now select and add multiple glyphs to your Edit tab via the File > Edit > Find… dialog (Cmd-F).

In the same dialog, you can now type multiple, space-separated search terms. E.g., searching for dieresis ss01 will find all glyphs that have both dieresis and ss01 in their name. Nifty.

And you can now add the same component to many glyphs at once. To do that, select the glyphs in Font view, choose Glyphs > Add Component… (Cmd-Shift-C), pick the glyph you want to add as component, and confirm the dialog. Voilà.

Custom Parameters

There are loads of new and improved custom parameters! Here is the quickest rundown we could do:

  • Master Background Color in File > Font Info > Masters, so you can better differentiate in which master you are when you’re switching between masters a lot.
  • Master Name overwrites the master name generated from the weight and width popups. The name will be visible in the tooltip above the master buttons at the top of the window.
  • Export Glyphs turns on non-exporting glyphs, or turns off exporting glyphs.
  • Remove Feature now also supports the GPOS features kern and dist.
  • Replace Feature allows custom kern features for every instance.
  • Update Features in instances to force the recalculation of automated features.
  • Write Kern Table will export the fully expanded kerning. You have to do your own subsetting though, so make sure that your kerning fits in the table.
  • Name Table Entry adds entries to the name table. The format is nameIDs;text where nameIDs are the same as in the name table syntax in feature files. Example: 4 3 1 1033;Blabla Sans
  • Disable Last Change can help with version control.
  • Has WWS Names sets bit 8 of the fsSelection value in the OS/2 table. If you don’t know what that means, please keep walking, nothing has happened.
  • makeOTF Argument if you know what you are doing.
  • unicodeRanges now also available in instances.
  • Post Table Type allows you to set the post table version.
  • TTFAutohint control instructions allows you to fine-tune your TT Autohinting.
  • And codePageRanges sets the Codepage Ranges. Careful, this can influence sorting in Adobe menus.

Better Importing

Glyphs now imports many more things, when you open an existing font. Most importantly, it now preserves the components in TrueType fonts. And it tries to recreate anchors when you import feature code that contains mark attachment.

Many special settings are imported as custom parameters: PANOSE values, hhea vertical metrics, and OS/2 winAscent and winDescent from CFF fonts.

When you import a .metrics file, and the values in the .metrics file disagree with the auto-alignment in the font, automatic alignment will be disabled for conflicting compound glyphs.

TrueType Improvements

People who work a lot with TrueType will appreciate that we updated the internal ttfautohint to version 1.5. What’s more, you can now add your control instructions as a Custom Parameter in File > Font Info > Instances.

If you do your own manual TrueType hinting, the TrueType tool now offers to preview Grayscale, DirectWrite, or ClearType. Not just the outline, but also a pixel preview:

Switch between rendering styles and PPM sizes in the grey info box. Be warned, however, that the pixel renderings are just an approximation. The actual output in Windows applications may vary.

Also note that vertical distortions for Grayscale and DirectWrite are much smaller, outlines now snap to pixel fourths (Grayscale) or fifths (DW), respectively. This makes for a much smoother outline scaling, and less drastic jumps of horizontals between certain PPM sizes.

Plugins, Scripts & Python

In Glyphs 2.3, you can add aliases in your Plugins folder, very much like it has already been possible with Python scripts in the Scripts folder. You will still have to restart the app for newly installed plugins, but you don’t need to copy anything into the Plugins folder anymore. Also, Glyphs can see when an opened plugin is situated inside a git folder, and will offer to create that alias straight away:

If you find the current plugin installation situation too complicated, well, worry no more. Glyphs 2.3 now has a full-fledged Plugin Manager, accessible via Window > Plugin Manager! All plugin authors are invited to register their plugins, so users can find, install and uninstall their filters and reporters with a single click. And, the plugins are auto-updated to their latest versions at every app start. This should finally take care of the most frequent reply in support mails, ‘I already fixed that. Please make sure you have the latest version installed’. How cool is that!

But when it comes to Python, we have saved the best thing for last: Yanone rewrote the Python API and the Plugin SDK. And he has done a phenomenal job, a big round of applause please.

It is now much, much, much easier to create a new plugin for Glyphs. Needless to say, this is our biggest change ever under the hood. So, make sure you have the latest versions of all your plugins.

And by the way, Yanone also cleaned up and reworked the application icon. Isn’t it a beauty?

We are so happy about it that we printed loads of little stickers with it. We always carry a bunch of them with us. So if you run into us, ask us for one.

Many Small Improvements

As always, the update sports literally hundreds of little improvements that will make a difference in your everyday type design experience.

For one thing, in the Preview area, Always Center Active Glyph is now an option. When activated, as you may have guessed, the selected glyph appears centered at all times, adding big gaps on either side if necessary. But if deactivated, Glyphs will try to fill the Preview area as well as possible, keeping the text flush left or right. To toggle between the settings, open the preview field by clicking on the eye icon next to Features in the left bottom corner of your Edit view. Then, right click to open the context menu and select Always Center Active Glyph. Voilà!

You can now directly switch to a specific tab by pressing Cmd-Opt-1 through 9. That means that Cmd-Opt-1 always takes you back to the Font tab. Oh, all that precious lifetime saved!

Make kern exceptions without prior class kerning. Pan and zoom while the Annotations tool (A) is active. In Font view or Edit view, hold down the Option key to set the layer color, rather than the glyph color. Use the Transformations palette to also transform caps, corners, and align anchors. In the Layer palette, drag a layer copy on top of a master to use it as master. The instance preview at the bottom of the window shows more Filter and Prefilter custom parameters. Grids larger than 1 only apply to on-curves, while off-curves can move freely, so you can still place circles in a rigid grid. The mark cloud will now prefer .case accents for lowercase letters with ascenders, such as h or l.

Thank You

So, we have had quite a bunch of stability improvements and bug fixes, making this the most stable release of Glyphs ever. And therefore, we want to take the opportunity and thank all beta testers and forum members for their continued, well-informed feedback, for all the suggestions, and for all the crash reports that were sent to us. We are proud to have one of the most competent user bases on this planet. Thank you!

Sample Font: Sephora Sans by Mucca/Schriftlabor, and Amras Serif by Schriftlabor.