Managing Glyph Names and Codepoints

Name generation and codepoint generation work in opposite directions. One derives a working label from character information; the other derives character assignments from a name. Before running either, decide which information you trust.

A mismatch is a reason to inspect the relationship, not a reason to run both operations repeatedly. Start with a saved native working file so that a large naming change can be compared with the original.

Naming Schemes and the Naming Table

A naming scheme is a convention FontLab uses to choose glyph names. The four built-in choices serve different development and production needs.

Scheme Naming approach
Production Familiar AGLFN names where available, with Unicode-derived names for other encoded characters
Friendly Descriptive development names following the Glyph Name Formatter convention
Alternative Descriptive development names following the GlyphsInfo convention
uniXXXX Algorithmic names derived from Unicode values

Friendly and Alternative can make work across many writing systems easier to read. Their names overlap but are not identical. Production is useful when names need to follow conventional downstream expectations; an output profile can convert names for that purpose while the source retains its development naming.

The scheme preference is under Preferences > Glyph Names & Unicode > Default glyph names > Names for new/renamed glyphs. This supplies a default for relevant naming operations. Choosing a preference is not the same as explicitly converting every existing glyph.

In encoding mode, Apply in empty Encoding cells in Preferences > Names applies the current naming scheme to names for missing positions. Check the scheme before creating glyphs from those positions; changing the displayed target names is distinct from renaming existing glyphs.

The mapping table

standard.nam is FontLab's bundled name-to-Unicode mapping resource. It relates names from the supported schemes and supplies additional synonyms used to recognize names from different workflows. These fallbacks help Generate Unicodes interpret names, and the synonym-search option lets supported search controls look across naming schemes; see Searching the Glyph Set.

The mapping supports both directions of lookup, but not every entry has the same role. Some entries supply names when a glyph is created or renamed; others are fallback synonyms useful when a name is interpreted. The file's prefixes distinguish these roles. A synonym need not be a name that FontLab will generate as its preferred output.

You can specify a custom file through the Unicode-name mapping setting in the same preferences page. Restart FontLab after changing the mapping file or its contents. A custom table changes the reference used for lookups and coherence checks; it does not automatically establish that every existing assignment in a font is correct.

Preferences for opening fonts can also trigger renaming when you open a file from another format. If an imported font arrives with different names from those expected, inspect the relevant Open Fonts settings before assuming the source file used those names.

Assigning Unicode Codepoints

To edit one glyph's assignment directly:

  1. Select that glyph alone in the Font window.
  2. Find its Unicode field in the bottom bar or Glyph panel.
  3. Enter the hexadecimal codepoint value, such as 0041 for the Latin capital A, and commit the field.
  4. Inspect the resulting assignment and any conflict message.

Use hexadecimal values in the field rather than the explanatory U+ prefix. For several assignments, separate the hexadecimal values with commas. An empty assignment leaves the glyph unencoded.

If another glyph already owns the requested character assignment, inspect the conflict carefully. Transferring a codepoint changes which glyph represents that character by default. A name or assignment that looks plausible in isolation can still be wrong for the other glyph involved.

Deriving assignments from names

Font > Generate Unicodes uses glyph names as the authority for generating character assignments.

Warning: Generate Unicodes can replace or clear existing assignments. A selected glyph whose name is unrecognized can lose its assignments, and a codepoint newly assigned to a selected glyph can be removed from an unselected glyph that previously carried it. Save a working copy and inspect the intended glyph names before running it.

  1. Select the glyphs whose names you want to use as the basis for assignment.
  2. Choose Font > Generate Unicodes.
  3. Inspect their Unicode values and review any other glyphs that previously carried those characters.

A known name supplies the corresponding value from the naming resource. The operation is not simply “fill empty fields”; it reconciles assignments with the names used. For carefully chosen multi-encoded glyphs, check that the resulting assignment set still matches the intended text coverage.

The red mismatch indicator can flag a missing or conflicting assignment; yellow can flag an assigned codepoint whose name is not recognized. Recall Glyph Identity. To resolve a mismatch manually, preserve the side that is correct. If the glyph is intended to represent A but has a misleading name, rename it. If the name is correct and the codepoint is wrong, change the assignment. If it is an alternate reached through substitution, a direct codepoint may not be needed at all.

The expanded Unicode controls can describe a variation sequence: a base codepoint combined with a variation selector, a character that requests a particular presentation of the base, such as text or emoji presentation. In that context, Go to Base Glyph selects the glyph assigned to the base codepoint entered in the control.

The expanded controls distinguish the base codepoint from its variation selector.

The expanded controls distinguish the base codepoint from its variation selector.

Renaming Glyphs

One glyph and its references

The Rename Glyph dialog makes the consequences of a rename visible in one place.

The Rename dialog separates the new identity from options for updating related names in features, kerning, recipes, and expressions.

The Rename dialog separates the new identity from options for updating related names in features, kerning, recipes, and expressions.

Warning: Reusing an existing name can replace another glyph. Leave replacement disabled unless that is intended. Keep replaced glyphs under new names preserves the displaced glyph under an automatically generated name and removes its Unicode assignments. The renamed glyph takes the requested name; the displaced copy no longer has its former character mapping.

  1. Select the intended glyph and choose Glyph > Rename Glyph....
  2. Enter New name. Inspect New unicode as a separate value rather than assuming a name change has supplied the intended assignment.
  3. Choose whether to update references in OpenType features and classes, kerning pairs and classes, and auto-layer recipes and metrics expressions.
  4. Decide whether Also rename alternates should include suffix variants of the base name.
  5. Click Rename, then inspect the glyph and its relevant references.

The name field can offer completions and interpret a Unicode character as a glyph-name request. The individual update buttons derive a name from the character assignment or an assignment from the name. Their direction matters: check the field they update before confirming.

Rename Next Glyph applies the change and advances to the next glyph. Use it when reviewing a sequence, while checking that the dialog now identifies the next intended target.

Direct field edits

The Font window's bottom-bar name field requires one selected current glyph. Its rename behavior uses the configured renaming options; it is not universally a name-only operation. The Glyph panel's name edit also uses the configured propagation options. Do not infer a name-only edit merely from typing directly into a field; check the rename settings and use the explicit dialog when propagation matters.

For a glyph used by features, recipes, or other glyphs, the explicit dialog is the clearest route to checking propagation options. A change that leaves a textual reference unchanged can break that reference even though the drawing remains visible.

Converting a naming scheme

The scheme commands under Font > Rename Glyphs convert names using the chosen convention.

Warning: The direct Friendly, Production, Alternative, and uniXXXX commands operate on the current font's glyph collection, not just the highlighted cells, and do not present a preview table before applying. Save before using them on a font whose current names matter to an external workflow.

Activate the intended font, choose the scheme command, and inspect the result. Some names may remain unchanged because they already fit or because a proposed name would conflict with another name. Conversion is a naming operation, not evidence that all text mappings and external references have been validated.

Suffixes and custom mappings

Font > Rename Glyphs > Suffix... works with the intended selected glyphs. Enter or choose a suffix, then inspect Replace existing suffix, Only the last segment, and Also rename alternates before confirming. Replacing only the last suffix segment is different from replacing the suffix after the first period.

Name Suffix dialog with suffix shortcuts and replacement and alternate-renaming options.

Suffix replacement, replacement of only the last segment, and renaming alternates are independent choices. Check them against the selected glyphs before confirming.

Font > Rename Glyphs > Custom... provides a mapping workflow. It can relate a source and destination encoding or load a table of old and new names. Review the proposed names and the Unlisted glyph names choice: unmatched glyphs can be kept or handled according to the selected scheme. Do not assume that supplying a partial table necessarily leaves all other glyphs unchanged.

The custom dialog can show a proposed name for each mapped entry, allowing corrections before OK applies the operation. Check collisions and the handling of alternates along with the spelling of individual names.

Character Specifiers

A Unicode glyph specifier uses a character to refer to a glyph where the control supports that notation. For example, ä can identify the glyph ordinarily named adieresis.

A suffix or underscore can extend the reference:

Specifier Intended reference
ä The glyph for the encoded character
ä.smcp Its alternate with the exact .smcp suffix
f_ä A glyph named for that character combination

This is a reference to an existing glyph, not a request to draw or create one. The suffix must match; .smcp and .sc are not interchangeable merely because both may describe small capitals.

Supported expression, recipe, and search fields can resolve such references when used. Some name-entry fields and the Classes panel instead replace the character notation with the resolved glyph name. In the glyph-text notation taught in Text in the Glyph Window, a slash introduces an explicit reference, such as /ä or /ä.smcp.

Resolution depends on the field and naming conventions available. In particular, the documented glyphtext alternate and ligature forms do not match every possible synonym-based development name. If a character specifier does not resolve, use the glyph's actual name instead of changing its Unicode assignment merely to make the reference work.

Glyph Names on Export

An export profile's Glyph names setting separates the naming useful during development from the names written to output.

Use current glyph names retains the working names subject to the output format's restrictions. A development name may still need conversion to a permissible form. Use production glyph names converts names to the Production convention. Do not use glyph names, where supported by the output format and profile, omits the stored glyph-name data.

Production naming is a useful default for workflows that rely on conventional glyph names. It does not replace correct character assignments or guarantee text extraction from every document. An output format that omits glyph names can still use its character mapping and layout data to render text.

Keep the editable native source when making output choices. Export-time naming does not require the entire development project to adopt the same naming convention. For configuring and applying output profiles, see Export Profiles.