Skip to content

New in FontLab 8: Edit & refine

Make slanted selections, keep selections as you switch masters, and store them in Selections panel. Use toolbox for hands-free Power Nudge, handle Nudge and Lever precision dragging, and for easier curve cleanup with Eraser.

Adjust curve tension numerically. Align and collapse points. Reverse contours with Fill tool. Sort contours. Paste to replace selection. Fine-tune individual ink traps and smart corners.

Selecting contours

Add node to selection on Shift-drag preference

New Preferences > Editing > Add node to selection on Shift-drag is turned off by default, so if you have one or more nodes or handles selected, and you Shift-drag a non-selected node or handle, FontLab deselects the previous selection, no matter if you hold Shift before or after you’ve held the mouse button and started dragging. To add to the previous selection, Shiftclick the point first, then Shiftdrag it.

Turn on the preference, and if you hold Shift, then hold the mouse button and start dragging the point, FontLab will add that point to the selection. To deselect the previous selection, first hold down the mouse button, then hold Shift and then start dragging.

Selecting contours with Cmd

New With the Contour tool active in FontLab 8 for Mac, if you hold Cmd and drag a marquee around some nodes or handles:

  • if the setting Preference > Editing > Activate Contour tool on Cmd hold is turned on, FontLab selects the nodes and/or handles inside the marque,
  • if the setting is turned off, FontLab selects the entire contour to which those nodes or handles belong.

Select All for components and elements

New If the Contour tool is active, Edit > Select All now selects all components in the current layer of a composite glyph. If the Element tool is active, Select All now selects all components and elements in the current glyph layer.

Switching masters now keeps the contour selection

New If you select points or segments in one glyph layer, and switch to another matching master layer, FontLab recreates the corresponding selection.

Slanted marquee selection

New If you’ve started dragging your pointer from the canvas to perform a rectangular selection, you can now hold Ctrl and continue dragging to slant the rectangular selection. Release Ctrl and continue dragging to resize the selection. Release the mouse button to complete the selection.

Store contour selections in Selections panel

Selecting particular nodes, handles or segments, especially in complex glyphs, can be tedious. New You can now use the new Selections panel to store and recreate (re-select) selections within the current glyph and all matching master layers.

Select some nodes, handles or segments, click Add on the Selections panel, optionally type the selection name, and press Enter. FontLab now stores the selection in the Selections panel for this glyph, and saves it in the VFC/VFJ.

If you navigate to another glyph, the Selections panel loads the stored selections for that glyph, if any.

If you want to re-select the same nodes, handles or segments in a given glyph, navigate to that glyph and click one of the stored selections in the panel.

If the master layers in a glyph are matching, you can re-select any stored selection in any of the matching master layers.

If you activate one of the stored selections, then in Glyph window make another selection, click the Update button in the panel to replace the store the current selection under the activated name and forget the previous stored selection. Click the Remove button to remove a stored selection from the current glyph.

Note

The Selections panel only stores the selection that you make in one glyph layer. You cannot store selections made across glyphs (if Edit Across Glyphs is turned on), or across multiple layers (if Edit Across Layers is turned on).

Editing contours

Contour tool (A key)

With the Contour tool, you can achieve different goals when you click, double-click or drag a node, handle or segment, and additional functionality is available if you hold Shift (typically aligns to horizontal or vertical), Ctrl (typically disables snapping), Alt (various alternate functionality) and, on macOS, also Cmd. Yet different functionality is accessible when you hold multiple modifier keys.

New The Contour tool now has a toolbox. If the toolbox is not visible, double-click the Contour toolbar icon. The toolbox has five toggles: Power nudge, Nudge, Harmonized drag, Slide and Lever. The first four toggles are mutually exclusive.

Power Nudge: adjust contours smartly

Power Nudge is FontLab’s unique mode of contour editing. If you select and move some nodes, FontLab automatically determines which nodes are static, so they stay in place, and which nodes become “virtual servant nodes”, so they nudge (move proportionally).

To permanently turn Power Nudge on or off, tap ShiftC or click its icon in the toolbox. To turn on Power Nudge temporarily, hold C. New Previously, Power Nudge was accessible from the Contour menu. It now is accessible in the Contour toolbox.

New It’s now easy to see if Power Nudge is turned on, and how it will affect each node. If you turn on the setting Preferences > Glyph Window > Show Power nudge status, and you turn on Power Nudge, the Glyph window shows a gray indicator on each node:

  • vertical line: the node moves (nudge) horizontally like an X-Servant node if you move other nodes
  • horizontal line: the node moves (nudge) vertically like a Y-Servant node if you move other nodes
  • rectangle: the node is static: it does not move if you move other nodes

New If you right-click a node and turn on X-Servant or Y-Servant, and then turn on Power Nudge, the explicitly declared servant nodes now behave the same way as virtual servant nodes. So if Power Nudge identifies some nodes as static, but you want them to nudge, turn on their X- or Y-Servant status. Remember: explicitly declared servant nodes nudge even if Power Nudge is off, so you may want to do Contour > Nodes > Clear Genius & Servant after you’re done with power-nudging.

Nudge: proportionally move handles as you drag nodes

In FontLab, Nudge is a way to move a node or selection so that the handles of the adjacent curve segments follow proportionally. Hold CtrlAlt and drag a node or selection to temporarily activate Nudge.

New Turn on the Nudge toggle in the toolbox to permanently activate Nudge. Now, when you drag a selection or move it with the arrow keys, the handles of curve segments adjacent to the selection follow the dragging. You don’t need to hold any modifier keys.

Harmonized drag: adjust segments as you slide a smooth node, pull handles as you move a sharp node

With the Contour tool, you can drag smooth and sharp nodes in a special “harmonized” way. Previously, harmonized dragging was only available on macOS.

If you hold CmdAlt and drag a node:

  • If the node is smooth, FontLab changes the surrounding curve segments so that they form a smooth shape, slides the node along and nudges the handles of the surrounding nodes.
  • If the node is sharp, FontLab dynamically “pulls” the surrounding handles, so that they point towards the neighboring nodes, producing a harmonized corner.

New Turn on the Harmonized drag toggle in the Contour toolbox, and drag any node without using any modifier keys: FontLab will use harmonized dragging. This now also works on Windows.

Slide: move or extend node along the segment while preserving shape

When you hold ShiftAlt and drag a node, the node “slides” along a curve: moves along the curve while the shape gets preserved. When you drag a sharp node or a start/end node beyond the curve with ShiftAlt, FontLab continues (extends) the curve smoothly.

New Turn on the Slide toggle in the Contour toolbox, and drag any node without using any modifier keys: FontLab will slide the node, and will preserve or continue the curve.

Contour lever: drag precisely

In FontLab, Contour lever is a way to move nodes or handles by a distance that is smaller than the distance of your pointer drag, so you can make precise adjustments without zooming in.

Hold Cmd Ctrl as you drag a node or handle to activate contour lever temporarily. If lever is turned on, and you drag a point for a short distance, the point moves by the fraction of the pointer movement that is specified in Preferences > Distances > Ctrl/Cmd-dragging point moves. Drag further and the change gradually matches your pointer movement. Release mouse and drag again to start precision move again.

Default value of contour lever is 6. Constant dragging speed is 1. Highest precision at short drags is 10.

New Turn on the Contour lever toggle in the toolbox to permanently activate contour lever: then any drag of nodes or handles over a short distance are high-precision, and you don’t need to hold any modifier keys.

Curve segments

Numerical adjustment of curve tension in the Node panel

New If you select one or more segments, then in the Node panel, you can use the numeric field to set the desired curve tension for the selected segments, and then click the Set proportional curve tension button. With only one segment selected, this is equivalent to the Balance operation, but if you have multiple segments selected, this sets the same tension to all segments. You can achieve the same result using the Tunni lines, but this method is faster if you know your desired tension.

New You can also enter value for relative change of the tension and use the and + buttons to decrease or increase the tension of all selected segments by that relative value.

Conversion of line to curve segments

New If you turn a line segment to a flat curve segment using Alt-click or Contour > Convert > To Curve, FontLab now puts the handles at ⅓ length of the line segment, so the resulting handles are a bit shorter than in previous versions. #6267

Nodes and handles

Spike nodes

In FontLab, you can “harmonize” a sharp node with Alt-double-click: this sets the angle of the handles around a sharp node to a reasonable value in relation to the previous and next node.

New Now, you can also convert sharp nodes into Spike nodes: select some sharp nodes and in the Node panel, click the Genius button. Then, move a Spike node, and the handles adjust automatically. FontLab shows the handles of a Spike node with a small ×. If you drag a handle of a Spike node, FontLab makes the node a simple sharp node, and you can edit the handles explicitly.

Note

This functionality and its UI is experimental.

Contour > Align Points

New Contour > Align Points is now a submenu that lists all aligning operations that were previously available only in the Transform panel.

New They are also listed in the Tools > Command & Shortcuts dialog, so you can assign custom keyboard shortcuts to them, you can press ShiftCmdP, type Left or Right and choose the command. #6222

New Select multiple anchors, but not nodes or handles, and use the Align Points commands to align them.

Contour > Align Points > Collapse

New If you select multiple nodes and choose Contour > Align Points > Collapse, FontLab moves all the selected nodes to the center of the selection, and reduces the length of the affected curve handles to 0.

Tip

Collapsing points is useful if you work with multiple masters, and one of the masters has less visual details. For example, you may have a serif axis, where in one master you have a stem and a fully-developed serif, and in the other master (the “sans” master), all nodes of the serif portion are collapsed to a single location.

Customize the distance from your pointer at which FontLab shows nodes and handles if they are hidden

If you turn off View > Show > Handles, FontLab hides all handles on curve segments. If you also turn off View > Show > Nodes, FontLab renders all nodes as tiny. If you move your pointer near a node or a handle or its control vector, FontLab highlights (shows) the node and the handles associated with the node.

New Now, with Preferences > Distance > Node highlight distance, you can change the distance from your pointer at which FontLab highlights nodes and handles. If you have complex contours with many nodes, you may set the distance lower than the default 50 to reduce the visual clutter.

This setting has no effect if both Nodes and Handles are turned on in View > Show.

Lock the outline to disable manual editing of points and contours

New If you turn on View > Lock > Outline or the Lock toggle in the Outline row of the View panel top section, a lock icon appears in the top-left corner of the Glyph window.

This means that the outlines in the font are locked for manual editing: you cannot move the nodes, handles, segments or elements in the Glyph window, and you cannot perform contour-editing operations from the Contour menu. This is useful if you want to prevent accidental modification of your contours.

If the outline is locked, you can still work with guides, anchors, hints, etc., and you can modify the contours using Tools > Actions. #6155

Contours

Quickly reverse contour direction with Fill tool

New If you activate the Fill tool (F key), you can hold Shift and click any contour to reverse its direction.

To do it quickly on one contour, hold F, then hold Shift while holding F, then hover over a contour and click it. A green outline appears with arrows that indicate the direction. Release both Shift and F to return to the previous tool.

To reverse the direction of multiple contours, tap F to activate the Fill tool permanently. Now hold Shift and click the contour to reverse its direction. Navigate to other glyphs and masters, and Shift-click again. Tap A to return to the Contour tool.

Element > Contours > Sort

New If your glyph layer (or current element) has multiple contours, you can now use the commands from the Element > Contours submenu to automatically change their internal order (sort them). #5472

Sort Vertically: sorts the contours by the top sides of their ink bounding boxes (makes the contour with the smallest topmost Y-coordinate first)

Sort Horizontally: sorts the contours by the left sides of their ink bounding boxes (makes the contour with the smallest leftmost X-coordinate first)

Note

The Elements panel shows the contours and elements in the stacking order, so the first element is at the bottom of the list of elements, and the first contour within an element is at the bottom of the list of contours. Use the buttons at the top of the Elements panel or use drag-drop to reorder contours manually.

Contour start and end nodes show contour direction

New If you have an open contour, the shape of the start and end nodes now shows the contour direction: they’re shaped slightly like an arrow, so you know which node is the “start node” and which one is the “end node”.

Nodes at Extremes

New When FontLab puts nodes at extremes (via Contour > Nodes at Extremes, or via Tools > Actions or on export), it now puts them at extremes if the existing nodes are closer to actual extremum. #6240

Paste to replace selection

If you select a series of continuous segments that belong to one contour, copy them with Edit > Copy, then go to another glyph, select one or more continuous segments and choose Edit > Paste:

  • New If the new Preferences > Editing > Contour paste replaces continuous selection is turned on, FontLab replaces the current selection with the copied contours.
  • If the preference is off, FontLab adds the copied contours as new contours in the current element, like in previous versions.

Note

This new workflow is a quick and effective way to make changes to a recurring design element, such as a serif. There are more sophisticated mechanism such as Edit > Find Outline, segment components, or Glue filter with element references — but the above workflow is very simple and intuitive if you’re only making few adjustments.

Fractional coordinates

If you work with fractional coordinates, you can use Contour > Coordinates > Apply Rounding to round all coordinates in the current layer to integer values.

New Use Contour > Round to Integers to only round coordinates of the selected nodes or handles. (TODO: In future versions, this menu item will be placed in Contour > Coordinates > Round Selection.)

Node names

In FontLab (and also in formats such as UFO) a node can have an optional name. Node names are useful if some other constructs need to refer to them.

Hidden node names

New In FontLab 8, if the name of a node starts with a period ( . ), the name is treated as “hidden”, and FontLab can ignore it when it displays other node names on the Glyph window canvas. In the Preferences > Glyph window > Node names dropdown, you can decide when the Glyph window canvas shows the node name (if that node has a name):

  • Always always shows the name for nodes that have one

  • With coordinates shows the node name if you turn on View > Show > Coordinates and the Glyph window shows the coordinates of the node

  • Never doesn’t show node names in the canvas

New This dropdown now has an extra checkbox: Show hidden names. If you turn it on, the Glyph window also shows the node names that are prefixed with . , but if you turn it on, those names won’t be shown.

Regardless of the above settings, FontLab always shows the name of the node in the Node panel and shows all node names in the Source panel.

Usage of node names

In traditional apps like FontLab Studio 5, constructs like TrueType Hinting commands referred to the index of a node in the contour, so if you added or removed nodes, your TrueType Hinting program could become invalid. In FontLab VI and newer, TrueType Hinting commands refer to node names. This makes the TTH programs more robust: it survives removing overlaps or converting from PS to TT curves, and you can use Paste Special to transfer visual TTH programs to similar glyphs, even in different fonts.

If you add TTH commands in the TrueType Hinting tool or use Tools > Actions > Hinting > TT Autohint, FontLab adds names to some nodes. New FontLab 8 now builds “hidden” node names in this case, like .av01 . FontLab 8 also adds “hidden” node names like .sk01 if you use the skin shape filter.

If you open an older VFC/VFJ file in FontLab 8 that uses TTH commands, the nodes are “visible” i.e. they don’t have the . prefix. New You can use Tools > Actions > Hinting > Reassign node names: this converts the visible node names used by TTH commands into hidden node names, and updates the TTH program. #5799

Transform panel

FontLab applies Transform panel transformations to contours or elements. If you apply the Transform panel transformation:

  • in the Glyph window to a Contour tool selection, FontLab applies the transformation to the contours, and performs rounding to integer coordinates if Font Info > Family Dimensions > Round coordinates is on.
  • in the Glyph window to an Element tool selection, FontLab applies the transformation as a live element transformation. To apply the transformation to the contours, choose Element > Expand Transformation.
  • in the Font window to a glyph layer that is not used as a component or does contain element references, FontLab applies the transformation to the contours.
  • in the Font window to a glyph layer that is a source of a component, or contains element references, FontLab applies the transformation as a live element transformation.

Vertical slant

New You can now perform vertical slant transformations in the Transform panel. To see the Vertical slant box, make the Transform panel wider.

Increased precision

New The Transform panel now accepts values at higher decimal precision, which is useful for precise slant or rotation.

Eraser tool (2)

New Eraser (2 key) tool now has a toolbox. Double-click the Eraser toolbar icon to open the toolbox. Click the icons in the toolbox or repeatedly tap the 2 key, to toggle between the Eraser sub-tools (Remove points, Lasso eraser, Simplify path), or to turn all sub-tools off.

Eraser > Remove points sub-tool

If all sub-tools of the Eraser tool are turned off:

  • Click or drag over nodes and handles to remove them, hold Shift to keep key nodes.

  • Ctrl-drag to resize the Eraser radius.

  • New Alt-click a segment to break the contour and remove the segment.

  • New Alt-click a node to break the contour and remove the two adjacent segments.

New If the Eraser > Remove points sub-tool is turned on, clicks and drags (with optional Shift), as well as Ctrl-drags, work the same way, and other modifier keys have no effect.

Eraser > Lasso eraser sub-tool

If all sub-tools of the Eraser tool are turned off, Alt-drag on canvas to “draw” a freeform selector, release the mouse button to remove all nodes inside that selector. Hold Shift to keep key nodes.

New If the Eraser > Lasso eraser sub-tool is turned on, simple dragging with optional Shift works as described above, and other modifier keys have no effect.

Eraser > Simplify path sub-tool

If all sub-tools of the Eraser tool are turned off, hold Ctrl and then click one node, then (still holding Ctrl) click another node on the same contour, and FontLab simplifies the shortest path between those two nodes.

New If the Eraser > Simplify path sub-tool is turned on, you can simplify the path between two nodes by simply clicking them one by one, and other modifier keys have no effect.

Knife tool (J key)

Use the Knife tool (J key) to add or duplicate nodes, and to slice or break contours.

New Knife tool now has a toolbox. Double-click the Knife toolbar icon to open the toolbox. Click the icons in the toolbox or repeatedly tap the J key, to toggle between the Knife sub-tools (Add nodes, Break contour, Slice contour), or to turn all sub-tools off.

Knife > Add nodes sub-tool

New If the Knife › Add nodes sub-tool is turned on or all sub-tools are turned off:

  • drag through contours: add nodes, Shift-drag: constrain adding horizontally / vertically
  • click segment: add node
  • Shift-click segment: add the closest extremum or inflection
  • click node: break contour
  • Shift-click node: duplicate

Knife > Break contour sub-tool

New If the Knife > Break contour sub-tool is turned on or if you hold Alt, you can drag through contours to add nodes and break contour at them, making open contours. Hold Shift to break horizontally / vertically.

New Once you’ve broken a contour with Knife, FontLab automatically selects one half of the broken contour. Press ShiftCmdI ShiftCtrlI to invert the selection, which often would be the other half.

Knife > Slice contour sub-tool

New If the Knife > Slice contour sub-tool is turned on of if you hold Ctrl, you can drag through contours to add nodes and slice the contour, making separate closed contours. Hold Shift to slice horizontally / vertically.

New Once you’ve sliced a contour with Knife, FontLab automatically selects one of the sliced contours.

Scissors tool (Q key), Smart Corners, and ink traps

New Scissors tool (Q key) now has a toolbox. Double-click the Scissors toolbar icon to open the toolbox. Click the icons in the toolbox or repeatedly tap the Q key, to toggle between the Scissors sub-tools (Disconnect, Loop, Ink trap), or to turn all sub-tools off.

If all sub-tools of the Scissors tool (Q) are turned off:

Click a node to unlink the node: FontLab breaks it, elongates the new end nodes slightly, and applies a Power Fill

Drag between or around two nodes, or drag around 4 nodes to make an overlap

New If the Disconnect sub-tool on the toolbox is turned on, clicks and drags work the same way, and modifier keys have no effect.

Scissors > Loop sub-tool: make looped corners

If all sub-tools of the Scissors tool (Q) are turned off, Alt-click a node to create a looped corner: FontLab unfills it if Font Info > Other Values > Unfill looped corners is turned on, and if the loop is outside the filled area.

New If the Loop sub-tool on the toolbox is turned on, simple click on a node creates a looped corner, and modifier keys have no effect.

New To create looped corners on several sharp nodes, select some segments or contours in Glyph window and choose Contour > Loop Corners.

Scissors > Ink trap sub-tool: make simple ink traps

If all sub-tools of the Scissors tool (Q) are turned off, Shift-click a node to create a simple ink trap: FontLab duplicates the node and moves the new nodes apart by the width that is currently defined the simple ink trap width field in the toolbox.

New Whenever you activate the Scissors tool, the field gets the value from Font Info > Font Dimensions > Ink trap width, but you can temporarily enter a different value that affects the simple ink traps that you create next. Use Font Info to change the width of both simple and smart ink traps permanently.

New If the Ink trap sub-tool on the toolbox is turned on, simple click on a node creates a simple ink trap, and modifier keys have no effect.

Note

Simple ink traps are created once, and you can edit each of them later by simply moving the two nodes. You can use Smart Corners to create smart ink traps.

Per-node settings for smart ink traps and smart corners

If you create a Smart Corner on a sharp node, FontLab creates a rounded corner if the smart corner control point is inside the smaller angle of the corner, and creates a smart ink trap if the control point is inside the larger angle.

  • In Font Info > Font Dimensions, you can use Corner tension to define the global tension for smart corners, and Ink trap width to define the global width for smart ink traps. These parameters apply to all smart corners and ink traps that you have in the current font master.
  • New You can now use the new Corner tension / Ink trap width field in the Node panel to override the global tension (for a smart corner) or width (for a smart ink trap). The value you enter there only applies to the selected smart corner / ink trap.

Note

If you add a smart ink trap between line segments, FontLab adds small curved segments around the ink trap. If you add a simple ink trap with the Scissors tool, FontLab only moves the duplicated nodes apart.

Joining open contours with keyboard

If you have one or more open contours and you drag one start / end node onto another, they join.

New Now, if you turn on Preferences > Editing > Join contours while moving selection with keyboard and you use the arrow keys to move a start / end node (or a selection that includes a start / end node) onto another start / end node, FontLab joins the contour.

If you turn the option off, joining only happens if you drag, but not if you use the arrow keys. #5767

Replace with Corner

New You can now replace any segment, or the gap between a start and end node of an open contour, with a corner.

If you select one segment, or the start and end node of one open contour, you can choose Contour > Replace with Segment. FontLab then removes the segment if it exists, then elongates the adjacent segments until they intersect, and then adds a sharp node at the intersection.

Alternatively, activate the Scissors tool and drag between or around two neighboring nodes that have a segment between them, or between (or around) the start and end node of an open contour.

If the elongated segments (the segments adjacent to the segment you are replacing) are line segments, FontLab removes the original nodes. If the elongated segments are curve segments, FontLab keeps the original nodes, and selects them after the operation.

Note

Replace with Corner works only between the start and end node of the same open contour, or between two neighboring nodes which are at the opposite ends of a segment, and it works only if the angle between the segments to be elongated is sufficiently large.

Default smart corner tension: 67%

New The default tension of the Smart Corner is now 67%. This tension produces smart corners in the shape of a squircle quadrant: the quarter of a superellipse close to icon shapes in macOS and iOS, and to shapes used in product design by Nokia, Android, Fiat and other companies. This shape makes a smoother visual transition between straights and curves.

Previously, the default tension was 60%. You can change the per-master global smart corner tension in Font Info > Font Dimensions > Corner tension. You can now also use the Node panel to change the tension for an individual smart corner.

Smart Corners always produce two nodes

New If you add a Smart Corner to a node and expand it, FontLab now always produces two nodes. Regardless of the radius, Smart Corners now produce matching, variable contours after expansion. #5441

If the Smart Corner radius is 0, each Smart Corner expands as two adjacent sharp nodes that have the same position, that is, are on top of each other. Previously, FontLab produced one sharp node in that case.

If the Smart Corner radius is such that two consecutive Smart Corners produce two consecutive curve segments, then, after expansion, there will be two adjacent sharp nodes between these segments, that is, a zero-length line segment. Previously, FontLab produced one smooth node there, or, at the start point, a short, non-zero line segment.

Apply smart corner in Node panel

To convert a smart corner into final contours, activate the smart corner in the Glyph window, and then:

  • either right-click the smart corner control point in the canvas and choose Apply Smart Corner
  • New or click the Apply smart corner button in the Node panel