OpenType Layout

When an application displays text, its shaping engine selects and positions glyphs using information in the font. OpenType Layout supplies rules for those operations. A substitution can select a ligature or an alternate form; positioning can adjust a pair’s spacing or attach a mark to a letter. Some choices are optional, while others are needed for a writing system to display correctly.

This chapter explains the processing model before introducing the authoring tasks. You write, generate, or visually edit substitution rules, edit kerning through visual controls, and describe mark attachment with anchors. Each method contributes to the font’s behavior in text. Testing uses actual character sequences and the intended script, language, and feature settings, so the result reflects how those rules interact.

The OpenType Layout Process

Understand how shaping uses font data and how FontLab’s authoring tools prepare that data.

Shaping Text

Follow text from characters to positioned glyphs and understand the shaping engine’s role in applying font data.

The Process Architecture

Distinguish features, lookups, and rules, and understand how processing order and glyph classification affect results.

Authoring OpenType Layout

Choose an authoring environment, compile layout data, and assess what opening or exchanging an existing font preserves.

The Lookups Panel

Browse features and rules, edit substitutions and positioning visually, follow contextual calls, and trace a text run in the debugger. Import Features code, copy FEA, and compile the document for normal previews and export.

Glyph Substitution

Write, generate, and test rules that select different glyphs for particular features, scripts, languages, or contexts.

Substitution Features

Choose feature tags for their intended behavior and account for script, language, and optional or required substitutions.

The Features Panel

Write feature source, navigate glyph references, compile and test rules, and manage shared declarations and imported code.

Glyph Classes

Build and maintain glyph classes, preserve corresponding member order, and include suitable tags in feature authoring.

Substitution Lookups

Write direct substitutions for individual glyphs, ligatures, multiple outputs, and selectable alternates; edit them visually and trace their effects in the Lookups debugger.

Contextual Substitution

Apply substitutions only in specified glyph contexts, follow referenced lookups, sample context classes, and test exceptions with explicit boundaries.

Generated and Conditional Substitution

Generate and update managed feature code, combine it with manual rules, and understand designspace-conditional substitutions.

Kerning

Adjust the spacing of glyph pairs, reuse suitable corrections through classes, and maintain kerning across designs.

The Kerning Model

Distinguish default spacing from kerning and understand glyph pairs, kerning classes, and exceptions.

Preparations

Build and check kerning classes, prepare diagnostic text, and organize reusable pairs and phrases.

Kerning Visually

Edit pair values visually or numerically, manage exceptions and stored pairs, and coordinate kerning across masters.

Right-to-Left Kerning

Judge right-to-left pairs in visual order and understand the direction information used to store them.

Kerning, GPOS, and the kern Table

Understand how visual kerning becomes OpenType positioning, and when contextual rules or legacy kern output need separate attention.

Mark Attachment

Prepare attachment relationships for marks and connected scripts, then check the positioning data produced for use in text.

Mark Attachment as Positioning

Distinguish mark positioning in text from precomposed drawings and understand the roles of anchors and mark classification.

Attaching Marks

Prepare and test attachment of marks to bases, other marks, and specific components of ligatures.

Cursive Attachment

Use entry and exit anchors to describe the connection between adjoining glyphs in a cursive script.

Mark Features and Export

Choose how mark features are generated, check source and compiled behavior, and add manual positioning code where needed.

Appendix — Microsoft VOLT Integration

Exchange and verify layout data through Microsoft VOLT, using Lookups to inspect the returned rules.