Scroll to navigation

ufomerge(1) ufomerge Manual ufomerge(1)

NAME

ufomerge - Utility to merge two Unified Font Object (UFO) source fonts

SYNOPSIS

ufomerge [OPTIONS] PRIMARY_FONT.ufo SECONDARY_FONT.ufo

DESCRIPTION

ufomerge is a command-line utility and Python library designed to merge the contents of two UFO source format fonts into a single output file. It is commonly used to incorporate glyphs, kerning, or other data from a SECONDARY_FONT into a PRIMARY_FONT.

The utility automatically handles the merging of core font data, including:

Glyph outlines and information
Kerning data
Lib entries
Necessary components
Subsetting and merging of OpenType layout rules

OPTIONS

General and Output

Display a help message and exit.

Path for the output UFO file. If this option is omitted, the result will overwrite the PRIMARY_FONT.ufo in-place.

Increase verbosity of the output.

Glyph Selection

A comma-separated list of glyph NAMES to include from the SECONDARY_FONT.

Read the list of glyphs to be merged from a text FILE, with one glyph name per line.

A comma-separated list of Unicode CODEPOINTS (e.g., 0x03B1) whose corresponding glyphs should be included from the SECONDARY_FONT.

Read the list of Unicode codepoints from a text FILE, with one codepoint per line.

A comma-separated list of GLYPHS that must not be included in the merge, even if they match other criteria.

Conflict Resolution

If a glyph from SECONDARY_FONT already exists in PRIMARY_FONT, replace the existing glyph with the one from the secondary font.

If a glyph from SECONDARY_FONT already exists in PRIMARY_FONT, keep the existing glyph and skip the new one. This is the default behavior.

OpenType Layout Handling (features.fea)

These options control how layout rules from the secondary font are merged, particularly when they reference glyphs not in the target set.

(Default) Drop layout rules if they reference glyphs that are not included in the merged glyphset. For example, in `sub A B by C;`, if C is missing, the rule is dropped.

If a layout rule references a glyph that is not already part of the target glyphset, automatically add that referenced glyph to the target and merge it into the PRIMARY_FONT.

Discard all layout rules from the SECONDARY_FONT.

EXAMPLES

Standard Merge

Merge all contents from font-b.ufo into font-a.ufo, saving the result to a new file:

ufomerge --output merged.ufo font-a.ufo font-b.ufo

Selective Merge with Overwrite

Merge only glyphs "alpha", "beta", and "gamma", replacing them if they already exist:

ufomerge --output merged.ufo --glyphs alpha,beta,gamma --replace-existing font-a.ufo font-b.ufo

Layout Closure Merge

Merge font-b.ufo ensuring that glyphs referenced by layout rules are also included:

ufomerge --output merged.ufo --layout-closure font-a.ufo font-b.ufo

AUTHORS

Maintained by the Google Fonts team and contributors. This manual page was derived from the project's upstream documentation.

November 2025 ufomerge 1.9