Glyphs 3 Handbook
Glyphs 3 Handbook
OCTOBER 2021
You are reading the Glyphs Handbook from October 2021 for the
application version 3.0. Please download the latest version of this
handbook at: glyphsapp.com/learn
17 Appendix, 232
17.1 Regular Expressions, 232
1.2 COMMUNITY
Glyphs is also a vibrant community. On our website
glyphsapp.com, you will find multiple ways to engage. In the
Forum, we encourage you to ask questions and discuss issues
with other users and the developers. Find a large collection of
tutorials, screencasts, online classes and more educational
material in the Learn section. Look for workshops, conferences,
and the latest updates in News. If you are planning a workshop,
organizing a Glyphs-related event, or releasing a plug-in you
developed, we will be happy to share your contribution on
glyphsapp.com.
1.3 ISSUES
Should the application crash, submitting the crash report dialog,
that appears the next time the app starts, will enable us to
address the issue that caused the crash. If you can, please
describe steps for reliably reproducing the issue in the forum.
However, the most likely reason for a crash is a faulty interaction
with a plug-in. You can disable extensions if you hold down the
Option and Shift keys while the app starts.
An issue you encounter may already be fixed in the latest beta
version of the app. See section 3.1, ‘Updates’ (p. 13) for details.
Save the document with File → Save (Cmd-S). Name the file and
pick a folder where it is should be saved. Glyphs offers three file
A Glyphs document can be format options. See section 15.2, ‘Source Formats’ (p. 218) for
changed to a different file details or pick the default ‘Glyphs File’ for a start.
format at any time with File →
Save As… (Cmd-Shift-S).
3.1 UPDATES
Click the Default button to reset all sample strings to the default
values and delete all custom groups.
See section 4.9.2, ‘Sample Strings’ (p. 46) to find out more
about the use of sample strings.
Glyphs can stream the current Edit View to a second display such
as an iPhone, iPad, or iPod Touch. Choose Enable External
Preview and download the Glyphs Viewer app from the
App Store.¹
The Mac running Glyphs and the iOS device need to be
connected to the same network. Open the iOS app and select the
Mac with which to connect. On the selected Mac, Glyphs will ask
to confirm the connection. Tap and hold anywhere on the app to
return to its menu.
Glyphs Viewer displays the active Edit View. Pinch to zoom
with two fingers and pan around with a single finger gesture. Any
change made to the glyphs is reflected immediately on the
iOS device.
If the Glyphs Viewer app cannot find the Mac, make sure both
the Mac and the iOS device are connected to the same wireless
network. If the problem persists, restart both devices and try
again. If they still cannot connect, try using a different network,
or correct the router settings. If the Mac and the iOS device
communicate to the router with different wireless standards,
Glyphs Viewer cannot connect to the Mac. This issue can happen
if the router is set up to simultaneously use multiple modulation
standards (for example, g and n). Setting the router to either
802.11 g only or 802.11 n only may help in such cases. Once a
connection has been established, a Reset button is added to the
Sharing preferences, which resets the list of trusted devices.
See the main plug-in repository for all available fields. Only the
lists currently in use must be specified. For example, when only
distributing scripts, the plugins and modules values may
be left off.
The titles and descriptions fields can offer multiple
languages. See the package index website³ for a list of language
codes. Glyphs requests the screenshot URL with an
Accept-Language HTTP header, allowing the server to respond
with a localized screenshot.
2 github.com/schriftgestalt/glyphs-packages/blob/glyphs3/packages.plist
3 github.com/schriftgestalt/glyphs-packages
4.2.7 Aligning
Choose Path → Align Selection (Cmd-Shift-A) to quickly align all
selected points. The command aligns both nodes and handles.
Glyphs will automatically choose between horizontal and vertical
Activate the Knife tool by clicking and holding the Erase tool
and choose Knife from the menu. Alternatively, press Shift-E.
The size of the created overlap will be approximately half the first
values entered for vertical and horizontal stems in File → Font
Info → Masters (Cmd-I). Thus, the reconnected nodes should
extend comfortably into the stem (when used on counterforms
such as the B in the image above) or outside the outline, such as
the s on the left.
Opened corners are considered invisible if the triangular
overlaps are small enough in relation to the neighboring visible
outline segments. That way, opened corners can also be placed
on the outside of paths. If the overlap size goes beyond the
threshold size, they will be visible. These outwards facing open
corners are useful for editing bent terminals, as in a sans serif
lowercase s. Select a path segment and open the two nodes on
its extremities with the Open Corner command.
4.3.2 Masking
Select a path and check Mask from the Palette to subtract the
path from all shapes below it. Applying a mask is a
non-destructive action; the path can still be moved and modified.
Subtracting a circle from a
square by applying a mask to
the circle path.
4.4 ANCHORS
Anchors are special points that fulfill multiple tasks in Glyphs.
They primarily serve as a connecting pivot for automatically
aligning components, corners, caps, mark-to-base and
mark-to-mark positioning, and cursive attachment. These
anchors adhere to certain naming conventions. For more details
on these uses, see section 9.1.7, ‘Anchors’ (p. 129). When an
4.5 GUIDES
4.5.1 Magnetic Guides
When dragging a node selection across the canvas, red lines will
appear, indicating when the selection is aligned with other nodes
or a vertical metric. Deactivate magnetic guides temporarily by
holding down the Control key.
Likewise, a node or any other object being dragged will snap
to all nodes and handles on paths, as well as in components.
When moving close to a node in a component while dragging,
Glyphs will fade in small representations of the nodes inside the
component. Disable node snapping by holding down the
Control key.
Press the Tab key to quickly select the next or Shift-Tab to select
the previous guide. When a guide is selected, move it using the
arrow keys (add Shift or Command for larger increments) or drag
its knob with the mouse, just like a regular node.
Change the angle by dragging the guide anywhere outside the
knob. Enter values for its position and its angle in the Info box
(Cmd-Shift-I). Click the lock icon next to the angle in the
Info box to maintain the guide at the set angle until the angle is
unlocked again.
By default, a guide will be positioned relative to the left
sidebearing. Click in the Info box to position it relative to the
right sidebearing or to position it relative to both
sidebearings. Click to use the left sidebearing again. This can
be useful for slanted guides, especially when they are global or
frequently changing the right side.
Select a guide and click the measurement icon in the
Info box to turn the guide into a measurement guide. For more
details, see section 4.10, ‘Measuring’ (p. 47).
Tip: Use View → Show Metrics Click Name in the Info box of a selected guide to name it.
Names to label the vertical Guide names are displayed on the left end of a guide:
metrics. No guides
are needed.
The glyph name is shown centered at the top of the Info box. Its
Unicode value, if any, is shown in the top right of the box. Click
the arrow button next to the Unicode value to open it in
UnicodeChecker. If UnicodeChecker is not installed, Glyphs will
present a download link. When opening UnicodeChecker with
the arrow button for the first time, the Mac will ask for permission.
Grant it so that Glyphs can launch UnicodeChecker and set the
current Unicode value to match the one from Edit View.
1 earthlingsoft.net/UnicodeChecker
4.7.2 Panning
On a trackpad, drag two fingers to pan around Edit View. Scroll
on a mouse to pan vertically, hold down Shift to scroll
horizontally. Or, drag the scroll bars on the right and bottom
edges of the displayed canvas.
Tip: The Spotlight shortcut in Alternatively, switch to the Hand tool (shortcut H) and drag
the System Preferences may the canvas around, or simply hold down the Space bar to
need to be changed for the temporarily switch to the Hand tool. When in text mode, pressing
Cmd-Space shortcut to the Space bar would add a space to the text. Press Cmd-Space
work in Glyphs.
and subsequently release the Command key to avoid
inserting a space.
Hold down Option and choose Set Layer Color to pick a layer
color rather than a glyph color. Both glyph and layer colors will
be displayed in the Info box (View → Show Info, Cmd-Shift-I):
ampersand The glyph color is displayed on the left half, the layer color on the
right half, which corresponds to the display of label colors in
Font View. See section 7.3.5, ‘Color Label’ (p. 83) for managing
color labels in Font View.
Enter text in the text field. This text field renders a real preview of
the font using the Core Text shaping engine by Apple, just like
most other Mac apps do. Note that characters unsupported by
the font are displayed using a system fallback font.
Control-click or right-click into the text field and choose
Layout Orientation → Vertical to switch to a vertical text layout.
Also from the context menu, use the Writing Direction submenu
to control the direction of the text and the text selection.
Choose Edit → Find → Find… (Cmd-F) to search for text or
replace text in the text field. Click the magnifying glass icon to
set options for the search. Choose Insert Pattern or press
Cmd-Ctrl-Opt-P to search for patterns such as spaces or digits.
Use the pop-up menu in the top left of the window to pick the
preview font style. The field to the right controls the font size at
which the text preview is displayed. Click the pin icon to
toggle the pinned state of the window. A pinned window stays on
top of the font window, allowing to continue editing glyphs while
still keeping an eye on the text preview.
4.10 MEASURING
Glyphs offers several ways to determine coordinates and to
measure distances between points and curves.
X 377
Y 610
X 233 ΔX 89
Y 144 ΔY 55 L 104.6
See section 4.2.6, ‘Scaling & Rotating’ (p. 26) for more on the
selection Info box.
Values in the Info box can be edited by clicking the number.
Confirm a new value by pressing Return or by exiting the field.
Use the Tab key to exit the current field and edit the next value in
the Info box. Go back by pressing Shift-Tab. Pressing Escape
exits the current field without entering a different field. Use the
Up and Down arrow keys to increment or decrement the value of
a field. Hold down Shift for increments of 10.
When a component is selected, the Info box of the base letter
appears to the right. The base letter is the original glyph the
component points to. The base letter Info box displays the glyph
name, its X and Y offset, its horizontal � and vertical � scale in
percent, its slant to the right , and counterclockwise rotation
angle . The arrow button in the top right corner will insert
the original glyph in the Edit tab string to the left of the current
glyph and activate it for editing.
Toggle the display of images with View → Show Image. Images are
always displayed for empty glyphs (glyphs without paths or
components).
Image files are ignored at export unless exporting a bitmap
image font, like an Apple-style color font. See section 14.4, ‘sbix
Fonts’ (p. 208) for details.
The Info box (Cmd-Shift-I) offers controls for the image position
(X and Y) and dimensions (� width and � height) of the selected
image. Rotate the image by changing the degree figure next to
After running the three lines above, restart the Mac for the
changes to take effect.
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Webfont Preview</title>
<style>
@font-face {
5.1 DIMENSIONS
The Dimensions section does not affect the font but serves as a
notepad where the dimensions of common font features can be
written down and referenced. Enter a value by clicking a number
or an empty field (‘--’). Values are stored per master. The fields
change according to the script attributed to the glyph. It can be
changed through Edit → Info for Selection (Cmd-Shift-I).
5.4 TRANSFORMATIONS
The Transformations section transforms points, paths,
components, anchors, guides, images, and more. The following
transformations are supported:
mirror the selection horizontally or vertically ;
scale or reverse scale the selection;
rotate the selection clockwise or counterclockwise ;
slant the selection left , right , down , or up ;
align the selection left , right , to the top or bottom ,
center it vertically or horizontally ;
perform boolean operations ( union, subtraction,
intersection) on paths.
Transformations can be applied in both Font View and Edit View.
According to the selection, the transformation applies to
segments, paths, or complete glyph layers.
The buttons to the left and right of text fields perform
opposite transformations. For example, clicking undoes the
transformation caused by clicking . These opposing
transformations are not subject to rounding errors that might be
introduced by the unit grid. See section 8.5.1, ‘Grid Spacing &
5.4.2 Mirroring
The mirror buttons / reflect the selection to the other side of
the transformation origin. Horizontal mirroring reflects across
the horizontal center of the layer when a metrics point defines
the transformation origin.
Mirror with the transformation origin positioned in the metrics
point control at either half the x-height or half the cap height to
preserve overshoots. For example, mirroring an n that overshoots
the x-height will result in an u shape that overshoots the baseline.
Mirroring a corner component (see section 9.3, ‘Corner
Components’, p. 138) will turn a left corner into a right corner and
vice versa. Mirroring a glyph component upside-down will
reverse the assignment of top and bottom anchors in the original
glyph. This way, a top mark can be used as a bottom mark by
mirroring the component.
5.4.5 Aligning
The align buttons ( , , , , , ) can be used on points,
complete and partial paths, anchors, and components. Aligning is
always done relative to the bounding box of the selection.
Quickly align the selected points with Path → Align Selection
(Cmd-Shift-A). This command respects the setting for the
transformation origin. See section 4.2, ‘Editing Paths’ (p. 23) for
more details.
RoundCorner; 15; 1
The Shape Order filter lists all shapes (paths and components) of
a glyph across all layers. Paths are shown in navy blue;
components in brown. Each column lists the shapes of a master/
alternate/intermediate layer. Click and drag a shape to reorder it
within its column. Confirm the chosen shape order with OK or
revert to the original shape order with Cancel.
Columns are separated by a gray gutter if there are multiple
independent interpolations for the glyph. That might be the case
when using intermediate layers (see section 13.6, ‘Intermediate
Layers’, p. 192) or when employing a complex master setup (for
example, when condensed masters interpolate independently
from extended masters).
The Shape Order filter is useful when Path → Correct Path
Directions for all Masters (Cmd-Opt-Shift-R) does not yield the
desired master compatibility.
Filter → Extrude will create a solid shadow offset for the shape of
the glyph. The following parameters are configurable:
Offset Controls the length of the shadow in font units.
Angle The direction of the extrusion in counterclockwise
degrees from a right horizontal stretch.
Don’t Subtract By default, the original shape will be subtracted
from the extruded shape. Suppress such a subtraction by
enabling this option.
The arguments are all optional and can be written in any order. If
left out, the argument of an option will assume its default value.
For instance, for strokes, a thickness of 5 inclined at a 40° angle
and placed at every 20 units:
The Horizontal and Vertical offsets are in font units. Make Stroke
is 0 for false or 1 for true. Position is either a percentage (for
example, 0.5 for 50 %) or ‘auto’ for the Auto Stroke option. Set
Keep Compatible to ‘keep’ to enable the option or leave the
argument off to disable it. Cap Style is 1 for , 2 for , 3 for ,
4 for , and 0 or left off for . For example, for a stroke with
thickness 20 (10 units on either side) and a cap style of :
6.2.8 Transformations
The Transformations filter is split into three dialogs: Transform
Metrics, Transformations, and Interpolate with Background.
LSB and RSB set the left and right sidebearings. Prefix these
values with a + (plus), - (minus), * (asterisk, multiply), or / (forward
slash, divide) symbol to change the sidebearings relative to their
current values. Width can be prefixed by + or -. For example, to
multiply the LSB by 2 and add 15 to the RSB, use the following
filter rule:
When adding glyphs that are already in the font, they will not be
added again. Instead, a dialog is shown listing the glyphs that are
already part of the font. Choose Replace to replace the existing
glyphs with new, empty glyphs. Keep Existing ignores the
duplicate glyphs and only adds the new glyphs. Choose Cancel to
not add any new glyphs.
7.3.2 Metrics
The metric fields show the horizontal metrics (LSB, RSB,
width) or the vertical metrics (TSB, BSB, vertical origin,
vertical width) of a glyph. Click the icon in the middle to switch
between the horizontal and vertical metrics. See chapter 10,
‘Spacing & Kerning’ (p. 145) for information on metrics.
7.3.4 Exports
The Exports checkbox controls whether or not a glyph should be
included in exported font files. Disable this option for component
glyphs and any other glyphs that should not be exported. Use the
‘Remove Glyphs’ custom parameter on an instance to remove
additional glyphs for that instance only. A glyph is exported by
default unless its name starts with an underscore (‘_’).
Glyphs and glyph layers can be marked with color labels. Color
labels do not affect the exported fonts but are used to organize
glyphs during font development.
Control-click or right-click a glyph to apply one of the twelve
predefined colors. Click the cross button to remove the color
from a label. Hold down the Option key to define or clear the
color label of the current layer.
The glyph color spans across the entire glyph cell. The layer
color is drawn on the right half of the cell if a glyph color is set or
across the entire cell with a cut-out in the top left if no glyph
color is set. Filter glyphs with a particular color using smart filters.
See section 7.5.4, ‘Smart Filters’ (p. 92) for details.
7.3.6 Tags
Tags are short descriptions that can be attached to a glyph. A
glyph can have multiple tags. Edit tags in the Tags field in the
inspector located in the bottom left of the font window. Tags can
include letters, numbers, spaces, and other punctuation marks.
Only the comma character (,) is special: Typing a comma or
pressing Return will add the tag to the selected glyphs and
display it in a blue capsule shape. The Tags field shows the tags of
all selected glyphs if they have the same tags. Otherwise, the text
Multiple Values is displayed.
Control-click or right-click a glyph in Font View and choose
the Tags menu. It shows all tags used within the font. If no tags
are used in the font, then the Tags menu is not shown. Tags
included in any of the selected glyphs are marked with a
checkmark next to the tag name. A dash indicates that only
some of the selected glyphs include that tag. Select a tag from
the menu to add it to all selected glyphs.
Tags can be used to filter glyphs, including in smart filters (see
p. 92), metric scopes (see p. 108), and in OpenType feature tokens
(see p. 118).
7.3.7 Unicode
A Unicode value (or codepoint) is a unit of text typed by a user on
a keyboard or stored in a text file. The Unicode standard defines
a codepoint for most written symbols used across the globe.
Unicode values are written as ‘U+’ followed by a hexadecimal
number (digits 0–9 and A–F). For example, U+0041 is the Latin
capital letter A, U+1E900 is the Adlam capital letter Alif, and
U+061F is the Arabic question mark. The font defines which
glyph is displayed for a specific Unicode value.
Typically, one glyph has one Unicode value. In an all-caps font
without lowercase letters, the A glyph might have two Unicode
values: U+0041 and U+0061 (uppercase and lowercase Latin
letter A). This way, typing either ‘A’ or ‘a’ displays the A glyph.
Some glyphs have no Unicode values and are only accessible
1 github.com/adobe-type-tools/agl-specification
7.3.11 Case
Some scripts differentiate glyphs by case. The case of a glyph can
be uppercase, lowercase, small capital, minor, or no case.
Uppercase and lowercase are used for letters in bicameral scripts
such as Greek or Latin, but also for punctuation (for example,
question (?) is uppercase and questiondown (¿) is lowercase) and
marks (lowercase: acutecomb, uppercase: acutecomb.case).
Glyphs ending in ‘.sc’ or ‘.smcp’ are assigned the small capital
case. The minor case is used for subscript and superscript
numbers (five.sups), letters (ainferior), and punctuation
(equalinferior). All other glyphs have no case, including glyphs
from scripts without case (Arabic or CJK) and most punctuation
glyphs (for instance, comma or euro).
7.3.14 ID
In List View, the ID column sorts glyphs in glyph order. This is the
order in which glyphs are sorted in exported fonts. Change the
order by setting the sort name of glyphs or using the ‘glyphOrder’
custom parameter in File → Font Info… → Font.
7.3.15 Char
In List View, the Char column displays the Unicode character
using the system font. If a glyph has multiple Unicode values,
only the first one is displayed.
7.3.16 Note
Notes are accessible from List View in the Note column. A glyph
note can contain any text. Search for glyph notes with the search
field in Font View (see section 7.5.1, ‘Search Field’, p. 90).
7.3.17 Components
In List View, the components column shows a list of the
components used in a glyph. The components cell in List View
can be edited to add or remove components to or from a glyph.
See section 7.1.2, ‘List View’ (p. 78) for hiding and
showing columns.
7.4 BATCH-PROCESSING
Use batch-processing operations to make changes to one or
multiple glyphs at once.
The example above searches for ‘.cv’ followed by two digits and
replaces that part with ‘.ss’ followed by the same two digits. This
7.4.4 Filters
Filters can be applied to all selected glyphs from Font View. See
chapter 6, ‘Filters’ (p. 66) for details on how to apply filters.
7.4.5 Palette
Many of the controls in the Palette (Cmd-Opt-P) can be used
from Font View. Both Fit Curve and Transformations operations
can be applied to all selected glyphs. Palette sections provided
by third-party plug-ins may also allow batch editing in Font View.
Controls that do not operate on the entire glyph but only the
selected nodes (such as Fit Curve) use the selection set in
Edit View. See chapter 5, ‘Palette’ (p. 60) for details on the
individual Palette sections.
7.5.2 Categories
Select a category filter in the left sidebar to show only the glyphs
belonging to the selected category. Click the disclosure
chevron next to a category name to show its subcategories.
Select a subcategory to show only those glyphs. The number of
glyphs in a subcategory is shown next to the subcategory name.
If Glyphs can infer that some glyphs in the subcategory might be
missing, the count is replaced by a gray badge showing both
the current count and the total count of glyphs in the
subcategory. Add the missing glyphs as described in section 7.2.1,
‘Adding From the Sidebar’ (p. 79). If all glyphs have been added, a
checkmark is displayed instead of a gray badge.
When multiple categories are selected by Command-clicking,
glyphs from any of the selected categories are shown. If a
Categories entry is selected together with a Languages or Filters
entry, only glyphs that are part of both are displayed.
7.5.3 Languages
The Languages section contains script and language filters.
Expand a language filter by clicking the disclosure chevron
next to the filter name. Glyph counts, badges, and checkmarks
appear the same as in categories (see above). Command-click
script names to filter for multiple scripts at the same time, or
Command-click other filters to combine them with the selected
language filters.
Only a few scripts are shown by default in the sidebar to keep
2 glyphsapp.com/learn/custom-sidebar-entries-in-font-view
3 glyphsapp.com/learn/roll-your-own-glyph-data
"one",
"two",
"three",
005B
005D
- # bracketleft.case
- # bracketright.case
27E8, 3008
27E9, 3009
8.1 FONT
The Font tab contains information that applies to all exported
font files. Click the plus button to the right of the General
heading to add additional fields.
The Axes (see p. 106) and Custom Parameters (see p. 106) of
the Font tab are described in more detail at the end of
this section.
1 docs.microsoft.com/typography/opentype/spec/name
8.1.3 Version
The ‘Version’ field is split into a major and minor version,
separated by a period. The version of a new Glyphs file is ‘1.000’.
Click the stepper buttons to change the minor version.
See the OpenType head The major and minor versions of the font are written as the
specification² for more details. ‘fontRevision’ entry in the Header table (head) of the font.
Additionally, Glyphs derives the Version String (Name ID 5) from
the Version entry by appending its own version to the font
version before writing the version string. For example, ‘Version
1.000;FEAKit 1.0’ (FEAKit is software that Glyphs uses
internally).
Use the ‘Version String’ parameter to define a custom version
string. Note that some applications require this version string to
begin with ‘Version’ followed by the major version, a period, and
the minor version. Consult the OpenType specification for details.
8.1.4 Date
The ‘Creation Date’ field stores the creation date of the font. This
entry is used for the ‘created’ and ‘modified’ dates in the
head table.
2 docs.microsoft.com/typography/opentype/spec/head
8.1.7 Copyright
The ‘Copyright’ field stores a copyright notice for the font and
corresponds to Name ID 0. A typical copyright notice is
‘Copyright 2021 Some Name. All rights reserved.’ This field is
localizable.
8.1.9 Trademark
The ‘Trademark’ field notes the trademark holders of the font, if
any, and corresponds to Name ID 7. The trademark notice should
be based on legal advice. This field is localizable.
8.1.10 Description
The ‘Description’ field stores a description of the typeface, which
may include revision information, usage recommendations,
history, features, and other information related to the font. This
field corresponds to Name ID 10 and is localizable.
8.1.12 Axes
The Axes define design axes for interpolation and variable fonts.
Click the plus button to the right of the Axes heading to add a
new axis. An axis has a name, a four-character tag, and can be
hidden or not.
Glyphs offers a range of predefined axis names. Selecting one
of the predefined names will change the tag. Select the Hidden
checkbox to hide the axis from font users.
See chapter 13, ‘Interpolation’ (p. 184) for details on working
with axes across multiple masters and specifically section 13.2,
‘Setting up Axes’ (p. 186) for details on the usage of axes in
variable fonts.
8.2 MASTERS
A master is a set of specifically designed and configured glyph
outlines and metrics. From the masters setup in a Glyphs file,
font instances are calculated and exported as OpenType font files.
See section 8.3, ‘Exports’ (p. 110) for details.
8.2.2 General
In File → Font Info… → Masters → General, define the name of a
master and its icon. The master name is only used internally by
Glyphs and not by exported font files. Use instances (see p. 110)
to define the exported font files.
The master icon can be a glyph from the font or one of 25
predefined lowercase n glyphs in various widths or weights. Click
the master icon to choose a predefined image or write a glyph
name into the text field at the bottom of the icon picker to use
that glyph as the icon.
Click the name of a metric to edit its category, name, and scope.
The category is the metric type, and the name can be chosen
freely to identify the metric. The scope limits the metric to a
The left number field of a metric defines the offset from the
baseline. (The Italic Angle metric has one field only.) The right
number field is the size of the alignment zone and starts at the
offset of the metric. Nodes and anchors placed in alignment
zones are highlighted. See section 4.2.5, ‘Nodes in Alignment
Zones’ (p. 25) and section 4.4.1, ‘Adding, Editing, and Removing
Anchors’ (p. 35).
Alignment zones are used by the automatic hinting process,
which ensures that overshoots snap to even metric lines at small
font sizes or low screen resolutions. See section 11.1.2, ‘Alignment
Zones’ (p. 157) for details on PostScript hinting with alignment
zones. For TrueType hinting, separate zones may be configured
(see section 12.2.1, ‘TrueType Zones’, p. 165).
8.2.5 Stems
Font designs typically conform to standard stems. For example,
the capital I has a vertical stem, and the capital H has two
vertical stems and one horizontal stem. A rounded shape like the
letter O has left and right vertical stems and top and bottom
horizontal stems. Serifs and crossbars, such as in the lowercase f
and t, are also stems.
Frequently used stem widths are defined in File → Font Info… →
Masters → Stems. The autohinter uses these stem values to add
hints to vertical and horizontal stems. See section 11.2,
‘Autohinting’ (p. 159) for details on hinting with the autohinter.
For TrueType hinting, separate stems may be configured (see
section 12.2.2, ‘TrueType Stems’, p. 168).
Click the plus button located to the right of the Stems
heading to add a new stem definition. A stem can either be
8.3 EXPORTS
The Exports tab contains the static instances and variable fonts
that are created when exporting with File → Export… (Cmd-E).
Click the plus button located in the bottom left of the Exports
tab to add a new static or variable instance. Four options are
available:
Add Instance adds a new instance named ‘Regular’.
Add Instance for Each Master adds instances at the design space
locations of each master. For example, if the font has two
masters, Thin with a weight of 100 and Bold with a weight of 700,
a Thin and a Bold instance will be added with the same axis
values as the respective masters.
8.3.1 Active
The Active setting controls whether an instance is exported with
File → Export… (Cmd-E). Deactivated instances are shown with a
gray icon in the sidebar.
3 glyphsapp.com/learn/naming
4 docs.microsoft.com/typography/opentype/spec/os2
8.4 FEATURES
The Features tab manages OpenType feature code that
substitutes and positions glyphs. These features are described in
the OpenType specification for the GSUB table⁵ (glyph
substitution) and the GPOS table⁶ (glyph positioning).
Some GPOS features such as kerning, mark positioning, and
cursive attachment are primarily defined in Edit View by editing
the kerning values between glyphs and placing anchors. These
implicit features do not appear in the Feature tab. See
section 8.4.7, ‘Implicit Features’ (p. 121) for details.
5 docs.microsoft.com/typography/opentype/spec/gsub
6 docs.microsoft.com/typography/opentype/spec/gpos
7 adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html
The text field below the feature code can be used to write notes
about a prefix, class, or feature. Change the height of the notes
field by dragging the gray line above it up and down.
Click the snippets button to insert predefined code
snippets. Choose any of the snippets to insert them into the
feature code. See section 17.2, ‘Custom Feature Code Snippets’
(p. 233) for details on adding custom feature code snippets.
8.4.4 Tokens
Tokens are pieces of code that help automate the feature code.
They dynamically insert values and glyph names into feature code,
and their syntax starts with a dollar sign ($). There are three types
of tokens: number values, glyph properties, and glyph predicates.
Hold down the Option key and click a number value token to
show its computed value.
#ifdef VARIABLE
sub a by a.var;
#endif
#ifndef VARIABLE
sub a by a.static;
#endif
#ifdef VARIABLE
condition 600 < wght < 900;
sub dollar by dollar.alt;
#endif
Axis ranges are written as the axis tag bounded by a lower and
upper limit. Write a less-than sign (<) between the limit value and
the axis tag. Note that, although the less-than sign is written for
both the lower and upper limit, the lower limit actually behaves as
if a less-than-or-equal sign (≤) was used. An axis range can
specify both a lower and upper limit or only one of the two.
#ifdef VARIABLE
condition 600 < wght < 900, 70 < wdth < 90;
sub won by won.boldcondensed;
#endif
pos a b -20;
# Automatic Code
pos x y 15;
pos y z -5;
8.6 NOTES
The Notes tab in Font View stores a text note. It is not exported
and is used only for working in Glyphs. The font note
corresponds to the ‘note’ custom parameter of the font.
The text field uses syntax highlighting for Markdown. Italic
(*italic*, _italic_), bold (**bold**, __bold__), hyperlinks ([Link
Text](https://example.org) & <https://example.org>), and heading
(#, ##, ###, ####, #####, ######) formatting are supported.
9.1.3 Recipes
9.1.7 Anchors
Glyphs uses anchors for OpenType features (such as
mark-to-base positioning and cursive attachment, see section 4.4,
‘Anchors’, p. 34) and for arranging components. In many cases,
the same anchors can be used for both features and for arranging
components.
Unicode defines base characters like S (U+0053), and
combining marks like ◌̌ (U+030C). Typing a base character
followed by a combining mark will place the mark on the base
glyph using the anchors. But Unicode also contains precomposed
characters like Š (U+0160). Glyphs for these characters can be
built by using the base and mark glyphs as components.
For example, a mark component with a ‘_top’ anchor snaps
onto the ‘top’ anchor of a base component just like mark-to-base
positioning would place a mark glyph atop a base glyph. See
section 4.4.1, ‘Adding, Editing, and Removing Anchors’ (p. 35) for
general information on working with anchors.
In some situations, a component might need multiple anchors
of the same type. For example, it is common to use such
alternative ‘top’ anchors for Vietnamese diacritics. Alternative
anchors share the name of the original anchor but use an
underscore suffix for differentiation. So, there might be a ‘top’
Single Component
1 glyphsapp.com/learn/diacritics
The Layers tab connects smart properties with smart layers. The
sidebar shows all smart layers of the glyph. Select a layer and set
whether it belongs to the minimum or maximum value. If a layer
is unrelated to a property, do not check any of the two values. For
instance, for a glyph with two layers—‘Regular’ and ‘Long’—and a
‘Width’ property, check the minimum Width value for the Regular
layer and the maximum Width value for the Long layer.
A setup with multiple properties does not require a layer at all
extremes. For example, a smart glyph with two
properties—‘Width’ (range 640–1250) and ‘Height’ (range
80–360)—only requires the following three layers:
Width Height
Regular 640 80
Wide 1250 80
Tall 640 360
Note that a layer at both maximum values (Width of 1256 and
Height of 360) is not required. Glyphs infers it from the Wide and
9.6 BRUSHES
Brushes expand path segments using custom outlines. A brush
can be applied to straight and curved path segments and is most
useful when applied to open paths.
9.7.1 Setup
The Pixel tool requires a grid spacing of 2 or above. Change it in
File → Font Info… → Other → Grid Spacing. See section 8.5.1, ‘Grid
Spacing & Subdivision’ (p. 122) for details.
The Pixel tool uses the glyph named ‘pixel’ to draw pixels
when clicking and dragging in Edit View. If the glyph named
pixel is not already in the font, Glyphs will offer to add it upon a
click with the Pixel tool:
Click Add to create the pixel glyph. By default, the pixel glyph is
a square of the same size as the grid spacing.
10.1 SPACING
Spacing is the process of adjusting the sidebearings of glyphs to
achieve an even rhythm in a line of text. There are no fixed rules
for how large or small the sidebearings of a glyph should be. The
amount of spacing depends on the style of the font and the script
of the glyphs. In general, glyphs that share similar shapes share
similar sidebearing values. For example, the left sidebearing of
the Latin K is usually the same as the left sidebearing of the Latin
H, while the right sidebearing of the Latin D and the Latin O
should be the same or similar.
When the Text tool is active and View → Show Metrics
(Cmd-Shift-M) is checked, the sidebearing values and widths of
all glyphs are displayed:
10.2 KERNING
Carefully spaced glyphs should fit together well in words and
sentences. Some glyph combinations, however, need specific
adjustments to look good. Usually, glyphs with a lot of
white space (such as A and V) need to be moved closer together.
In contrast, glyphs that collide (such as f and ?) need to be moved
further apart. Kerning is the adjustment of the distance
between glyphs.
Note that left to right kerning is stored separately from right
to left kerning. When working with a font that includes glyphs of
both directions, make sure to select the correct writing direction
before kerning. See section 4.9.4, ‘Writing Direction’ (p. 47)
for details.
With the Text tool active, kerning between glyphs is
highlighted in light blue for negative kerning and yellow for
positive kerning. These colors can be changed in the Appearance
preferences (see p. 14).
Enter a search term in the search field to filter for kerning pairs
containing it. Click the search icon to configure the search
options. Choose how the search term should be applied (kerning
pair contains, is exactly, begins with, ends with, or does not
contain the term), which pairs to show (is a group or is not a
group), on which side of the pairs to search (left or right), or
whether or not to show only glyphs that are selected in Font View.
Choose Reset to reset all options back to their default.
Kerning groups are shown in blue with an at-sign (@) before
their name, while single glyphs are shown in gold. Click a column
header (Left, Value, Right) to sort by that column. Click again to
Manual kerning code can also make use of Tokens (see p. 117),
which allow the glyph positioning to be based on Number Values
of masters or the sidebearings of glyphs. See section 8.4.4,
‘Tokens’ (p. 117) for details.
11.2 AUTOHINTING
If the font-wide parameters (alignment zones and standard
stems) are correctly set, let the autohinting algorithm do its magic
by simply activating the Autohint option in the File → Export
dialog. Enforce this setting with the Autohint custom parameter.
Test the hinting in an Adobe application (see section 4.13.6,
‘Previewing in Adobe Applications’, p. 58). Write a test text and
zoom out far enough to display the letters with a few pixels only.
Then zoom in using the operating system’s Zoom function
(configurable in the Accessibility settings of the System
Preferences). If necessary, tweak the font settings or manually
hint a problematic glyph and re-export. For details on manual
hinting, see section 11.3, ‘Manual hinting’ (p. 160).
In the exported OTF file, all stem hints must have a width greater
than zero. Glyphs will automatically correct hint directions at
export to turn all stem hints positive.
The badge of a ghost hint only displays the position and its
orientation. An upward arrow ↑ a top ghost hint; a downward
arrow ↓ indicates a bottom ghost hint. Attach it to a point by
dragging the blue circle onto a node. Set the vertical orientation
of a ghost hint by selecting it and clicking the upward or
downward icon in the Info box (View → Show Info,
Cmd-Shift-I).
12.1 AUTOHINTING
The technical details of TT hinting are too complex to mix
manual and automatic hints. Therefore, checking the Autohint
option when exporting a TrueType flavor font will ignore any
manual TT hints in the Glyphs file:
1 freetype.org/ttfautohint
Size The size defines the value of the flattening zone during the
overshoot suppression. A top zone has a positive size; a bottom
zone has a negative size. Top zones are meant for the top vertical
extremes of shapes, like the x-height, shoulder height, cap height,
or nabira height. Bottom zones are meant for catching the
bottom ends of shapes, like the baseline, the descender, or the
bottoms of small figures such as numerators, inferiors, and
superiors.
Ensure that the area defined by the position and the size
Filter (This property only applies to the main master.) Click the
globe button to limit the zone to a subset of glyphs. The
subset is defined like a smart filter. See section 7.5.4, ‘Smart
Filters’ (p. 92) for details. The globe icon in the stems list is
filled with the accent color if any filters are set.
Name The name labels the stem. It can be arbitrary text, but it
is a good idea to use descriptive names.
Filter (This property only applies to the main master.) Click the
globe button to limit the zone to a subset of glyphs. This
property works like the Filter of TT zones (see p. 167).
Change the pixel size by entering a new value or use the stepper
buttons to increase or decrease the size. With the pixel size field
active, press the arrow keys Up and Down to change the value.
When the field is not active, press the Period (.) or Plus (+) key to
increase the size and the Comma (,) or Minus (-) keys to
decrease it.
Open the address in a web browser to see the preview page. The
Mac does not use TT hinting, so open the page on a virtualized
12.4 INSTRUCTIONS
Add TrueType instructions by selecting nodes and choosing one
of the available instruction types from the context menu. Click
and drag to reposition instructions.
Choose Autohint from the context menu to add some
instructions automatically. This action will add Snap and Stem
hints, but not Shift, Interpolate, or Delta hints. The result can be
useful as a starting point for manual TT hinting. Some glyphs
cannot be autohinted. In that case, the error message ‘There was
a problem compiling TrueType instructions’ appears. Autohint
the current glyph by pressing Cmd-Ctrl-Opt-Shift-I (configure
the shortcut in the Commands section in the app preferences, see
p. 20). This shortcut also works when multiple glyphs are selected
in Edit View.
Remove all glyph-level hints from the current glyph by
choosing Remove Hints from the context menu.
Round snaps the target point to the nearest pixel edge. Choose
this mode when adding a Stem hint on top of the target point.
Round up snaps the target point to the next pixel edge above.
Round down snaps the target point to the next pixel
edge below.
No rounding (default) keeps the interpolated position and
does not round it. This is typically the best mode for Interpolate
instructions.
Round only in GDI ClearType will snap to the nearest pixel
edge for the GDI ClearType rendering intent; the others should
remain unaffected.
See the TrueType Reference Control Value Program Three custom parameters are added to
Manual² for details. the masters when opening a hinted TrueType font: ‘CVT Table’,
‘prep Table Assembly’, and ‘fpgm Table Assembly’. These
parameters contain the assembly code for the existing TT hinting
and are rarely edited manually. Instead, they are used not to lose
the existing hinting instructions on export. They correspond to
the cvt, prep, and fpgm tables in the font.
gasp Table Add this parameter in either the Font or Exports tab
in the Font Info window (Cmd-I). The Font value is used for all
instances where the parameter is not set. This parameter
configures the grid-fitting and scan-conversion procedure for
TrueType fonts. It controls the two PPM thresholds at which the
recommended on-screen rendering behavior changes. The gasp
table contains rendering recommendations for both a traditional
Grayscale and a ClearType subpixel renderer. However, keep in
mind that a renderer may ignore the data stored therein. The
default threshold sizes are 8 and 20 PPM. Because there are two
thresholds, three ranges can be differentiated:
Source for quoted parts: Now No Hinting & Symmetric: Until the first threshold size, no
Read this: The Microsoft grid-fitting is applied, and text is rendered with antialiasing
Cleartype Font Collection, wherever possible. ‘At very small sizes, the best appearance on
Microsoft 2004, p. 14. grayscale devices can usually be achieved by rendering the
glyphs in grayscale without using hints.’
Hinting & Asymmetric: Between the two threshold sizes, the
renderer is recommended to apply grid-fitting and suppress
grayscale. ‘At intermediate sizes, hinting and monochrome
rendering will usually produce the best appearance.’ In ClearType,
the matter is handled asymmetrically: vertical grid-fitting is
applied, while horizontally, subpixel rendering is used.
2 developer.apple.com/fonts/TrueType-Reference-Manual/RM03/Chap3.html
serif
italic angle
weight
1
2
#ifdef VARIABLE
condition 80 < wght;
sub dollar by dollar.alt;
#endif
This replaces the dollar with the dollar.alt glyph for a weight of
80 or greater.
When exporting to both variable fonts and static instances,
consider using the glyph replacement described in section 13.7.2,
‘Replacing Glyphs at Export’ (p. 195) to mimic the conditional
substitutions in static instances.
3 docs.microsoft.com/typography/opentype/spec/dvaraxistag_wght
4 docs.microsoft.com/typography/opentype/spec/dvaraxistag_ital
5 docs.microsoft.com/typography/opentype/spec/dvaraxistag_opsz
6 docs.microsoft.com/typography/opentype/spec/dvaraxistag_slnt
7 docs.microsoft.com/typography/opentype/spec/dvaraxistag_wdth
44
44 67 87 95 109 130 internal coordinates
The internal coordinates are the values set in File → Font Info… →
Masters → Axes Coordinates. The external coordinates are the
result of axis mapping; they are used for interpolation.
Layered color fonts are separate fonts that are stacked on top of
each other. For such a font to work properly, the software
environment in which it is used must support the stacking of
text layers.
Each color gets its own master. Contrary to most other fonts, the
masters of a layered color font are not interpolated. This means
that the masters of a layered color font are not required to be
compatible for interpolation. Signal this to Glyphs by adding the
‘Enforce Compatibility Check’ custom parameter in the Font tab
and unchecking it:
With this parameter disabled, add masters for each color layer.
Give each master a descriptive name like ‘Front’, ‘Inside Light’,
‘Inside Shadow’, or ‘Outer Shadow’. In the Axes Coordinates
Pro Tip: Additionally, add a
section, set a different numeric Color value for each master; for
‘Master Color Dark’ custom example, 1 for the first master and 2 for the second.
parameter to use a different Add a ‘Master Color’ custom parameter to each master to
color for the dark system define its preview color. Note that custom parameters can also
appearance. be added when multiple masters are selected. This color is only
14.2.3 Exporting
Layered color fonts are exported as separate font files, one for
each color layer. These color layers use the instances as described
in section 14.2.1, ‘Initial Setup’ (p. 204).
Glyphs can also convert a layered color font to an SVG color
font that includes all color layers in a single font file. For that, add
a new instance in File → Font Info… → Exports and add the ‘Color
Layers to SVG’ custom parameter. Then, add the ‘Export SVG
Table’ custom parameter to the same instance for the SVG data
to be included in the export. Ensure that the checkboxes of both
custom parameters are checked.
14.3.4 Exporting
Exported instances of CPAL/COLR fonts use the first color
palette by default. Add the ‘Color Palette for CPAL’ custom
parameter to an instance in File → Font Info… → Exports to choose
a different color palette for that instance. Note that the color
palette IDs start at 0 for the first palette. Add additional palettes
as described in section 14.3.1, ‘Defining the Color Palette’ (p. 206).
Remove all colors from an instance by adding an ‘Export
COLR Table’ custom parameter and unchecking it. This will use
just the fallback layer and discard the CPAL and COLR tables.
Glyphs can also convert a CPAL/COLR font to an SVG color
font by adding the following custom parameters in File → Font
Info… → Exports:
Check the ‘Color Layers to SVG’ custom parameter.
Set ‘Color Palette for SVG’ to the number of the palette that
should be used for the conversion. Palettes are numbered
starting at ‘0’. The palette number is written in the column header
in the ‘Color Palettes’ custom parameter (see p. 206).
Check the ‘Export SVG Table’ custom parameter for the SVG data
to be included in the export.
See the TrueType Reference Apple-style color fonts include a sbix table (Standard Bitmap
Manual¹ for details on sbix Graphics) containing bitmap data of various resolutions. Multiple
color fonts. images of various sizes may be assigned to each glyph. Thus, the
device displaying it can pick the most appropriate resolution.
1 developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6sbix.html
These tiny paths can also have their nodes on the same single
point, thus hiding the path. The red node background that
Glyphs shows for overlapping nodes can be ignored in this case.
This bounding box, highlighted in green in the image above, is
used by Glyphs to place the images on their color layers.
Color layers for the sbix format are named ‘iColor’ layers. Add
iColor layers by clicking the plus button in the Layers palette
(Window → Palette, Cmd-Opt-P) and choosing iColor from the
context menu on the layer. The name of an iColor layer includes
its size, for example, ‘iColor 512’ or ‘iColor 24’.
Double-click a layer entry in the Layers palette to change its
size. Scale images by changing this iColor pixel size. Images
appear smaller if the entered pixel size is larger than the image,
and they appear larger if the entered size is smaller than
14.4.4 Exporting
Glyphs includes the sbix table in exported font files if iColor
layers are present in the font. Discard the sbix table by adding an
‘Export sbix Table’ custom parameter to an instance and
unchecking it.
Glyphs can convert sbix color fonts to SVG color fonts (see
p. 210). This allows the color font to be used in software that
supports SVG color fonts but not sbix fonts. Add the ‘SBIX to
SVG’ custom parameter to an instance and set its value to the
desired pixel size at which Glyphs will convert the sbix image
data to SVG data. For example, setting this parameter to 128 uses
the iColor layers sized at 128 pixels, if any, otherwise the smallest
iColor layers above 128, and if there are none at or above that
size, the next largest available iColor layers.
Uncheck ‘Export sbix Table’ and set the ‘SBIX to SVG’
parameter to export an SVG-only color font.
There used to be an SVG The Scalable Vector Graphics (SVG) image format can contain
format for fonts, not images. both vector and bitmap data. An SVG color font uses SVG files to
That SVG format is now display glyphs. SVG color fonts are also referred to as
obsolete. The SVG color fonts OpenType-SVG or SVG-in-OpenType. Glyphs provides three
in this chapter contain SVG
methods for creating SVG color fonts:
images for their glyphs but are
still OpenType fonts. convert a layered color font, CPAL/COLR font, or sbix
font to SVG;
use SVG files created in a graphic design app;
create the SVG images inside Glyphs.
Stroke
Enter a stroke width in the text field next to the Stroke heading.
The stroke width is measured in font units. For example, entering
‘12’ will add a 12 unit wide stroke along the path. An empty
stroke width field assumes a value of 0. By default, the stroke is
centered on the path. Choose the left or right stroke
alignment to move the stroke inside or outside the path.
Change the stroke color by clicking the color swatch
button. Click the minus button to remove the stroke by setting
the stroke width to 0 and the color to transparent.
Fill
Gradient
The OTF tab exports static OpenType fonts. This export option
uses the font instances (see p. 189) or, if none are configured, a
default instance based on the first master.
Outline Flavor
File Format
Options
Export Destination
The UFO tab exports the selected masters as UFO (Unified Font
Object) files. Select one or multiple masters to be exported to
UFO by Command-clicking entries in the masters list. Select a
range of masters by Shift-clicking or all by choosing Edit → Select
All (Cmd-A).
Check Convert Glyph Names to Production Names to use the
glyph production names instead of the nice names used inside
Glyphs. This option is helpful when working on the exported
UFO files with tools expecting a simplified naming scheme
compared to the more expressive names used by Glyphs. See
section 7.3.1, ‘Glyph Name’ (p. 82) for more on the difference
between nice names and production names.
Decompose Smart Stuff handles Glyphs-specific features such
as smart components or corner components to regular paths.
The UFO format does not support these smart components.
Check this option to convert unsupported Glyphs features to
regular paths or leave it unchecked to remove them.
Click Next… to choose an export destination. UFO files are
exported in the UFO version 3 format. See section 15.2.3, ‘Unified
The Metrics tab exports the font metrics of the current master.
The current master is the master that is currently selected in the
toolbar (see p. 55).
Click Next… to choose the export destination and the export
format. There are two metrics formats to choose from:
Metrics File is a proprietary Glyphs metrics format containing all
spacing and kerning information of the master.
AFM File (Adobe Font Metrics) is an old-style format that is
compatible with other font editors. However, it cannot contain all
types of metrics information. For instance, AFM does not
support group kerning or metrics keys.
See section 15.4.2, ‘Importing Metrics’ (p. 222) for details on
importing these metrics files into a Glyphs file.
15.5.3 Sketch
In Sketch, set the contour to a 1 pt outline without fill. This will
prevent double outlines in Glyphs.
15.7 PROJECTS
Projects are collections of instance definitions linked to a Glyphs
font file but kept in a separate project file. This is useful for
setting up different font versions without altering or
compromising the original Glyphs file. Project files carry a
‘.glyphsproject’ suffix.
3 github.com/schriftgestalt/Glyphs-Scripts/blob/master/Glyphs%20Import.py
4 github.com/schriftgestalt/Glyphs-Scripts/blob/master/Glyphs%20Export.py
5 ~/Library/Application Support/FontLab/Studio 5/Macros/
At the top of the window are two groups of filters. Filter the
extensions by whether they are installed with the All, Installed,
Not Installed buttons. Filter by extension type with the Plugins,
Scripts, Modules buttons. Enter a keyword in the search field
located in the top right of the window to search by extension
name, description, or the name of the extension vendor.
Install an extension by clicking the green Install button
beside it. Uninstall an extension by clicking its Remove button.
Glyphs needs to be relaunched for newly installed plug-ins and
16.2 SCRIPTS
Scripts are written in the Python programming language and can
automate every part of Glyphs. Some scripts require specific
modules to be installed; install these from the Modules tab in the
Plugin Manager (see p. 227).
1 github.com/schriftgestalt/glyphs-packages
2 forum.glyphsapp.com
3 glyphsapp.com/contact
__doc__="""
This description spans multiple lines.
Here is the second line.
"""
For writing the actual script, consult the Glyphs Python API
documentation.⁴ On the Glyphs website, there is a tutorial series⁵
from the first steps of programming in Python up to writing
advanced scripts. Viewing the code of existing scripts is also a
great way to learn. If any questions arise, feel free to ask on the
Glyphs forum⁶ or contact the Glyphs team directly.⁷
16.3 PLUG-INS
Plug-ins add a variety of capabilities and functionalities to Glyphs.
They can be grouped into the following types:
Reporter plug-ins (file name suffix ‘.glyphsReporter’) draw
additional information in Edit View and are controllable with a
Show … menu item at the bottom of the View menu.
4 docu.glyphsapp.com
5 glyphsapp.com/learn/recommendation:learn-python
6 forum.glyphsapp.com
7 glyphsapp.com/contact
8 github.com/schriftgestalt/GlyphsSDK
9 glyphsapp.com/learn/plugins
10 docu.glyphsapp.com
11 docu.glyphsapp.com/Core/
12 forum.glyphsapp.com
13 glyphsapp.com/contact
(
{
title = "Soft Dotted";
code = "lookupflag UseMarkFilteringSet @TopMark;
sub @SoftDotted' @TopMark by @Dotless;";
},
{
title = "Decompose Precomposed";
code = "sub @Precomp' lookup decomp @Mark;";
}
)
aalt All Alternatives Glyphs automatically builds the aalt feature based on all features
that substitute glyphs.
liga Standard Ligatures Join the glyph names of the components with an underscore (‘_’).
Some common ligatures (f_f_i, f_f_l, f_f, fi, fl,
lu_lakkhangyao-thai, ru_lakkhangyao-thai) are automatically
placed in the ‘liga’ feature; all others go into ‘dlig’ by default.
Force a ligature into the ‘liga’ feature by adding the ‘.liga’ suffix to
its name, for example, f_b.liga or yi_yi-cy.liga.
dlig Discretionary Ligatures Join the glyph names of the components with an underscore (‘_’),
for example, f_odieresis.
hlig Historical Ligatures Ligatures with longs, or with a ‘.hlig’ or ‘.hist’ suffix.
rlig Required Ligatures Add ‘.rlig’ to the ligature name. Also triggered by lam_alef-ar,
lam_alefHamzaabove-ar, lam_alefHamzabelow-ar,
lam_alefMadda-ar, lam_alef-ar.fina,
lam_alefHamzaabove-ar.fina, lam_alefHamzabelow-ar.fina,
lam_alefMadda-ar.fina, lam_alefWasla-ar,
lam_alefWasla-ar.fina.
c2sc Small Capitals Add ‘.sc’, ‘.c2sc’, or ‘.smcp’ to the glyph name. For separate sets
from Capitals for ‘c2sc’ and ‘smcp’, use ‘.c2sc’ for uppercase glyph names and
‘.smcp’ for lowercase glyph names.
smcp Small Capitals Add ‘.sc’ or ‘.smcp’ to the glyph name.
c2pc Petite Capitals Add ‘.pc’, ‘.c2pc’, or ‘.pcap’ to the glyph name.
from Capitals
pcap Petite Capitals Add ‘.pc’ or ‘.pcap’ to the glyph name.
sups Superscript Add ‘.sups’ to the glyph name. Or extend figure names with
superior, without the period, for example, onesuperior.
subs Subscript Add inferior, ‘.sinf’ or ‘.subs’ to the glyph name. If the font does
not differentiate between subscript and scientific inferior, use one
set of ‘.subs’ glyphs, and Glyphs will create both features with it.
sinf Scientific Inferiors Add inferior, ‘.sinf’ or ‘.subs’ to the glyph name.
cv01– Character Variants Add ‘.cv01’ through ‘.cv99’ to the glyph name. Note that the
cv99 OpenType spec² recommends grouping related alternative glyphs
into the same feature. Use manual feature code if there are
multiple alternatives for a glyph; for example, place the following
code in a single ‘cv##’ feature:
sub a from [a.alt1 a.alt2 a.alt3].
ss01– Stylistic Set Add ‘.ss01’ through ‘.ss20’ to the glyph name. Stylistic sets can
ss20 be named (see p. 121).
salt Stylistic Alternates By default, Glyphs will duplicate the ‘ss01’ feature in ‘salt’. Adobe
Illustrator and Adobe Photoshop make use of this feature in their
OpenType palettes.
1 docs.microsoft.com/typography/opentype/spec/languagetags
2 docs.microsoft.com/typography/opentype/spec/features_ae