Skip to content

FontLab version 6.1.0.6871»

25 October 2018

Introduction»

FontLab 6.1.0 brings major new features:

and a wealth of other large and small enhancements, as well as bug fixes.

We’ve also reset the free 30-day trial period. If you’ve tried FontLab before and your trial has expired, you can download FontLab 6.1 and enjoy it again for a month!

Additional Reading»

New Features / Enhancements»

Glyph Drawing»

Length or angle of handles and line segments»

The Glyph window now shows not only the coordinates of a node or a handle but also the length of handles and line segments if they are perfectly horizontal or vertical, or, otherwise, their angle.

  • To see coordinates for only the node that you hover over with your pointer, turn on Preferences > Glyph Window > Show coordinates and turn off View > Show > Coordinates. To also see lengths or angles of adjacent handles and line segments, also turn on Preferences > Glyph Window > Show lengths and angles.
  • To see coordinates and lengths or angles also for all or selected nodes, turn on View > Show > Coordinates, and in Preferences > Glyph Window > Show coordinates, choose all or selected.
  • To hide lengths and angles but still see coordinates, turn off Preferences > Glyph Window > Show lengths and angles.
  • To completely hide coordinates, lengths and angles, turn off Preferences > Glyph Window > Show coordinates.

Free Transform corner scaling»

When you use Free Transform (CmdT) to scale a selection (contours, image, element) by the corner, the scaling is now non-proportional (independent in X and Y). Hold Shift to constrain to proportional scaling.

Previously, scaling was proportional without Shift and non-proportional with Shift. If you prefer that old behavior, turn on Preferences > Editing > Free Transform scaling: non-proportional with Shift, otherwise proportional.

Zoom sub-menu in View menu»

The View menu now has a Zoom sub-menu that lists all the zoom-related entries that were previously listed directly in the View menu.

Scoreboard»

The Scoreboard now displays and updates coordinates of anchors, pins, guidelines, hints, zones, and the measurement line, when you move them with arrow keys.

Components and Elements»

Components»

FontLab 6.1 (re-)introduces Components as a standards-compliant way to build glyphs from other glyphs.

Components in FontLab 6.1 work very much like components in FontLab Studio 5, UFO or in TrueType-flavored OpenType fonts. Components in FontLab 6.1 point to a source glyph and have a transformation (usually shift, optionally also scale, rotation or slant). That’s it. If you’ve used Components any other font editor, you’ll find yourself at home easily.

To start using Components:

  • Open a TTF, VFB or UFO if Preferences > Open Fonts > Use Components is on.
  • Open a VFC or VFJ, select all glyphs in the Font window, and choose Element > Element Reference > References to Components. Repeat this for each master.

In previous versions of FontLab, you could use Element References to work with repeatable shapes across a font. Element References work great when you want to re-use a design pieces such as a stem, a serif or other glyph fragments (contours or images) across multiple glyphs in the same layer, and maintain a link between all the places where you’ve placed it. All Element References are equal. There is no source glyph to which they point to — they all link to each other. Element References have no knowledge about glyph metrics or anchors. In a way, they’re very similar to subroutines used in PostScript-flavored (CFF) OpenType fonts.

Previous versions of FontLab simulated components using Element References, by locking some references and dynamically finding the best candidate glyph for a component source. But this was never a fully satisfying experience, so we’ve decided to add support for real Components.

Element References are great if you link between pieces of glyphs, or even between pieces within the same glyph. Components are great if you build composite glyphs from other glyphs. So FontLab 6.1 has both mechanisms, each to fit its purpose.

You can build composite glyphs from Components in one or all masters — via Generate Glyphs, Add Component, Copy-Paste or Auto Layers. You can mix Components and simple contours in one layer. You can use nested Components that point to glyphs that are made of Components (for example, you can build a dieresiscomb glyph from two dotaccentcomb Components, and then build Adieresis from the Components A and dieresiscomb).

FontLab will keep your Component structure when it exports your font to a format that supports components (TTF, VFB, UFO), and will decompose Components as needed when a format does not support components at all, or does not support some aspects such as rotated Components or Components mixed with contours.

Start using Components»

You can decide to use Components or keep using Element References in FontLab. For that, in Preferences > Open Fonts > Composite glyphs, choose:

  • Use components and FontLab will prefer to use Components.
  • Convert components to element references and FontLab will prefer to use Element References.

Opening FontLab files (VFC, VFJ)»

When you open a font in the .vfc or .vfj format, FontLab will keep your Element References as Element References, and will keep your Components as Components. If you wish, you can convert Element References to Components at any time (see below).

The exception is Auto Layers, since FontLab builds them dynamically: if Use components is on, FontLab will use Components, and if Convert components to element references is on, FontLab will use Element References to dynamically build your Auto Layers.

Opening font formats that support components»

When you open a font in a format that supports components (.ttf, .vfb, .ufo, .fog, .glyphs, and their derivatives such as .woff):

  • if Use components is on, FontLab will import the Components exactly as they are in the font
  • if Convert components to element references is on, FontLab will convert the components to Element References

Opening font formats that don’t support components»

If you turn on Preferences > Open Fonts > Detect composites and open a font in a format that does not support components (e.g. .otf or Type 1), FontLab will build Element References between repeating contours across the font. If Use components is on, FontLab will then convert Element References to Components (see below).

Converting Element References to Components»

To convert existing Element References to Components, select all (or some) glyphs in the Font window, and choose Element > Element Reference > References to Components. Repeat this for each master.

  • If the font has a glyph where a referenced Element is used by itself, FontLab will use it as the source glyph for the Components, and will convert all other Element References into Components.
  • If the font has is more than one glyph where a referenced Element is used by itself, FontLab will use the glyph as source where the referenced Element is unlocked and is “least transformed”, i.e. it is placed closest to the origin point (0, 0) and has no other transformations applied.
  • If the font does not have a glyph that can be used as the source glyph for the Components, FontLab will keep Element References as they were.

If you’ve created some “helper glyphs” that hold your design parts like serifs or stems, then Element References to those glyphs will be converted to Components.

If you use Element > Element Reference > References to Components in the Glyph window, FontLab will attempt to convert all Element References in the current layer into Components using the just-described mechanism.

Automatically adding components»

If Use components is on, FontLab will use Components:

  • when you use Font > Generate Glyphs
  • when you turn on Glyph > Auto Layer for a glyph layer or turn on the Auto layer button in the Layers & Masters panel
  • when you have Preferences > Operations > New glyphs > fill created glyphs with content when available turned on and you double-click an empty glyph cell in the Font window
  • when you perform Font > Detect Composites (will use them if it can)

If Convert components to element references is on, FontLab will use Element References instead (and the menu item will be Font > Detect Element References).

Tip: To quickly replace your manually-constructed composite glyph master with an automatically generated glyph master that will use the “correct” components (if it’s in FontLab’s alias.dat database), turn on Glyph > Auto Layer. If you want to correct the placement of the components, turn Glyph > Auto Layer off.

Glyph > Add Component…»

Choose Glyph > Add Component… in the Glyph window (or right-click and choose it from the context menu) to add a component to the current master or all masters of your current glyph. Or use it in the Font window to add the same component to multiple glyphs at once.

In the Add Component dialog, start typing the glyph name of the component you want to add, and you’ll see a list of results. When the Find glyph name synonyms toggle is on, FontLab will also find Decyr if you type in uni0414 or vice-versa. By default, FontLab will insert the first glyph on the list but you can pick a different one.

At the bottom of the dialog, you can decide where to place the inserted component:

  • If you leave the X and Y fields empty, FontLab will:
  • use matching anchors if available (e.g. top in the current glyph and _top in the component glyph)
  • otherwise it will center the inserted component horizontally, and will shift the component upwards by the difference of caps height and x-height if you’re adding a mark component to an uppercase letter, but will do no vertical shift if the mark’s name ends with .case or .cap or if you’re adding a component that isn’t a mark
  • You can enter a numeric value into either X or Y or both, then FontLab will use the value for the specified coordinate, but if a field is blank, FontLab will use the above procedure for that coordinate (so you can enter 0 in Y and leave X blank, and you’ll get a horizontally centered component with no vertical shift)
  • You can enter an anchor name into either field — if the current glyph and the component have several matching anchors, the specified anchor will be used
  • You can also mix anchor-based and absolute positioning, e.g. enter 0 into X and top into Y will place the component at the origin point horizontally but use the specified anchor for vertical positioning

Use the Flip horizontally and Flip vertically buttons to mirror the inserted component.

Choose whether the current glyph should keep its metrics, or whether the advance width should be replaced by the width of the inserted component.

Use the Apply to all masters toggle to insert the component into the current master or to all masters.

Copy-Paste»

In Font window, select one glyph cell and choose Edit > Copy. Then select one or more glyph cells and choose Edit > Paste Components, and FontLab will insert the copied glyph as a component into all selected glyphs in all masters.

In Font window, select more than one glyph cells and choose Edit > Copy. Then select one ore more glyph cells and choose Edit > Paste Components, and then FontLab will insert the first copied glyph as a component into the first selected glyph, the second copied glyph as a component into the second selected glyph, and so on — again, in all masters.

Using Components»

Components in FontLab 6.1 are special Elements which are “glyph filters.” So you can use the Element tool to move components (but you can also use the Contour tool). You can use most of the Element menu and the Elements panel to work with Components. For example:

  • Use the < and > keys to switch between Components in the current glyph.
  • To open the Component’s source glyph for editing next to your current glyph, double-click a Component, or when a Component is active, press CtrlE, or right-click and choose Edit Element, or choose Element > Element Reference > Edit Element.
  • To make a Component “first”, choose Element > Arrange > Send to Back or drag the Component to the bottom of the components list in the Elements panel.
  • Align components and other elements within the glyph layer with the the Element > Align menu items.
  • Use Element > Group if you want to always move several components in a glyph together, and Ungroup them if you don’t.

Replace a Component»

When you use the Contour or the Element tool and a Component is active, the Glyph window property bar will show an underlined C: icon, and a text field that shows the name of the component’s source glyph.

Type a different glyph name (or a synonym) into the text field, or click the C: icon and type it in the Replace Component dialog, and press Enter — and the current component will be replaced in the current master with a component that points to a different glyph.

You can also replace a component in the current master by typing a new glyph name in the Glyph name field of the Elements panel (use the Show element properties to show the field).

To replace a component in all layers, you need to perform the replacement in each layer.

Decompose»

When a Component is active in the Glyph window, you can click the Decompose button in the Glyph window property bar on in the Elements panel, and the component will be decomposed in the current layer, i.e. its contours and guidelines will be inserted into the current glyph.

To Decompose all components in the current layer, choose Glyph > Decompose or right-click in the Glyph window and choose Decompose from the context menu. However, if you’re in the Element tool and you Shift-click one or more Components, Glyph > Decompose and Decompose context menu item will decompose only the selected component(s).

When decomposing Components, FontLab will combine the contours of the decomposed Components and contours that pre-existed in the glyph into one single element — unless the source glyphs used different strokes or color fills.

Note:

  • Element > Expand Filters will decompose a Component and remove any other Filters that exist in the source glyphs (for example Power Brush)
  • Glyph > Flatten Glyph will decompose, remove filters and combine the decomposed elements into a single Element if possible
  • Element > Separate Contours to Elements and Element > Optically Separate will also decompose, and then perform the separation

Composite glyphs in the Elements panel»

The Element References section of the Elements panel (when you turn on Show element references button, the section appears at the bottom of the panel) shows glyphs in which the current element is used as a component or as an element reference.

  • Double-click a glyph cell there to open the glyph next to the current glyph in the Glyph window
  • Cmd-double-click a glyph cell there to open the glyph replacing the current glyph in the Glyph window
  • select multiple glyph cells and press Enter to open all selected glyphs in the Glyph window

If you select a component in the Elements panel, then select multiple glyph cells in the Element References section, and then in the Element Properties section you apply an X or Y shift, the component will be shifted in all selected glyphs.

Some fields in the Elements panel change when you are working in a glyph that has Components, for example, the Glyph Name field appears. If the layer is an Auto layer, many properties (such as advance width) become non-editable, because they are built automatically by the Auto layers recipe.

Components/elements in Auto layers»

When viewing a glyph with an Auto layer in Glyph window, you can now double-click a component (or an unlocked element reference that has a “source glyph”) to open that component’s source glyph for editing next to the current glyph.

Contour tool and locked elements»

In a Glyph window, when Edit Across Elements is on, the Contour tool is selected, and the current element is not locked, Edit > Select All (CmdA) now selects all contours of all elements in the current glyph. If the current element is locked, or the Element tool is selected, Edit > Select All (CmdA) selects elements.

Remove Empty Elements action»

Remove Empty Elements is a new command in the Actions dialog, which removes empty Elements and references to them.

Measurements Panel»

The Measurements panel is a table where you can keep track of the most important proportions and numerical values of your design. You can open the panel with View > Panel > Measurements.

The panel’s rows are predefined measurements for uppercase and lowercase letters: vertical and horizontal round and straight stems and their ratios, counters, overshoots, the contrast and some font-wide dimensions. To show/hide some measurements, click the Options button at the bottom.

These measurements are for your reference only, and are independent of the font’s technical values in Font Info. FontLab will save them in your VFC/VFJ, but not write any of those values (e.g. stems or Ascender) into Font Info or the exported font.

If you have multiple masters, the first column shows the measurements for the current master, then values for all masters are shown. To switch the master, double-click the the column heading.

To enter your own value, double-click a cell.

To auto-calculate some measurements, select the cells in the panel and click the Recalculate button at the bottom. This is useful if you’ve added more glyphs to your font or have entered some custom values that you no longer need. Note: auto-calculation uses Latin glyphs from your font.

If you need to note down a custom measurement that is not in the list, use any predefined measurement row to your liking.

Glyph Set»

Font filters and Font window sidebar»

In the Font window, you can use font filters to find certain glyphs in the Font window, and to focus on them by sorting them ahead of (or displaying instead of) other glyphs. Note: Do not confuse font filters with glyph filters in the Glyph window — those are for special effects like Power Brush or Smart Corner.

The Font window in FontLab had a Sidebar with the Search History and Bookmarks sections. In FontLab 6.1, the Font window Sidebar is much more powerful. It now also has:

  • a Basics section for beginners
  • a Categories section that lets you filter glyphs by their Unicode categories or OpenType glyph class definitions, by some design properties (glyphs that use components, glyph filters or color), and by the layers that each glyph includes
  • a Scripts section that lets you filter glyphs by their Unicode script (writing system)

FontLab 6.1 also has an easier way to hide unfiltered glyphs in the Font window and the ability to Search for glyphs using their synonym names or layer names that they contain.

The Font window shows all glyphs that exist in your font, sorted by whatever you choose in the Font window’s property bar Sort dropdown. But if you want to focus on a particular set of glyphs or if you want to create some glyphs that don’t exist in your font yet, you can use a font filter.

Font filters show you the glyphs that exist in your font and match some specific criteria. Font filters differ in how they perform the matching:

  • exact filters only match a glyph if its name, Unicode codepoint or other property exactly matches the criteria,
  • fuzzy filters also match a glyph if it’s a variant or alternate of a glyph that matches the criteria (glyph name suffixes and glyph ligature naming is used to find the alternates),
  • prospective filters also show empty glyph cells, which are placeholders for glyphs that you could add that also match the criteria; prospective filters are exact because they have a maximum possible number of results that is known up front.

Hide unfiltered glyphs»

When a font filter is active, the Font window glyph cells are divided into two groups: the filtered glyph cells (the ones that match the filter) and the unfiltered glyph cells (those that don’t match the filter).

The Font window property bar now has a new toggle button: Hide unfiltered glyphs (in previous FontLab version, this toggle was called All glyphs and existed at the bottom of the Font window sidebar).

  • When Hide unfiltered glyphs is off (the default):
  • Filtered glyph cells are shown first at the top of the Font window, and they are highlighted in yellow. You can change the color and intensity of the highlight Preferences > Font Window > Highlight.
  • Unfiltered glyph cells are shown after the filtered glyph cells, and they are not highlighted.
  • The Font window status bar shows (in the bottom-right) how many glyphs are selected, and how many glyphs are there in total.
  • When Hide unfiltered glyphs is on:
  • Only filtered glyph cells are shown in the Font window.
  • Unfiltered glyph cells are hidden.
  • The Font window status bar shows (in the bottom-right) how many glyphs are selected, how many are filtered and how many glyphs are there in total.

So if your font filter is “Uppercase Letter”, the filtered glyph cells will contain uppercase letters and will always be shown. The unfiltered glyph cells that contain all other glyphs in your font will be shown after the filtered glyphs or will be hidden.

Filter dropdown»

The Filter dropdown (located in the property bar between the Cell caption dropdown and the Sort dropdown) produces prospective filters for the following types of criteria: Encodings, Unicode ranges, Codepages, Unicode Categories and Unicode Scripts. The dropdown has two parts: in the first, you choose the type of criteria, in the second, the actual filter.

In FontLab, we’ve updated the Encoding filters in the “OpenType” group to no longer include empty glyph cells at the beginning of each encoding.

The Search box (located in the top-right of the Font and Glyph windows) produces prospective filters for the same criteria types as the Filter dropdown, and produces exact or fuzzy filters for other criteria.

We’ve improved the Search functionality in FontLab 6.1. This applies to the Search box and to the Edit > Find Glyphs dialog. You can now search for:

  • Synonyms: when you search for a glyph name, the Synonyms criteria will match other glyph names with the same Unicode from FontLab’s glyph name database (standard.nam) and will match for XXXX, uXXXX and uniXXXX algorithmic names, where XXXX is all Unicode codepoints assigned to the glyph (there can be multiple). It does a pure substring match, i.e. only “contain.” Example: When the font has the glyph uni042F (Cyrillic Capital Letter Ya), Synonyms matches IA, 42f and afii10049 (or a portion thereof). In the Find Glyphs dialog, Synonyms are indicated with the ⌥ icon.
  • Layers: you can enter the complete name of a layer (not a portion), and the Layers criteria will match the glyphs which include that layer.
  • Tags: you can enter the complete tag (not a portion), and the Tags criteria will match the glyphs which have that tag. In FontLab 6.1, we have extended the built-in virtual tags (see below).

Font window sidebar»

We’ve greatly extended the Font window Sidebar which you can open using the 2nd button in the Font windows’s top property bar.

Previously, the Sidebar included two resizable areas: Search history which lists the filters that you’ve previously applied to the Font window, and Bookmarks where you can save some filters from the Search history section for later re-use.

Now the Sidebar’s first resizable area is a hierarchical list of font filters grouped into three sections:

  • Basics
  • Categories
  • Scripts

You can collapse or expand a section (and any sub-sections) by double-clicking its heading.

The Basics section is aimed at beginners, and lists three Encodings (prospective filters, which are lists of glyph names sorted in a defined order):

  • New font is a list of 157 glyphs in an example order in which you might want to draw them. It includes basic Latin lowercase and uppercase letters, digits and some punctuation characters.
  • Latin Simple is a list of 231 glyphs suitable for a simple Western Latin font.
  • Latin Pro is a list of 374 glyphs suitable for a more extensive pan-European Latin font.

You can find additional prospective filters in the FontLab and OpenType groups of the Filters > Encoding dropdown.

The Categories section has several categories and subcategories that include different pre-defined font filters. To expand or collapse a category, double-click its heading or click the triangle to the left.

Most subcategories are fuzzy, but a few are prospective. Next to the prospective subcategory heading, FontLab shows a totals label. If the totals label is gray, it shows the number of current matches that exist in your font and the complete number of matches including the prospective matches that you might want to add. If you click the totals label, a Generate Missing Glyphs dialog appears and offers you to add missing glyphs to complete the subcategory. If the totals label is green, the subcategory is complete.

The All category shows all glyphs in the font. The Letter and Number categories are fuzzy filters based on the Unicode categories, and they’re visible by default. They include the prospective subcategories: Latin Uppercase, Latin Lowercase and Basic Digits and other fuzzy subcategories.

When your glyph set is more extensive, additional fuzzy categories and subcategories appear in the Sidebar: Punctuation, Symbol, Mark, Separator. If your font has glyphs with names that contain .sc, .smcp, .c2sc or .small, FontLab also shows the Small caps subcategory.

The Properties category is special: it lists glyphs that have certain virtual tags that FontLab automatically assigns to glyphs that match certain criteria. The Properties category only lists the following subcategories, and only if glyphs actually have the relevant virtual tag.

A glyph will appear in each design-related Property, and have the corresponding virtual tags, if at least one master matches the criteria for that Property:

  • Composite (the virtual tag composite) — glyph has components
  • Compound (compound) — glyph has compound elements (one that uses glyph filters like Fill, Smart Corner, Glue, Power Brush)
  • References (references) — glyph has element references
  • Auto (auto) — glyph has an Auto layer (a composite layer that is built automatically)
  • Colored (colored) — glyph has a non-monochrome fill or stroke

A glyph will appear in one of those Properties depending on its OT Glyph Definition Class setting in the Glyph panel. This corresponds to the GDEF.GlyphClassDef OpenType entry:

  • OT Simple (otsimp) — glyph is “Simple”; set this for any “base glyph”, a spacing glyph that represents a single Unicode character
  • OT Ligature (otliga) — glyph is “Ligature”; set this for any spacing glyph that represents multiple characters
  • OT Mark (otmark) — glyph is “Mark”; set this for any nonspacing glyph that represents a combining mark character
  • OT Component (otcomp) — glyph is “Component”; set this for any glyph that is only used as a component in another glyph
  • OT None (otnone) — glyph is “Unspecified”; set this for any glyph that doesn’t fit the above criteria

You can use Classes panel > Virtual Tags to see a full list of virtual tags present in your font, and glyphs that have them.

The Layers & Masters category lists every layer name that are present in any glyph (except the Mask layers), including layer names that are present in only one or a few glyphs. This is a useful way to locate glyphs that have some odd layers that you may have forgotten about.

When you click a layer name in the Layers & Masters category, the glyph cells will switch to the corresponding glyph layers.

The Scripts section lists all Unicode scripts (writing systems) that are covered by your font’s glyph set. Each script entry is a fuzzy filter, so it also shows alternate glyphs for that script.

The Latin, Cyrillic and Greek scripts are always shown. They contain prospective subsections (such as Basic, Historic and Extended). Click the gray totals label next to a subsection to automatically add glyphs that complete that subsection. Other scripts are only shown if you have at least one glyph for a character from that script.

Custom font filters»

To quickly create your own exact font filter, select some glyphs in the Font window, press CmdC, click the Search box, press CmdV and in the dropdown list choose Text. This font filter shows just the glyphs that you’ve selected and shows up in the Search History section of the Font window sidebar. You can drag it from Search History to the Bookmarks section for later re-use.

To create and later re-use your own prospective font filter, write a custom Encoding file in a text editor. In FontLab 6.1, you can use Preferences > General > User data folder to specify your own location of the User data folder. Then, place your own Encoding files inside the Encoding subfolder of that folder.

Add Glyphs dialog»

In the Font > Add Glyphs dialog that lets you add glyphs for Unicode characters into your font:

  • the Scripts sidebar is divided into “Basic” and “Extended” scripts; both sections are sorted alphabetically
  • the new Ranges tab shows all Unicode ranges (blocks)
  • the new Filter field lets you search for a name of a Unicode category, script or range (depending on the active tab); only matching names will be shown in the left sidebar

Note: In the Font window, glyph cells on white background show the glyphs you have, and glyph cells on gray background show missing glyphs. In the Add Glyphs dialog box, it’s the other way around: the glyphs you have are on gray background and the glyphs you can add are on white background.

Character placeholders»

FontLab has improved use of character placeholders (gray glyphs shown for your visual reference):

  • in prospective filters in the Font window, for glyphs that do not exist in your font but that could be added
  • in the Add Glyphs dialog, for glyphs that do not exist
  • in the Glyph window, for glyphs that do not exist, when Preferences > Editing > Show missing glyph placeholders is turned on
  • in the Glyph window, for any glyphs, when View > Character placeholders is turned on

FontLab 6.1 now shows character placeholders using a bundled font derived from Noto, which includes glyphs for nearly 24,000 non-CJK Unicode characters. For characters not supported by the bundled font, it uses system fonts (like previous versions of FontLab). To use a different font, choose Preferences > Font window > Placeholder font.

List view of the Font window»

We’ve improved the List view of the Font window. To open the List view, click the List button in the Font window’s property bar (4th button from the left).

  • When you click the column headings to sort the list, an indicator of the sorting direction appears in the heading. Click again to reverse the sort.
  • The column names are more descriptive, and columns that contain values you can edit are underlined.
  • The rendering of the Show columns button (gear icon on the right) is improved.
  • If you reorder the columns in the List view by dragging the column headings, the same order is shown in the Show columns dialog.
  • The Show columns dialog has an option to colorize the background of columns that contains grouped or numerical values.
  • FontLab now remembers your changes to the column widths.
  • FontLab no longer shows entries for non-existent glyphs in the List view (they are still shown in the Table view, as empty glyph cells).

Color flags»

When you assigned a color flag (“mark”) to a glyph in earlier versions of FontLab, the flag was assigned to the current glyph layer, and to the glyph (as a fallback flag). In glyph layers with the “transparent” flag (that is, “unflagged layers”), the fallback flag was shown, but if a glyph layer had a layer flag (that is, it was a “flagged layer”), the layer flag was shown. This was confusing.

FontLab 6.1 makes a better distinction between layer flags and fallback flags. In a font with more than one layer or master:

  • To completely reassign a new color flag (to all its layers and to the fallback), in other words to replace all layer flags by the new flag:

  • Shift-click any color cell in the color flag picker

  • or click the “down” arrow in the color flag picker and then click “…”, then in the Color Flag dialog, choose a flag, turn off Keep custom layer flags and click All Layers.

  • To assign a new color flag to those layers that are unflagged or that have a flag identical to the glyph flag, and to the fallback, in other words to preserve custom layer flags:

  • Click any color cell in the color flag picker

  • or in the Color Flag dialog, choose a flag, turn on Keep custom layer flags and click All Layers.

  • To assign a new color flag to only to the current layer, in other words to preserve all other layer flags and not change the fallback flag:

  • Alt-click any color cell in the color flag picker
  • or in the Color Flag dialog, choose a flag and click Current Layer.

The fallback flag is now only used as the layer flag when you create new layers or masters in the glyph.

When FontLab 6.1 opens an older VFC or VFJ file, it will automatically update your flags so that:

  • If a glyph had a color flag in one layer and no flag in other layers, the flag will be assigned to all layers and as fallback.
  • If there are different flags for different layers of a glyph, they will be preserved as layer flags, but glyphs without a flag will get the fallback flag assigned as their layer flags.

This may sound complicated, but in reality, it’s simple:

  1. If you start a new font or open an existing VFB or a final font format, you can just use the normal “click” to assign flags to all layers at the same time. Just don’t use Alt-click and you’ll have consistent flags across all layers.
  2. If you open an older VFC or VFJ file and wish to get rid of any inconsistent flags, choose your main font master, set the Font window sorting in the property bar to Flag, and for each group of glyphs that are flagged with the same color, select them and Shift-click a color cell in the color flag picker to “reapply” the color flags while removing any custom layer flags. You only need to do this “cleanup” once, then you can just use normal clicking.

Also, you can now copy-paste color flags using Edit > Paste Special (like in FontLab Studio 5).

Append Glyphs»

With the Append Glyphs command, which is now in the Edit menu and works when you’re in the Font window, you can copy-paste glyphs between fonts without replacing existing glyphs in the destination font.

When you copy some glyphs in the Font window of one font, switch to the Font window of a second font, and use Edit > Append Glyphs, FontLab adds the copied glyphs to the second font, without replacing any existing glyphs. The glyphs will keep their names and Unicodes if possible, but if glyphs with a certain name exist in the first font, FontLab will add a numeric suffix to the names of the appended glyphs.

Remember that in FontLab, if a glyph layer has the same name as a font master in Font Info, it is assigned to that font master. The appended glyphs will retain all layers that existed in the first font, but FontLab will not automatically create new font masters in Font Info of the second font. If some layers in the appended glyphs match existing font masters by name, they will be assigned to masters. You can also create empty masters in Font Info in your second font after you’ve appended the glyphs, giving the masters the same name as the layers in the appended glyphs — then those layers will also be assigned to the new masters.

When you copy some contours in the Glyph window of one font, switch to the Font window of a second font, and use Append Glyphs, FontLab creates a new glyph named glyph (with an optional numeric suffix if such glyph already exists) in the second font, and then pastes the clipboard contents into this new glyph.

Layers and Variation»

When you switch layers through Glyph > Previous/Next Layer or Alt, / Alt., FontLab skips any/all mask and service layers.

Matchmaker tool»

We’ve improved the Matchmaker tool (Tools > Tools > Matchmaker) which you can use to make your masters interpolate better.

When you turn on the Show intermediates toggle, Matchmaker will show not just the masters but also a number of intermediate interpolation steps. You can change the number of steps (up to 32), and change the opacity with which the intermediate steps are drawn.

The intermediate steps help you see how your interpolation works. The steps do not correspond to your font’s instances, because Matchmaker does not use the masters’ axis locations. Instead, it orders all masters in the same sequence as your Layers & Masters panel and shows the interpolation across one “ad hoc” axis. You can change the masters order by drag-and-drop in Font Info > Masters.

Note: Currently, Glyph > Match Masters and the Matchmaker Match masters operations decompose any composite glyph. You should use these operations only in simple contour glyphs.

Keep in mind that the Sort contours and start nodes and Check masters geometry toggles in Font Info > Axes and in the Layers & Masters panel influence the way the Match masters operations work.

Kink detection in Font Audit»

FontLab 6.1 has a new Kink in variation FontAudit test that checks if interpolated instances will have a visible “kink.” Specifically, if you have a smooth node in all matching masters, FontAudit will show the “Kink in variation” problem if the proportions of the handles across masters differ by more than 5%, and if the angles of the handles differ by more than 3°. In those cases, even if the nodes are smooth in the masters, they will form slight corners (“kinks”) in the interpolated instances.

To see FontAudit tests, choose View > Show > FontAudit. You may also want to open Window > Panels > FontAudit and in the panel’s options, make sure the Kink in variation test is turned on.

To spot how the kinks occur, open Window > Panels > Preview and in its sidebar, set Outline to Thin and turn on Show nodes. Then explore your design space using the map or the sliders in the Variations panel, and watch how the green round smooth nodes in the Preview panel sometimes turn into red square corner nodes. You may also switch to Text tool in the Glyph window and navigate the design space in the Variations panel.

Unlike other FontAudit tests, “Kink in variation” does not have a “fix” function. You need to reconfigure the nodes yourself to avoid the kinks.

Hinting and Smart Rounding»

When generating or exporting instances as static fonts, FontLab uses the “PostScript” Hints defined in the font’s main master. Use the blue circle in Font Info > Masters to decide which master is your main master.

If have hints in your main master’s glyphs (that you’ve added via Tools > Autohint or Tools > Add (…) Hint), and if you turn on Preferences > Variation > Smart rounding, FontLab will use the hints to regularize stem thicknesses in instances that you export via File > Export Font As… > Instances tab or generate via Font > Generate Instance.

Smart rounding eliminates “off by one” rounding errors that are inherent to any interpolation. If any glyphs had equal stems in PS-hinted masters, they will have equal stems in any instance.

Smart rounding works even if you export instances as OpenType TT (.ttf) static fonts, but works only if “PostScript” hints exist in your main master. If you don’t have hints in your source font, or if you only have TrueType Hinting (TTH) commands, and you export instances into final fonts, FontLab will first interpolate the instances (without smart rounding) and will only then autohint unhinted glyphs if needed.

Note: Smart rounding has no influence on the export of OpenType Variation fonts.

Custom Family name for predefined instances»

You can now expand the lower section of Font Info > Instances using the expansion triangle. The expanded section reveals additional properties of the instances that will be used when you export instances as static fonts (those properties will be ignored when you export an OpenType Variations font).

In addition to the Style group and Style link entries (that existed there before), the section now has a new field Family Name. You can use it to set a different Family name (typographic, or “preferred” family name) for any instance. If the field is empty, it shows the font’s Family name specified in the Names section. You can enter another Family name for some instances, which allows you to divide your exported instances into multiple families.

Other Variation improvements»

  • The Generate Instance dialog box now has an Add Instance button. This adds a new instance to the list of predefined instances using the current coordinates specified in the Variations panel.

  • The bundled fontTools library is now version 3.29.0 instead of 3.24.3, which brings a number of improvements to export of variable fonts.

Merging layers (color fonts)»

When you click the Merge Visible Layers button in the bottom-right of the Layers and Masters panel, all layers which are set to “visible” using the eye icon in the panel are merged into one layer, that is, all elements, contours etc. of all visible layers are placed on top of each other in one layer.

This is particularly useful when you design color fonts. You can define each layer as a font master in Font Info (and make the masters non-variable by turning off the AAA icons in Font Info > Masters). Then, you can export each master into any font format via Font > Export Fonts As…, choosing the Masters tab. But afterwards, you can merge the visible layers and export the font as a series of static color font (in SVG, COLR, CBDT and sbix variants).

The “Merge Visible Layers” operation now works better:

  • When you click the Merge Visible Layers button, a popup will ask you which glyphs should be merged.
  • The layer order after merging reflects the order in the Layers and Masters panel.
  • If the current layer is a font master, the result will have the font data (glyph metrics, classes, kerning, Font Info data etc.) of the current master.
  • If the current layer is not a font master, the result will have the font data of the main master that is indicated by the blue circle in Font Info > Masters.

Metrics (Spacing)»

Nonspacing components and elements»

FontLab now lets you declare some components or elements as nonspacing. Nonspacing components/elements don’t change the advance width of the glyph, but they change the way FontLab calculates and shows sidebearing values inside the app.

Unicode has a concept of “nonspacing characters” and OpenType fonts have “nonspacing glyphs.” During typesetting, nonspacing glyphs don’t contribute to the metrics of a line. They are positioned in relation to the preceding glyphs (the spacing glyphs) but their own metrics are ignored — so in the typesetting process, nonspacing glyphs have “invisible” metrics.

FontLab’s new Nonspacing components and elements perform a similar function when you build a glyph: they are visible, they are exported into the final font, and they don’t change the advance width of the glyph in any way, but inside FontLab they are “invisible” to the metrics engine. FontLab will ignore the Nonspacing components or elements when it shows the numerical values for the width and the sidebearings, when you copy metrics across glyphs using Paste Special, or when linked metrics are calculated using metrics expressions.

FontLab has a special guide called the “Measurement Line.” When you turn on View > Measurement Line, FontLab shows sidebearing values calculated at the intersection of the Measurement Line and glyph’s “ink.” This still works the same way. When you turn the Measurement Line off, the sidebearing values are calculated based on the bounding box of the entire glyph layer. With Nonspacing elements, you can exclude certain elements or components from that bounding box for the purposes of calculating the sidebearings. Of course when you export your font into a final format, FontLab will write the correct “absolute” metrics into the font.

Example: in the “ī” (imacron) glyph, you can make the macron component Nonspacing and then set the LSB and RSB to =dotlessi. The macron component will be ignored when the final imacron sidebearings are calculated, so it’s easier to link the imacron metrics to those of dotlessi.

Using Nonspacing components and elements»

When you click a component using the Contour or Element tool in the Glyph window, or you click an element using the Element tool, a Nonspacing toggle appears in the Property bar. Use that toggle to set or unset the Nonspacing property of a component or element, or use the toggles in the Nonspacing column in the Elements panel.

When you turn on Preferences > Open Fonts > Automatically assign nonspacing property to accent components and you open any font, FontLab will assign the Nonspacing property to those components where their source glyph or its default variant (without glyph name suffix):

  • has the glyph name circumflex or caron,
  • or has the Unicode U+02B9–02BD, U+02C6–02CF, U+02EC,
  • or is in the Unicode “Nonspacing Mark” or “Modifier Symbol” category,
  • or has the OT Glyph Definition Class “Mark”

When this preference is on, FontLab will also use the above method to assign the Nonspacing property to components in Auto layers.

When you use Element > Nonspacing > Detect Nonspacing in the Font window, FontLab will use the above method to assign the Nonspacing property to components in the current layer of the selected glyphs. To do it for all layers, use Tools > Actions > Metrics > Nonspacing > Detect nonspacing.

If you use Element > Nonspacing > Detect Nonspacing in the glyph window, FontLab will use the above method to assign the Nonspacing property to the current element or to selected elements (so only the components that fit the criteria will become Nonspacing).

To unset the Nonspacing property in all masters, i.e. make all components and elements spacing, use Tools > Actions > Metrics > Nonspacing > Clear nonspacing. To do it in current layer only, use Element > Nonspacing > Clear Nonspacing.

If you do not want to use Nonspacing components or elements, use Tools > Actions > Metrics > Nonspacing > Clear nonspacing on All Masters and entire font, and turn off Preferences > Open Fonts > Automatically assign nonspacing property to accent components.

Metrics expressions (linked metrics)»

FontLab 6.1 brings several improvements to metrics expressions that you can use to link glyph metrics across different glyphs and layers. Updating linked metrics is now much faster, metrics expressions consistently take precedence over static numerical values, you can link metrics to other glyphs on other font masters, and you can use additional functions (and straight quotes) in metrics expressions.

Faster updating of linked metrics»

FontLab now updates expressions much faster, so Preferences > Spacing > Automatically update linked metrics is now on by default. If you have a font with thousands of glyphs that use linked metrics, you may want to turn it off, and instead trigger Font > Update Metrics manually.

Metrics expressions take precedence»

The interaction between expressions and explicit numerical values in the three metrics fields (left sidebearing (LSB), right sidebearing (RSB), advance width) is now more logical: expressions take precedence over simple number values; and for conflicting expressions, the last expression you entered takes precedence.

  • If you use just one expression in any of the three fields, the other fields will adjust. So if you enter i into the RSB field of “j” and change the RSB of “i”, the spacing of “j” will update correctly.
  • If you use expressions in any two of the fields, the third field will adjust. So if you link the RSB and the width of “j” to i, the LSB of “j” will adjust.
  • If you use expressions in all three fields (a bad idea, which will likely lead to future problems/inconsistencies), the last expression you enter will take precedence, and one of the others will be adjusted by adding a constant.

Additional notation and functions in metrics expressions»

Whenever you specify a glyph in a metrics expression, you can use the glyph name (e.g. aogonek) to refer to the current layer of that glyph. This works inside functions, in simple expressions and as a constant in extended expressions.

In addition, you can specify a glyph and layer using the following methods (but these won’t work as constants in extended expressions):

  • ą: a single Unicode character. Specifies the current layer of the glyph that has the Unicode codepoint of that character.
  • :Thin: the layer name after a colon, without a glyph name. Specifies a different layer of the current glyph
  • ą:Bold or aogonek:Regular: the layer name after a colon, following a character or glyph name. Specifies a different layer of that glyph

The following table lists FontLab-specific functions that you can use inside expressions. Note: glyphspec portion stands for a glyph and/or layer specified as above. New: You can now surround glyphspec and guidename with single quotes ('), or, as previously, with double quotes (").

Function Description
l() LSB of the current glyph and layer
r() RSB of the current glyph and layer
b() new: bounding box width of the current glyph and layer
w() advance width of the current glyph and layer (l()+b()+r())
lsb("glyphspec") LSB of the specified glyph and/or layer
rsb("glyphspec") RSB of the specified glyph and/or layer
width("glyphspec") advance width of the specified glyph and/or layer
g("guidename") x position of a vertical guideline named guidename within the current glyph and layer

For example, if you enter :Regular+10 or =width(':Regular') + 10 into the advance width field of the space glyph in the Bold layer, the width will be 10 units larger than the width of the same glyph’s Regular layer.

In addition, you can use all built-in functions and operators built into the muParser library that FontLab uses. This includes:

  • conditional expressions that use the syntax (condition) ? value_if_true : value_if_false. If you enter =(d>0) ? d : o into the LSB field of “q”, then its LSB will be equal to LSB of “d” if the LSB of “d” is larger than 0, but if the LSB of “d” is 0 (which would be the case if it has no contours), the LSB of “q” will be equal to LSB of “o”.
  • statistical expressions such as =max(i, w, m) or =avg(width(':Thin'), width(':Bold'))

Other improvements in linked metrics»

  • Metrics resulting from expressions are now always rounded to integers. For example, when H has the width 100, and I has the width expression = H / 3, it results in 33, and when K has the width expression = I * 2, it results in 66. Inside expressions, fractional values are still used, so an expression like = H / 3 + 0.18 will result in 34.

  • When you use an expression in a metrics field of a glyph and then manually adjust that glyph’s metrics (by using Ctrl or Alt with the arrow keys, or by dragging the spacing controls), your adjustment modifies the expression (by adding or subtracting the value). So when you enter i into the RSB field of “j” and then drag the RSB control of “j” by 10 units to the right, the RSB field will have the expression i+10. Previously, any manual edits caused the expression to be replaced by an explicit numerical value.

X-Ray view in Preview panel»

The Preview panel now has a new view filter called X-Ray. The “X-Ray” view offers you a “bird’s eye” view on your text. It allows you to see the visual rhythm of your text more clearly, so stems and counters are immediately visible. X-Ray can help you to achieve more balanced spacing and kerning.

To use X-Ray, click the sidebar toggle in the top-right corner of the Preview panel, in the Content dropdown, choose Current (to see the same text as is shown in the current Glyph window), Custom (to type in your own text) or any other entry except the waterfalls.

Now click the Filter > X-Ray view button in the sidebar, and instead of the text rendered with your actual glyphs, you’ll see the “X-Ray” rendering of your text. What looks a bit like grayscale barcodes is a one-dimensional projection of the visual density (grayness or “typographic color”) of the text (your glyphs) along the X-direction.

Imagine a tiny machine that slides at the bottom of your glyphs along your text in the X-direction, and emits a pixel-sized ray that gets captured by a tiny one-pixel camera at the top of your glyphs. The more “obstacles” (“ink”) the ray has met while traveling from bottom to top, the darker the image will be at that point. FontLab then shows you the “X-Ray” image by stretching the captured pixels to the font’s x-height. So whenever the X-Ray bar is very dark, there is a vertical stem, if it’s white, there is whitespace, when it’s very light, there is a counter. Glyphs like = or are uniform gray, but = is darker than .

For italic fonts, FontLab shows upright X-Ray bars based on glyphs backslanted using the font’s italic angle. When glyph boxes overlap (via Kerning or through calligraphic connections), the X-Ray will be darker. If the Outline dropdown in the Preview panel’s sidebar is set to None, only the X-Ray preview is shown, but you can choose to show the outline of the original glyphs (in three thicknesses) behind the X-Ray preview. You can combine X-Ray with other Preview panel settings (Invert, Blur, Flip, Slant, Tracking, Color etc.)

Kerning»

Match Kerning»

When you work with variations, each font master in FontLab has its own kerning classes, and the kerning in each master is fully independent, so each master has its own list of pairs, some pairs are class-based, other pairs are glyph-based. This is sensible during the design stage.

When FontLab exports instances or a variable font, it needs to “match” the kerning so that it is structurally compatible in each master. In previous versions, this was done automatically during export. Now, you can perform the matching yourself, and review the results: the Match Kerning operation is now accessible in the “hamburger menu” at the bottom right of the Kerning panel.

Match Kerning first expands all class-based kerning pairs in each master. Then it replaces the kerning classes in all masters with the classes defined in the default master. you can choose which master is default using the blue circle in File > Font Info > Masters.

Once the kerning classes are identical, FontLab makes the “flat” number of kerning pairs in all font masters equal: it keeps existing kerning pairs and their values, but adds kerning pairs that exist in other masters. When a master is at the edge of the design space, the added kerning pairs get the value 0, if the master is intermediate, the pairs get the interpolated kerning value.

Finally, FontLab compresses kerning pairs into class-based kerning with exceptions, using the new kerning classes. As a result, all masters have the same number of pairs, and each pair has the same structure (class-to-class, class-to-glyph, glyph-to-class or glyph-to-glyph), but of course the kerning value of each pair is the same as in your original kerning before matching. (Some values may be zero to keep the pairs matching.)

You may use Match kerning as an audit tool — once kerning is matched, it’s easier to spot odd pairs or pairs that you may have forgotten to kern.

Remember: Before you Match kerning, your intermediate masters may omit some pairs that you have in your edge masters. When you change any of the pairs in one edge master (before Match kerning), FontLab re-interpolates the intermediate values on export. But after you Match kerning, the interpolated values are added as real pairs into your intermediate master. So after Match kerning, when you change kerning in an edge master, the values will no longer be automatically interpolated for the intermediate master—you will now have to adjust intermediate masters manually.

Other Kerning improvements»

  • The Kerning panel lists exceptions as sub-entries of their “superior” class pair. You can show and hide the exceptions in the list using the expand/collapse triangles. In 6.1, all exceptions are now shown by default, so you can easily see, select and copy all pairs.

  • Kerning no longer may have fractional values, it is always rounded to integers. When you open an older VFC that has fractional kerning, FontLab rounds your kerning values to integers.

  • The display of kerning class members in the Classes panel is now sorted by glyph index, and the “representative” glyph shown in the Glyph window when you click a class-based pair in the Kerning panel is always the one with the earliest glyph ID. Use Font > Sort Glyphs or drag-and-drop while in the Font window “Index” Filter mode to change the order of glyphs in your font and influence the representative glyph this way.

  • In the Kerning panel, CtrlAlt-click the grey rectangle next to either of the classes shown, will do the same thing as Alt-clicking the rectangle: the Glyph window will show all glyphs from the 1st class kerned against class kerned against all glyphs from the 2nd class.

TrueType Hinting»

In the TrueType Hinting tool, the popover dialog boxes TTH Stems, TTH Zones and Other TTH Settings have been improved.

All three dialogs have the Cancel button that cancels any changes you perform in the dialog, the Apply button that applies changes and does not close the dialog (but you can preview the results), and an OK that applies changes and closes the dialog. Clicking outside the dialog has the same effect as clicking OK.

TTH Stems dialog»

  • If your font has multiple masters, and you have TTH stems with the same name in several masters, you can edit the values for all masters directly in the dialog: use the expand/collapse triangle to show the values for other masters.
  • The dialog is now resizable.

TTH Zones dialog»

  • If your font has multiple masters, and you have TTH zones with the same name in several masters, you can edit the values for all masters directly in the dialog: use the expand/collapse triangle to show the values for other masters.
  • If you select a zone, the bottom section of the dialog will show a table of deltas for that zone. The columns of the table are PPMs, the rows are masters. Click any cell to apply a +8 (one pixel up) delta for the PPM and master, click again to apply a –8 (one pixel down) delta, click again to remove the delta. If you’ve set a zone delta with a different value in the Glyph window, the “n/8” delta value will be shown in the cell.
  • The dialog is now resizable.

VFJ File Format and Source Panel»

VFJ file format»

FontLab saves your fonts in its own VFC format, which is FontLab’s native, compact file format that represents all of FontLab data inside a font, including data about all glyphs, layers, all elements (simple and compound), Font Info, kerning, classes, OpenType feature definitions and so on.

FontLab also allows you to save or export your font in the FontLab JSON (.vfj) format, or VFJ. VFJ is a FontLab’s own text-based, lossless, human-readable equivalent of VFC. VFJ uses JSON (JavaScript Object Notation) to represent the font data.

When you turn on Preferences > Save Fonts > VFJ, then whenever you save your font, FontLab will save the VFC file and in the same folder it will also save the VFJ file. You can also use File > Export Font As… > FontLab JSON (.vfj) to export the VFJ into a different folder.

You can save or export VFJ files in two forms: “pretty-printed” or “compact.” The “pretty-printed” form is more human-readable, as it uses newlines and indentation, so it’s easier to see and follow the structure in a text editor. The “compact” form is smaller, but visually harder to analyze for a human. Other than that, the content of both forms is identical. When you turn on Preferences > Save Fonts > Add indentation and spaces…, FontLab will save or export VFJ in the “pretty-printed” form.

When you have saved or exported a VFJ file, you can open it in a plain-text editor such as Sublime Text or Atom, perform some changes (for example search-replace) and open the font back in FontLab, or you can use programming languages such as Python or JavaScript to modify VFJ files outside of FontLab.

Source panel»

The Source panel shows the VFJ source code of the current glyph and all its layers. While editing the entire VFJ in a text editor is handy, it may also be a bit intimidating because there is no visual link between the code and the graphical representation.

The Source panel gives you that visual link. It provides a fast, immediate access to the VFJ source of the current glyph.

To select whether you want to see the source code of the current glyph, layer or element, use the toggle at the top-left of the panel.

When you edit a glyph in the Glyph window, the Source panel updates to reflect your changes. When you turn on Preferences > Editing > Live preview, the update will be instant and immediate as you move your mouse pointer; when you turn the preference off, the panel will update once you release the mouse pointer.

When you edit source text in the Source panel, the Apply button will be enabled, which means that the data in the panel is more recent than what you see in the Glyph window. To apply the changes you have made to the code, click Apply. The Source panel will notify you if you’ve entered some code that is invalid.

To revert to back your changes before you’ve applied them (so the panel will again reflect what you see in the Glyph window), click the Revert button next to the Apply button.

Remarks»

  • In FontLab 6.1, we have updated both the VFC and the VFJ format. The VFC and VFJ files that you save in FontLab 6.1 may not open in FLVI 6.0.x.
  • We may change VFJ or VFC again in future. We intend to allow newer versions of FontLab to open older files, but probably not the other way around.
  • The Source panel currently does not give you access to data that is not “inside” any particular glyph, for example classes, kerning or Font Info. To edit that data in text form, save or export the font as VFJ and use a text editor.
  • We have not yet published a specification or documentation for the VFJ format. We intend to do so, but this is a time-consuming task since FontLab is a very complex app.
  • As with any software functionality intended for developers, keep in mind that “you need to know what you’re doing” when you use VFJ and the Source panel.

Features Panel»

Go to glyph or class at cursor»

The Features panel now has a Go to glyph or class at cursor button. When editing your features in the Features panel, you can position your text cursor inside or at:

  • a glyph name: then click the button or press CmdL, and your Font window or Glyph window will show the glyph; you can also choose Go to Glyph from the context menu
  • a class name: then click the button or press CmdL, and the Classes panel will open and will show the class; you can also choose Go to Class from the context menu

“include” statement»

FontLab 6.1 improves the support for the include statement inside your FEA feature definitions in the Features panel.

  • When you use the include statement with just a file name, for example include(filename.fea), FontLab checks the folder in which the current font is saved, if it doesn’t find the file, it checks the Features folder inside the FontLab user data folder, and if it still doesn’t find the file, it checks the Features folder inside the FontLab internal data folder.
  • When you use the include statement with a relative path, for example include(../filename.fea), FontLab uses the folder in which the font is saved as the base for the relative path.
  • You can also use the include statement with an absolute path.

Other Enhancements»

Custom FontLab user data folder location»

The FontLab user data folder is the folder where you can place Encoding files (Encoding/*.enc), recipes for Generate Glyphs and Auto layers (Data/alias.dat), Feature definitions to use with the include(filename.fea); statement (Features) or Python scripts (Scripts).

Previously, the FontLab user data folder was located in ~/Library/Application Support/FontLab/FontLab on macOS and in C:\Users\YOURNAME\AppData\Roaming\Fontlab\FontLab on Windows.

Now, you can change that location using Preferences > General > User data folder (restarting FontLab is required). If you collaborate with other FontLab users, you can point the User data folder setting to a folder that is on Dropbox, Google Drive or a network drive, so all users who have access to that folder can share the same custom encoding files or Python scripts.

Note: When you point the user data folder to a custom folder, FontLab will not automatically copy or move the contents of your default user data folder — if that is what you want, you need to copy/move the contents yourself. Autosaving is always done in the Autosave subfolder of the default user data folder.

Preferences»

  • Sections in Preferences now have icons in addition to text captions.

  • The Preferences > Glyph Window page has a new design and includes the new setting Show lengths and angles. To show lengths and angles, turn on this preference and Show coordinates for current node.

  • The Unicode-name mapping setting that allows you to choose a custom .nam file is now in Preferences > General

Color flags for fonts»

You can now set a color flag per font and master in Font Info > Names. The color flag of the current font and master appears in the Fonts panel.

Font and Glyph windows title bar»

The title bar of any FontLab window now displays FontLab: followed by:

  • if the current window or tab shows a Font window, the “font and master name” (which for single-master fonts is the Full Font Name and for fonts with multiple masters is the Family Name, then : and the current master name), then in square brackets an abbreviated path to the font file
  • if the current window or tab shows a Glyph window, the current glyph name followed by @ and the “font and master name”
  • if the current window or tab shows the Sketchboard, the word Sketchboard

Font window»

In Font window, when the glyph cell captions are set to Name, FontLab uses two built-in fonts to render the the glyph names more smartly:

  • if the glyph name is short enough to fit in the glyph cell, it is shown using a normal-width font
  • if the glyph name is too long, it is shown using a condensed font
  • if the glyph name is still too long, it is truncated in the middle using a “vertical ellipsis”

Note: The above works only if you did not choose a different font using Preferences > Font window > Caption font.

Cmd[ (Previous Glyph) and Cmd] (Next Glyph) shortcuts now work in the Font window.

Quick Help panel»

In FontLab 6.0.9, we added the Quick Help panel that you can open via Help > Quick Help panel. In 6.1.0, this context-sensitive help panel now has much more content, not just for the main tools, but also for all panels, and for all the major dialogs.

Dialog boxes»

  • In Font Info > Guides, the column widths are now adjusted to display more data, and if you change the column widths, FontLab remembers these changes.

  • The width of the left sidebar in large dialog boxes (Preferences, Font Info, Actions, Profiles, Export Font As) is adjusted to better fit the content.

  • Buttons such as Yes, No, OK, Cancel, Don’t Save in dialog boxes are now rendered more consistently. The default button is always blue.

Text frames on Sketchboard»

When you create a text frame on Sketchboard using the Text tool, and then choose Text > Frames > Clone Frame, the cloned frame is now created just to the right of the original frame.

Import Photoshop PSD/PSB files»

You can now import images in Photoshop PSD/PSB format into FontLab, using File > Import > Artwork… or via drag-and-drop. Note: FontLab cannot import PSD/PSB files that have 32-bit color depth, or use Zip compression.

TrueType Vendor ID database»

Font Info > Creator > Vendor now uses a recent version of the Microsoft Vendor ID database.

Keyboard shortcuts on Windows»

FontLab for Windows has some changed keyboard shortcuts:

  • View > Measurement Line - AltL
  • View > Show > Coordinates - CtrlShiftC

Other»

  • The built-in Unicode library ICU is now version 63.1

Bug fixes»

Generate Glyphs & Auto layers»

  • using named font guides in the extended (GlyphConstruction-compatible) syntax no longer positions relative to the negative of the font guide position.

  • When generating glyphs using extended recipes such as “= Q @ origin, 100+descender” the resulting glyph now gets the correct vertical placement. Previously, descender+100 worked but 100+descender didn’t.

  • When generating glyphs using extended recipes such as questiondown = question @ ~, ~below where below is a horizontal guide placed below the baseline e.g. at -150, the resulting glyph now gets the correct vertical placement at that guide. Previously, it was placed above the baseline at 150, i.e. the same distance to the baseline as the guide but without the minus sign.

  • For some glyphs selected in the Font window, the Generate Glyphs dialog box failed to display the glyph image and name, so the glyph could not be generated. This is now fixed. [Win-only]

Hints & Guidelines»

  • When you add thickness to a vertical guideline by Shift-dragging it from left to right, FontLab correctly sets the thickness as positive (instead of negative).

  • Tools > Add Vertical Hint produces hints with positive values (instead of negative).

  • New vertical PostScript links maintain proper thickness and position when exported to vfb and final font formats.

  • In glyphs with Auto-layer on, PostScript hints remain consistently hidden (as they should be).

  • Alt-dragging a hint now duplicates it correctly.

  • In Font Info > Guides, sorting by guide position works correctly even when there are guides with negative values.

  • While selecting nodes, handles, anchors or elements, particularly with marquee selection, hints and alignments zones sometimes became visible, even when their View options were off. This has been fixed.

  • Hinting in exported VFB files now correctly maintains links.

Glyph Editing»

  • Using the Knife tool to cut a filled, closed contour into two separate closed contours (with Ctrl key on Mac) still works even when the contour is inside a larger, closed filled contour.

  • Using the Knife tool in a specific way could crash FontLab. This is fixed now.

  • On Windows, use of arrow keys plus modifier keys to move nodes has been tweaked to provide one more option:

  • Ctrl plus the arrow keys now moves the node by 100 units (same as Cmd on Mac).

  • the move by 100 units & nudge operation is not available on Windows.(CtrlCmdAlt plus arrow key on Mac)
  • Right Alt plus the arrow keys moves by 1 & nudges the neighboring handles (same as CtrlAlt on Mac)
  • ShiftCtrlAlt (or ShiftRight Alt) plus the arrow keys moves by 10 units & nudges (same as ShiftCtrlAlt on Mac)

  • In some situations, dragging on a curve where one (or more) of the adjacent nodes was a smooth connection, could cause the opposite handle of that smooth connection to “jump” when it should have been unaffected. This has been fixed.

  • Moving two or more nodes (using the mouse) while holding down Alt no longer crashes the app.

  • While drawing with the Rapid tool, after closing a contour, switching to Pen and back no longer tries to continue drawing the same contour.

  • Fixed an issue where Remove Overlap could subtract instead of combining filled areas, when nodes on different overlapping contours have the same coordinates.

  • Remove Overlap on a rotated group of rotated element references and/or flipped elements works as expected – no “holes” are created, even with multiple overlaps.

  • When no overlaps were present, the Remove Overlap operation sometimes changed the starting point and/or the types of nodes. This is fixed now.

  • After you switch a layer, the Eraser tool now remains functional. Previously, it required switching to another tool and back.

  • Converting a PostScript curve segment to TrueType via Alt-click and the Convert to TT dialog no longer crashes.

  • The Curve Tension setting in Font Info > Master Properties > Font Dimensions correctly affects new drawings made with the Rapid tool.

  • When you draw in the Mask layer, switch to the Body layer, do Tools > Clear Mask, and then Undo the Clear, the Undo no longer fails.

Fractional Coordinates»

  • Newly created empty glyphs never get fractional advance width assigned.

  • When Round when Editing is on, you no longer get fractional coordinates when you:

  • Change advance width using spacing controls in Contour mode.

  • Move a smooth node in PostScript editing.
  • Move a TrueType node, affecting a nearby off-curve point.
  • bind sidebearings (advance width remains integer units)

Layers and Variation»

(see also Metrics and Kerning)

  • Some interpolation issues were fixed by updating the included fontTools code to 3.29.0.

  • Renaming an axis in FontInfo updates the info for masters and axes in the Variations panel properly now.

  • Switching masters in Kerning mode doesn’t bring back an old kerning pair previously replaced in Text mode.

  • Paste Special can paste sidebearings across layers, after using Copy Layer

  • The Center Layer action avoids changing the advance width. (Unlike before, it may leave sidebearings with a one-unit difference instead.)

  • When working with multiple masters, a second Copy Layer command sometimes appeared sometimes in the Font window context dropdown menu. This is fixed.

  • In the Layers & Masters panel, some actions produce a “scope popup” menu, that asks if you want to perform the change on: Glyph, Selected Glyphs, All Glyphs or Font Master. Previously, this applied to renaming a layer, removing a layer, and adding a layer. Now this also applies to:

  • Duplicate layer

  • Merge visible layers

  • Merge Visible Layers can be Undone.

  • Pressing Enter when renaming a layer in the Layers & Masters panel doesn’t open duplicate pop-up dialogs.

  • When switching layers, the color flag indicator in the property bar (of the Font Window or Glyph Window)is correctly updated for the current layer.

Classes, Metrics and Kerning»

  • Tools > Actions > Metrics > Tracking now affects both sides of advance width proportionally, instead of just the right sidebearing. For example, if you add 20 units with tracking, it adds 10 to each side instead of 20 to the right sidebearing.

  • The color indicator for negative kerning (visible in Kerning mode) is using green again, instead of orange (to differentiate from positive kerning, which uses orange). #2842

  • Classes Panel:

  • In the Classes panel, pressing Enter after editing a class definition no longer jumps to another class in the list.

  • A crash that could occur when adding a new kerning class in the Classes panel was fixed.
  • Removing a kerning class in the Classes panel could cause some unrelated kerning pairs to disappear from the Kerning panel. This is now fixed.

  • Kerning Panel list table scrolling and sorting:

  • Kerning panel tries to keep the selected pairs visible in the list when the list sorting changes or masters are switched.

  • selected sort key is maintained when switching to another master or font.

  • Metrics Panel list table scrolling and sorting:

  • highlights the correct glyph, even when carriage returns (\n) are used in the text string.

  • scrolling to the current glyph, when the sort order is changed, is improved.
  • selected sort key is maintained when switching to another master or font.

  • Linked metrics:

  • Undoing changes to linked metrics in a variable font doesn’t crash.

  • If Preferences > Spacing > Automatically update linked metrics is on, FontLab now correctly updates metrics linked across masters/layers (for example, when linking from one master to another in a variable font).
  • If you link glyph metrics across masters and then Undo those changes and make more changes, FontLab no longer occasionally gets confused about which layer is current, for some of the glyphs in a string.
  • When linked metrics are changed to a regular unlinked numeric value, that number is now saved and read correctly to/from VFC.

  • Glyph metrics values calculated using expressions are now positioned better in the columns of the Metrics panel.

  • When you switch pairs in the Kerning panel, FontLab correctly syncs the kerning pair shown in the Property bar of the Glyph window .

  • The Compress to Class Kerning operation (in the Kerning panel hamburger menu) correctly compresses flat kerning to class kerning again. It was broken a few builds ago.

  • Flattening large amounts of class kerning to kerning pairs (thousands+) could be very slow. If there were tens of thousands of pairs, it could cause a crash. Performance has been dramatically improved, and FontLab can flatten kerning even if it becomes 360,000+ kerning pairs. (Not that having that much flat kerning is recommended.)

  • When the Glyph window is in Kerning mode and you are in a master and you have a kerning pair active, and then you switch to another master using the Layers and Masters panel, the kerning pair widget in the property bar now gets updated to reflect the master change.

  • When you type in some text in the Glyph window, switch to Kerning mode and then switch masters, the text no longer gets overwritten by just the kerning pair.

  • When a font already contains kerning classes, Generate kerning classes does not create duplicate classes.

Components and Elements»

  • Font > Detect Element References no longer crashes

  • Glyph > Flatten Glyph can be Undone.

  • Element deletion of some particular elements no longer crashes

  • Elements are no longer subtracting overlapping areas when you export a font as OTF; the automatic Remove Overlap operation at export time works correctly.

  • Element > Separate to elements works as expected, even when one of multiple contours within an element is selected.

  • Pasting an element within a group of elements now correctly creates a new element in the group (instead of incorrectly creating a reference).

  • Moving an element with arrow keys can be Undone.

  • When you copy-paste an element with filters (such as smart corners) applied, the pasted element now maintains the same filters.

  • Transform of multiple selected elements/components in the Elements panel’s References map is now undoable.

Open, Save and Export»

  • In Masters export mode, or when exporting into a variable format (DesignSpace+UFO, variable fonts), FontLab now uses the names of masters when building the filenames.

  • When you choose File > Save As and then click Cancel, the Save operation was canceled dialog no longer appears. #2754

  • When you open a font in a 3rd-party format and then immediately export as VFJ, an unnecessary Save As dialog no longer appears.

  • When importing an OpenType font and decompiling its OpenType features, FontLab could make an error when a lookup was used as context for another lookup, within a substitution, making it no longer contextual. Now any lookup which is a reference for another contextual lookup is written to the Prefix section.

  • If the preference Autosave opened fonts every xx minutes is turned OFF, FontLab no longer auto-saves. Previously, it auto-saved regardless of this preference.

  • Opening a TTF or OTF font with empty source coverage in a ligature lookup no longer crashes.

  • Some VFB files that previously could open in 5 but crashed, now open correctly.

  • Hinting in exported VFB files now maintains correct links and PostScript hints.

  • When there are missing required glyphs while exporting to the OpenType TT format, FontLab automatically adds them, and does not mis-encode the remaining glyphs.

  • Crash on reading OpenType features from particular TTF fonts was fixed (Win-64 only).

  • Links remain links (instead of getting converted to hints) when you export to VFB.

User Interface»

  • When docked to windows, Panels resize correctly when the windows are resized.

  • The Windows BkSp key deletes to the left in Text mode, instead of to the right [Windows only bug]

  • Selecting classes or pairs and then selecting glyph cells in the Font window changes the Copy Classes and Copy Pairs to Copy Glyphs command correctly now.

  • Adjusted how FontLab shades selected glyphs in the font window, to avoid some color combinations that made the glyph caption unreadable (for example, white text on a yellow header area).

  • When you delete a node name, the Glyph window is correctly updated and does not keep showing the name.

  • Keyboard shortcuts for Contour > Harmonize (Ctrl+Shift+H) and Contour > Clean Up (Ctrl+Shift+C) are properly shown in menu (Contour > Harmonize is also a new shortcut).

  • When a distance is zero (like the x distance between two vertically-aligned nodes) it shows as zero instead of blank in the property bar.

  • The shortcut for Element > Make Power Brush was changed to ShiftCtrlB on macOS (instead of mistakenly assigned ShiftB, which conflicted with the regular B shortcut). NOTE: This is Mac only; there is no shortcut for this command on Windows, as ShiftCmdB on Mac and ShiftCtrlB on Windows are in use for “Unlink Corners.” However, the command is available on a menu, and you can remap any menu item to any available command using Tools > Commands.

  • Fixed assorted tooltips in Font Info.

  • Crash when typing using the Text tool in a multi-layer font is fixed

Font Window»

  • The “Append Glyphs” operation, whether invoked by Font > Append Glyphs or by contextual (right-click) menu, now also works within the same font (instead of only between fonts).

  • Double-click a glyph name in the Metrics panel changes the active glyph in the Font window.

  • On Windows only, in the Font Window, the underline on text that indicated a pop-down menu was much too close to the text, making it hard to see and making the text harder to read. This is fixed.

  • List View

  • the customization icon (gear on right) is no longer covered by the vertical scroll bar.

  • no crash after repeated edits of the same value.
  • after a value is changed, the Font window does not scroll. The exception is when you edit values in the column which is the sort column: FontLab will rebuild the row ordering after the value is changed, to update the sorting.

Preview Panel»

  • Compiling features (in the Features panel) now triggers a refresh of the Preview panel.

  • The Preview panel now contains two strings of text: one for typing your custom text, and a second one showing glyph names after processing the text. This is useful when previewing OpenType substitution (GSUB) features.

  • In the Preview panel, the context-click (right-click, Ctrl-click) “Export PDF…” option now works.

  • The range of possible predefined text sizes in the Preview panel was extended. Plus, hold the Alt key while scrolling your mouse wheel to change text size.

TrueType Hinting»

  • When you’re in the TrueType Hinting tool, you can no longer click guides, PS hints or zones even if they’re visible.

  • Inside the Sample texts control, CmdC for Copy and CmdX for Cut work properly now.

Features Panel»

  • The Features panel doesn’t jump to the first line of the feature code after compiling (the cursor stays in place).
  • When compiling features in the Features panel, FontLab no longer shows spurious error message from previous feature compilation attempts.

Sketchboard»

  • FontLab no longer sometimes crashes when a block of text (using text tool in a Glyph Window or in the Sketchboard) has its size increased or decreased repeatedly.

  • The Sketchboard always gets the focus when the application starts and the Welcome screen is not shown. This is now unaffected by toolbar settings and ruler visibility.

  • On the Sketchboard, multiple text boxes can be selected using marquee selection with the Contour tool. Each selected text box now has a frame around it, so you can tell which are selected.

  • The Text tool no longer uses the Auto Preview mode on the Sketchboard, so the text cursor doesn’t “time out” and disappear from a text boxes any more. (This fixes a problem introduced in 6.0.9.)

Other»

  • FontLab manages memory much better when dealing with demanding image files. For example, multiple very large, high-res color images on the Sketchboard, which are then chopped into many smaller images which are then each copied into layers of many separate glyphs.

  • FontLab no longer hangs when you navigate to certain glyphs that have references

  • Tools > Actions > Effects > Bold/Change Weight > Advanced now works properly on contours which already use the Smart Corners filter.

  • FontLab could crash after you open a Glyph window, type some text, undo, type again and then switch layers. This is fixed now.

  • In anchors that connect something to a base glyph (the name starts with an underscore, such as _top or _bottom), and the anchor position is determined by an expression, the expression is properly displayed in the Glyph window when the anchor has focus or is selected. Previously, the numeric position resulting from the expression was displayed instead of the underlying expression.

  • The Glyph window now always starts with glyph properly centered. Previously, for some composites the center was miscalculated.