This is a GlyphsApp extension, (partially) documented [here][1], but it is a useful one as it allows concise glyph insertion using decomposition without having to maintain the list of glyphs in two places. E.g. ```fea @upper = [A-Z]; lookup insert { sub @upper by @upper connector; } insert; feature ccmp { sub @upper' lookup insert x; } ccmp; ``` As apposed to: ```fea @upper = [A-Z]; lookup insert { sub A by A connector; sub B by B connector; sub C by C connector; sub D by D connector; sub E by E connector; sub F by F connector; sub G by G connector; sub H by H connector; sub I by I connector; sub J by J connector; sub K by K connector; sub L by L connector; sub M by M connector; sub N by N connector; sub O by O connector; sub P by P connector; sub R by R connector; sub S by S connector; sub T by T connector; sub U by U connector; sub V by V connector; sub W by W connector; sub X by X connector; sub Y by Y connector; sub Z by Z connector; } insert; feature ccmp { sub @upper' lookup insert x; } ccmp; ``` 1. http://handbook.glyphsapp.com/en/layout/multiple-substitution-with-classes/
32 lines
525 B
Plaintext
32 lines
525 B
Plaintext
feature f1 {
|
|
sub c_t by c t;
|
|
sub f_i by f i;
|
|
sub f_f_i by f f i;
|
|
} f1;
|
|
|
|
|
|
# Even if it has exactly the same content as feature f1,
|
|
# the lookup should not be shared.
|
|
feature f2 {
|
|
sub c_t by c t;
|
|
sub f_i by f i;
|
|
sub f_f_i by f f i;
|
|
} f2;
|
|
|
|
feature f3 {
|
|
sub [f_i f_l f_f_i f_f_l] by f [i l f_i f_l];
|
|
} f3;
|
|
|
|
feature f4 {
|
|
sub [f_i f_l f_f_i f_f_l] by [f f f_f f_f] [i l i l];
|
|
} f4;
|
|
|
|
@class = [f_i f_l];
|
|
lookup l1 {
|
|
sub @class by f [i l];
|
|
} l1;
|
|
|
|
feature f5 {
|
|
sub @class' lookup l1 [i l];
|
|
} f5;
|