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.