OT feature ordering

Primary tabs

2 posts / 0 new
Last post
paul d hunt's picture
Joined: 15 Jan 2004 - 11:00am
OT feature ordering

is there a “definitive” ideal ordering for OT features? or a preferred ordering? or do i just need to make sure that they’re in the right order so as not to interfere with eachother?

Adam Twardoch's picture
Joined: 3 Dec 2002 - 7:36pm

> is there a “definitive” ideal ordering
> for OT features?

No, there is not. Actually, what you’re ordering is not features but lookups used by these features. It should be noted upfront that the OpenType specification allows you to put a lookup that belongs to a certain feature in the middle of two other lookups that belong to another feature. This is easy to do in VOLT but not really easy to express in the FEA syntax used by FontLab and AFDKO. Fortunately, such situations do not occur very often. In fact, the paradigm used in the FEA syntax (ordering lookups implicitly by putting the features in a certain order) is helpful because it simplifies the thinking.

> or a preferred ordering?

Not even that. Imagine two fonts. One has the lowercase glyphs “f” and “i”, the “f_i” ligature and the small caps glyphs “f.smcp” and “i.smcp”. The second font has all these glyphs plus a “f_i.smcp” small caps ligature.

In the first font, you’d want to put the smcp feature (i.e., actually, the lookups associated with the smcp feature) before the liga feature to prevent a single “f_i” ligature sticking out from a bunch of small caps glyphs when both the liga and the smcp features are activated. In the second font, you’d actually want the reverse.

However, it can be presumed that the first case is the more common one. Therefore, a recommendation could be made that the ligation features (liga, dlig) should usually be placed after features such as smcp and c2sc.

As a starting point, you can use the feature definition files of Minion Pro v2.0 provided by Adobe Systems:

But the details really depend on what character set your font will have.

Adam Twardoch
Fontlab Ltd.