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.