Open
Description
Rules that work for variable fonts may not work for instances, because varLib/feature variations and the instantiator work differently.
- Expectation: I can reuse the Designspace with the rules that I made work for variable fonts.
- instance-test.designspace contains the rules that work for the VF, which I cannot reuse for instances.
- Actually: I have to make a copy and write different rules to implement the same logic for instance generation.
- instance-reference.designspace contains rules that work. Note how they look different from the rules that I'd like to work for VFs in that I have to start from the original glyphs
A
anda
.
- instance-reference.designspace contains rules that work. Note how they look different from the rules that I'd like to work for VFs in that I have to start from the original glyphs
The reproducers are described in more detail on https://github.com/daltonmaag/designspace-rules-reproducers.
What I expect (from instance-ref-stacked-high.ttf, made from in instance-reference.designspace, with the test string "Aa"):
What actually happens (in instance-test-stacked-high.ttf, made from instance-test.designspace):
The "a" is the original glyph rather than "a.break".
The rub lies in the way substitutions work:
- In feature variations, the shaper is expected to find the first condition set that matches and then stop there.
- The instantiator will collect all rules where the condition set matches and then swap glyph contents. On rule boundaries (like HGHT=750 for instance-test-stacked-high.ttf), when rules contain duplicate substitutions and start and end points overlap, it may collect two or more rules. Any duplicate substitutions can then cause a swap back and forth, undoing substitutions.
Metadata
Metadata
Assignees
Labels
No labels
Activity