User Guide

Making OpenType Fonts
635
F e a t u r e De f i n i t i o n La n g u a g e
Information about OpenType features is stored in a binary form inside the
font file. This is not easy to modify and not easy to handle with visual tools
(like the tools that FontLab provides to edit outlines that are also stored in
a binary form).
To define features in human-readable form Adobe has developed the
feature-definition language. It is very easy to read and it is the most
compact way to represent OpenType font features.
Let’s take a simple example: a ligature feature that covers the basic “fi” and
“fl” ligatures that are present in almost every Western font. In feature-
definition language this feature will be defined as follows:
feature liga{
sub f i by fi;
sub f l by fl;
} liga;
Other possible features are defined in a similar way, keeping the feature
definition both compact and readable.
When FontLab opens an OpenType font file that contains features it tries
to reconstruct the feature-definition file. With a few exceptions it works for
most possible combinations of substitution and/or positioning features.
In the following sections we will describe the feature definition language in
more detail. The next section covers the basic rules of the language.