Skip to Content

OpenType Positioning Rules Stack Additively

Multiple OpenType positioning rules that apply to the same glyph will stack additively. This can occur across multiple features and within a single feature.

Say we had two features like this:

feature cv01 {
	pos f <200 0 400 0>;
} cv01;

feature cv02 {
	pos f <300 0 600 0>;
} cv02;

If both cv01 and cv02 were enabled at the same time, each f glyph would have an extra 500 units of space to their left and right.

This can occur within the same feature if multiple contextual rules apply to the same glyph:

feature cv03 {
	pos f f <200 0 400 0>;
	pos f <300 0 600 0>;
} cv03;

In the string ff, the first f would have an additional 500 units of space on each side, and the second f would have an additional 300 units of space on each side.