Closed kalapi closed 1 year ago
why is this a problem?
Interesting! I'm rethinking so many of my pre-conceptions regarding feature file do–s and don't–s.
I just compiled the file and it's exactly the same as the one with all of them combined!
I apologies in advance! I'm going to ask more stupid questions, that way I can document the process and have useful notes for others.
Unrelated question: Is there are equivalent to ignore sub
? If not how do you recommend implementing it?
Sample code could be something like this:
lookup abc {
ignore substitute f [a e] d';
ignore substitute a d' d;
substitute [a e n] d' by d.alt;
} abc;
When I first started writing Fez/FontFeatures, I tried to make the .fea output look as "humanly written" as possible. But I soon gave that up because it was much easier to manage and my .fea files were going to be thousands of lines long anything. Just treat .fea as binary, and don't look too closely at it. :-)
For ignore sub
, you should be writing your contextuals as chain rules anyway, so this works:
Routine abc {
Chain f [a e] (d);
Chain a (d) d;
Chain [a e n] (d ^ToAlt);
};
But of course the real power of Fez is when you start writing your own plugins...
@kalapi In general, FEZ makes...overly verbose FEA code, but not incorrect code. In this case Simon's way is actually better, as to join feature blocks together, you have to do a process of determining which blocks have the same properties. Doing that can introduce subtle bugs if you get it wrong.
I have FEZ code like so:
This is the output i'm getting:
Instead of: