Using Recipes for Composite Building
A glyph recipe describes which source glyphs to use, how to place them, and optionally how to set the resulting metrics. It replaces a sequence of manual Add Component operations with a construction you can read, revise, and run again.
A recipe can be executed once to build ordinary content or retained in an auto layer for regeneration. The construction language is the same; whether it stays live is a separate choice.
Glyphs from Recipes
Choose Font > Build Glyphs… and open Custom. With Use simple (FLS5) syntax off, enter one construction per line, with the destination name before the equals sign:
aacute = a + acutecomb@center,top
f_i = f & i
The first construction uses a as the base and places acutecomb above it. In an anchor-free source, center,top centers the mark horizontally and aligns its bottom to the base's top. The second places f and i in sequence. These are structural examples; their spacing and placement still need inspection.
Source glyphs must be available under the names or supported Unicode specifiers you use. Check the preview list for the intended destination names before confirming. A correctly spelled recipe can still produce incomplete content if a source is absent or its drawing is empty. Inspect the Output panel as well as the generated glyph.

The populated Custom tab shows a construction and its resulting glyph preview. Review the syntax mode, rebuild setting, auto-layer setting, and master scope before generating; the checked options here are only this example’s state.
Set the generation options
The left-side options apply across the dialog's tabs:
| Option | Decision |
|---|---|
| Use anchors | Allow attachment-point placement where the sources provide it |
| Link as references | Retain shared source relationships instead of independent contour copies |
| Rebuild existing glyphs | Replace existing target content; leave off to preserve targets that should be skipped |
| Create auto layers | Retain live construction; see Auto Layers |
| All masters / Active master only | Choose which masters receive generated content |
| Flag new glyphs | Mark generated glyphs with a chosen review color |
| Open new glyphs for editing | Open the results immediately for inspection |
These settings interact: an auto layer requires a live construction rather than freely editable copied contours. Check the resulting component structure and recipe instead of assuming every checkbox combination produces the same kind of glyph.
Rebuild existing glyphs is a content-changing choice. Save a native source before rebuilding hand-adjusted targets. Active-master-only generation limits populated content; the glyph can still have entries for the font's other masters. Review their state separately.
For a first, one-time composite build, leave Create auto layers off and enable Link as references. Choose the master scope you intend to populate, review Rebuild existing glyphs, then confirm the dialog to generate the previewed destinations.
After building, inspect the source references, mark positions, advance width, sidebearings, and any warning. A generated name in the Font window does not by itself establish a complete construction.
Use the other tabs for specific tasks
The other tabs provide selection-driven shortcuts to common constructions:
- Characters attempts to supply the glyphs for the selected characters.
- Ligature combines the input glyphs in sequence into one glyph.
- Variants creates suffixed counterparts of the input glyphs.
- Precomposed combines the input into one overlaid construction.
Prepare the input before opening the dialog. In the Font window, select the relevant cells, including missing positions when appropriate. In the Glyph window, the displayed text supplies the input; a Text-tool selection can limit it to a portion. Confirm the preview because input order matters for a ligature or overlay.
Custom is the general route when you need explicit construction and naming beyond those convenience cases. The catalog and new-glyph creation preferences can also request recipe-based starting content. They are additional entry points to this construction system, not separate languages. Beta Aidus generation is a different source of new outlines and is not an alias.dat recipe build.
Construction Grammars
FontLab accepts legacy FLS5 syntax and Glyph Construction syntax. Choose the mode before writing: their destination-name order, spacing rules, and operators differ.
Legacy FLS5 syntax
Enable Use simple (FLS5) syntax. Write the compact construction without internal spaces, followed by = and the destination:
a+acutecomb=aacute
f_i=f_i
Use one recipe per line while learning. _ concatenates glyphs horizontally, adding their advances; later marks refer to the first base in the group. & groups more strongly so a later mark refers to the nearest preceding base. + adds a mark without adding its width. Thus a+acutecomb&b+gravecomb associates the marks with their respective bases.
Quote a source name containing an underscore when that underscore is part of the name: 'f_f'_i uses the existing f_f glyph followed by i. Numeric shifts in this grammar are per thousand of UPM, not always font units: 50 means 100 units at 2000 UPM. Detailed placement suboperators belong to the recipe reference.
Glyph Construction syntax
Turn simple syntax off and use destination = construction:
f_f_i = f & f & i
Aringacute = A + ringcomb@center,top + acutecomb@center,top
The recipe target is the reference for placing a component. By default it is the preceding component, so the acute in the second example follows the ring. A glyph: prefix after @ chooses an earlier target in the same group, for example @A:center,top. It cannot reach across an & group boundary.
& places each base group after the preceding group's advance, without kerning. A backslash after the separator includes the pair's kerning: f_i = f&\i. + associates marks with their base before the groups are joined.
Construction proceeds in visual left-to-right order. Reading order is the sequence in which text is read: left-to-right for Latin, right-to-left for Arabic and Hebrew. An Arabic recipe therefore lists its visual pieces in the reverse of reading order; it does not instruct the shaping engine.
@ supplies placement. Numeric pairs such as @200,100 specify x and y; @center,top uses geometric relationships. In anchor-free placement, left puts the component's right edge at the reference's left edge, while innerLeft aligns the two left edges. right and innerRight make the corresponding outer/inner distinction on the right. Keep horizontal names in the x slot. Anchor placement is taught in Anchors for Positioning.
Metrics and annotations
After the construction, ^ 600 sets advance width; ^ 40,50 sets left and right bearings. Inspect the resulting fit and avoid a competing metrics-field formula for the same value. # introduces a comment; #! stores a glyph note.
Modern Unicode (|) and color (!) suffixes are supported, but detailed syntax belongs to the reference. Do not rely on external GlyphConstruction $variable/{variable} preprocessing or use a leading ? instead of Rebuild existing glyphs. FontLab's workflow does not implement every external-script feature.
Built-in Recipes
An implicit recipe is supplied by FontLab when you request a glyph without writing its construction. The bundled alias.dat ruleset provides many common constructions, including recipes in both supported forms. This is why requesting a familiar accented glyph can produce components without a typed recipe.
FontLab tries the rules in their defined order and checks their applicability to the font's available source glyphs. A name can also resolve through naming-table synonyms, so a Unicode-style name and a familiar glyph name can identify the same requested construction. An earlier complete candidate is preferred over later alternatives when its required sources are available.
Do not interpret “a rule exists” as “every required source exists.” Inspect the generated result and warnings when a candidate cannot be completed. Depending on the route and available fallback, a requested glyph can remain empty or receive incomplete construction rather than disappearing from the glyph set entirely.
When the creation method allows it, FontLab can also derive a construction from Unicode decomposition, underscores in a name, or a suffixed name. These are useful extensions, not a guarantee that every character or script can be built. Many desired forms have no suitable automatic decomposition and require an explicit recipe or drawing.
You can customize alias.dat in FontLab's user data area; the file and folder hierarchy are covered in The User Data Folder and Customizable Data Files. Treat an overriding file as a ruleset to maintain carefully: FontLab can use that file in place of the bundled rules rather than merge its entries with the default set. Preserve the rules you still need, and test representative glyphs after changing it.
Built-in and custom recipes use the same construction idea. A hand-entered recipe states the choices explicitly; an implicit recipe delegates those choices to the active rules and fallback logic. An auto layer can keep either choice live, which makes the recipe source important when sharing or reopening the font.