Glyphs 2.6.2 Released

Welcome to the latest iteration of Glyphs: version 2.6.2. This blogpost will take you through the most important changes. To update, fire up your copy of Glyphs, and choose Glyphs > Check for Updates… and follow the instructions that appear on the screen:

Catalina-compatible

First and foremost, we managed to update all the built-in helper tools to 64-bit code. This makes Glyphs now fully compatible with macOS Catalina. And if you are not upgrading your OS yet, at least you get no more nasty warning dialogs in macOS Mojave. FTW!

Edit View

Update for your Selection tool (V): It will try to keep angles around smooth connections (green nodes) when you are nudging them with Ctrl-Opt.

This will make a difference in a lot of people’s workflow: Hold down your Option key to change Reconnect Nodes to Reconnect Nodes in all Masters. If you want to thank someone, thank Ermin for the idea:

The Measurement tool (shortcut L, or temporarily hold down Ctrl-Opt-Cmd) now snaps to nodes. Cool.

If you choose the appropriate setting hidden behind the magnifying glass symbol (see screenshot), you can now search for Unicode values in Select Glyphs dialogs, e.g. in Edit > Find > Find… or Cmd-F:

Look into your Edit > Other submenu: You will find new Next Layer and Previous Layer menu items, for stepping through all master, brace and bracket layers. In other words: all layers relevant for interpolation.

Switch to Text tool (T), select all text (Cmd-A), and right-click: now you have the full-blown Copy Glyph Names submenu, complete with the new option to copy Unicode values:

The new Unicodes option is also available in Font view, of course. Speaking of which:

Font View

If you have your SVG color font set up nicely, the glyph slots in Font view will display a preview for the SVG glyphs. Minus the animation, if there is one. As an example, this is what the red dot from the SVG tutorial looks like in Font view:

Font Info

When you edit custom parameters with a text dialog, such as glyphOrder, you can now find and replace text in it. Simply press Cmd-F for finding, or Cmd-Shift-F for replacing. This will make managing long lists of glyph names easier:

There are two new custom parameters for File > Font Info > Instances:

  • Export OpenType for enabling/disabling export of OpenType layout tables (GDEF, GPOS, GSUB), default and fallback is on.
  • Export AAT for enabling/disabling export of AAT layout tables (kerx, morx), default and fallback is on.

This way you can now make two equivalent font instances, one AAT-only and one OT-only.

Script Support and Glyph Data

You can add multiple languages to the .locl suffix now. For example, de-cy.loclBGRMKDSRB will create the respective locl substitutions for Bulgarian, Macedonian, and Serbian.

We have largely improved automatic feature code and glyph info for Oriya. Many thanks to Amélie and Sol for their input.

The automated Thai ligature feature code has been improved, especially the liga and rlig treatment. Thanks to Ben for his continued input.

OpenType feature code for Indic scripts is not going into ccmp anymore. While we are at it, we also do not add ligature anchors to conjuncts anymore when you press Cmd-U.

We added a lot of little improvements for right-to-left scripts. To name just two, we better align the grey glyph info box in Edit view, and secondly, you can now properly print your Edit view in RTL mode. What a relief!

Oh, and who would have guessed, there is news for Latin as well: Glyphs now always prefers .case accents for lowercase compounds with ascenders, e.g. hcircumflex and lacute will prefer circumflexcomb.case and acutecomb.case over their unsuffixed variants if available.

Better initial width of new glyphs: Let’s face it, the default width of 600 units didn’t always quite cut it. So, for instance, CJK glyphs default to the UPM now, which makes much more sense. Or, the glyphs listed in Categories > Separator > Other get much better defaults that should work in most cases out of the box.

Remember, you can set your own glyph width defaults with the Default Layer Width custom parameter in Font Info > Font and/or Font Info > Masters. As value, it takes the script name (as specified in Window > Glyph Info), followed by a colon and a number value, e.g., thai: 450. However, if you find yourself doing this very often for a certain script, please let us know. We can update the defaults accordingly.

And… at long last, I have the big pleasure to inform you that we have added Mahjong tiles to our Glyph Data. So nothing shoud stop you anymore from making that Mahjong font you have always dreamed about!

Import and Export

When opening a compiled font, Glyphs now imports and stores the fsType entry from the OS/2 table. En passant, we improved the wording in the custom parameter dialog. Thanks to Felipe.

Imported .ttf fonts will always have component alignment disabled.

We are not kidding: you can now painlessly import .eps files from CorelDraw.

We much improved the import of .designspace files. It can also handle incomplete files to some degree, e.g., a missing info element in the file. Thanks to Paul for his alertness on this one.

UFO

Perhaps the biggest news in this category: By popular request, when you export a .ufo file, it defaults to version 3 now.

We improved stability of UFO export, and we now export GPOS code into UFOs as well. For the latter, you do need to enable the Decompose Smart Stuff option in the UFO export dialog, though. Export also supports public.postscriptNames and public.skipExportGlyphs. And nonspacing marks are now automatically collapsed to zero-width during UFO export.

Exporting a UFO from a .glyphs file that uses smart components is now stable and reliable.

TrueType

We improved handling of TrueType curves without on-curve nodes. Yes, that is possible in TT. This and a few other things are adding to an overall improved TT-to-PS conversion.

For the geeks amongst you, we managed to improve cvt handling with an alignToZone directive. Thanks to Jens for his invaluable input.

We improved the setting of the start node in PS-to-TT outline conversion during export. Careful: this may interfere with point indexes, so double check your TTF Autohint control instructions if you have any.

In the TrueType Instructioning tool (I), we have some news for you: the TrueType curve preview is more reliable now, and selected nodes stay selected after you undo an action.

And for the AAT geeks, you can now have multiple morx and kerx entries in Font Info > Features > Prefix. They will be automatically merged during export. Thanks to Muthu.

Interpolation and Variable Fonts

We improved many details of OTVar production: export performance is noticeably better, STAT table export is more reliable, more subtable overflows are prevented now. That’s cool.

In terms of the outline conversion that is necessary for a TT-based variable font, Glyphs is now less strict with inflection points. This should result in fewer nodes, and thus in fewer micro-kinks.

And what’s really cool is that you can keep your outside (‘white’) overlaps when you export variable fonts. If you don’t know what I am talking about, this is what I mean:

Oh, and we improved interpolation of kerning exceptions. Thanks to Titus and Tim for their input.

And lastly, Glyphs makes a better effort at preventing rounding errors that could lead to vertical lines being slightly slanted in interpolation, just by one unit and only in rare edge cases, but still.

General Improvements

As with every update, we were able to squish a few bugs, improve the performance, and increase the stability of the app. The latest statistics showed practically no crashes anymore. If you do encounter one though, do not forget to send us your crash report, so we can take care of the problem.

And as always, there were these countless small improvements and fixes, too small to mention them all, but I’ll give you a small excerpt anyway:

  • Improved the Round Corner filter, particularly with already existing roundings
  • Placeholders now appear as they should when printing
  • Improved calculating of vpal feature with custom vertOrigin
  • Use the ‘legible’ system font for kerning group fields as well
  • Improved decomposition of corner and cap components, especially when they are mirrored and nested
  • Glyphs now better checks for invalid characters in Font Info entries
  • Fixed the OT feature preview for CID fonts
  • Improved the parsing and calculation of metrics keys, allowing more combinations
  • Improved performance of the Edit view when there is a lot of text plus an instance in the Preview that has a filter applied
  • Fixed a longstanding bug that prevented the Reconnect Nodes function in Background layers
  • Fixed vkrn in Variable Fonts
  • Glyphs does not scale components and corners anymore when then base glyph is scaled already
  • Scripting: you can now access a layer’s .vertWidth and .vertOrigin through the Python wrapper
  • Scripting: improved handling of .colorIndex in Python

Many thanks to many Glyphs users, especially Ricard, Wei, Mark, Edd, Ori, Paul, Taisei, and Matheus.

And keep it coming, folks. Your continued input makes a big difference for us. It helps us improve Glyphs to the font editor that we all want. We have the best users in the world. Therefore a big thank you to you all!