forked from adobe-fonts/source-sans
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfeatures.family
389 lines (300 loc) · 19.5 KB
/
features.family
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
@LETTERS_MAJUSCULE_LATIN_BASIC = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z];
@LETTERS_MAJUSCULE_LATIN_ACCENTED = [Agrave Aacute Acircumflex Atilde Adieresis Amacron Abreve Aring Acaron Adotbelow Ahook Acircumflexacute Acircumflexgrave Acircumflexhook Acircumflextilde Acircumflexdotbelow Abreveacute Abrevegrave Abrevehook Abrevetilde Abrevedotbelow Aogonek AE Bstroke Blinebelow Ccedilla Cacute Ccircumflex Ccaron Cdotaccent Dcaron Ddotbelow Dlinebelow Dcroat Egrave Eacute Ecircumflex Ecaron Edieresis Emacron Ebreve Edotaccent Edotbelow Ehook Etilde Ecircumflexacute Ecircumflexgrave Ecircumflexhook Ecircumflextilde Ecircumflexdotbelow Eogonek Emacronacute Gcircumflex Gbreve Gdotaccent Gcommaaccent Gcaron Gmacron Gtilde Hcircumflex Hdotbelow Hbrevebelow Hbar Igrave Iacute Icircumflex Itilde Idieresis Imacron Icaron Ihook Idotbelow Iogonek Ibreve Jcircumflex Kcommaaccent Klinebelow Lacute Lcaron Lcommaaccent Ldot Ldotbelow Ldotbelowmacron Llinebelow Lslash Mdotbelow Nacute Ncaron Ntilde Ncommaaccent Ndotaccent Ndotbelow Nlinebelow Ograve Oacute Ocircumflex Otilde Odieresis Omacron Ohungarumlaut Ocaron Odotbelow Ohook Ocircumflexacute Ocircumflexgrave Ocircumflexhook Ocircumflextilde Ocircumflexdotbelow Oslash OE Ohorn Ohornacute Ohorngrave Ohornhook Ohorntilde Ohorndotbelow Oogonek Obreve Omacronacute Racute Rcaron Rcommaaccent Rdotbelow Rdotbelowmacron Rlinebelow Sacute Scircumflex Scaron Scedilla Scommaaccent Sdotaccent Sdotbelow Tcaron Tcedilla Tcommaaccent Tdotbelow Tlinebelow Ugrave Uacute Ucircumflex Utilde Udieresis Umacron Ubreve Uring Uhungarumlaut Ucaron Udieresismacron Udieresisacute Udieresiscaron Udieresisgrave Udotbelow Uhook Uogonek Uhorn Uhornacute Uhorngrave Uhornhook Uhorntilde Uhorndotbelow Wgrave Wacute Wcircumflex Wdieresis Ygrave Yacute Ycircumflex Ydieresis Ydotaccent Ydotbelow Yhookabove Ytilde Zacute Zcaron Zdotaccent Zdotbelow];
@LETTERS_MAJUSCULE_LATIN_ADDL = [Eth Thorn Schwa];
@LETTERS_MAJUSCULE_LATIN_ALL = [@LETTERS_MAJUSCULE_LATIN_BASIC @LETTERS_MAJUSCULE_LATIN_ACCENTED @LETTERS_MAJUSCULE_LATIN_ADDL Idotaccent Germandbls];
@LETTERS_MAJUSCULE_LATIN_SUPERIOR = [A.sups B.sups C.sups D.sups E.sups F.sups G.sups H.sups I.sups J.sups K.sups L.sups M.sups N.sups O.sups P.sups Q.sups R.sups S.sups T.sups U.sups V.sups W.sups X.sups Y.sups Z.sups];
@LETTERS_MINISCULE_LATIN_BASIC = [a b c d e f g h i j k l m n o p q r s t u v w x y z];
@LETTERS_MINISCULE_LATIN_ACCENTED = [agrave aacute acircumflex atilde adieresis amacron abreve aring acaron adotbelow ahook acircumflexacute acircumflexgrave acircumflexhook acircumflextilde acircumflexdotbelow abreveacute abrevegrave abrevehook abrevetilde abrevedotbelow aogonek ae bstroke blinebelow ccedilla cacute ccircumflex ccaron cdotaccent dcaron ddotbelow dlinebelow dcroat egrave eacute ecircumflex ecaron edieresis emacron ebreve edotaccent edotbelow ehook etilde ecircumflexacute ecircumflexgrave ecircumflexhook ecircumflextilde ecircumflexdotbelow eogonek emacronacute gcircumflex gbreve gdotaccent gcommaaccent gcaron gmacron gtilde hcircumflex hdotbelow hbrevebelow hbar igrave iacute icircumflex itilde idieresis imacron icaron ihook idotbelow iogonek ibreve jcircumflex kcommaaccent klinebelow lacute lcaron lcommaaccent ldot ldotbelow ldotbelowmacron llinebelow lslash mdotbelow nacute ncaron ntilde ncommaaccent ndotaccent ndotbelow nlinebelow ograve oacute ocircumflex otilde odieresis omacron ohungarumlaut ocaron odotbelow ohook ocircumflexacute ocircumflexgrave ocircumflexhook ocircumflextilde ocircumflexdotbelow oslash oe ohorn ohornacute ohorngrave ohornhook ohorntilde ohorndotbelow oogonek obreve omacronacute racute rcaron rcommaaccent rdotbelow rdotbelowmacron rlinebelow sacute scircumflex scaron scedilla scommaaccent sdotaccent sdotbelow tcaron tcedilla tcommaaccent tdotbelow tlinebelow ugrave uacute ucircumflex utilde udieresis umacron ubreve uring uhungarumlaut ucaron udieresismacron udieresisacute udieresiscaron udieresisgrave udotbelow uhook uogonek uhorn uhornacute uhorngrave uhornhook uhorntilde uhorndotbelow wgrave wacute wcircumflex wdieresis ygrave yacute ycircumflex ydieresis ydotaccent ydotbelow yhookabove ytilde zacute zcaron zdotaccent zdotbelow];
@LETTERS_MINISCULE_LATIN_ADDL = [eth thorn schwa];
@LETTERS_MINISCULE_LATIN_SUPERIOR = [a.sups b.sups c.sups d.sups e.sups f.sups g.sups h.sups i.sups j.sups k.sups l.sups m.sups n.sups o.sups p.sups q.sups r.sups s.sups t.sups u.sups v.sups w.sups x.sups y.sups z.sups];
@LETTERS_SMALLCAP_LATIN_BASIC = [A.sc B.sc C.sc D.sc E.sc F.sc G.sc H.sc I.sc J.sc K.sc L.sc M.sc N.sc O.sc P.sc Q.sc R.sc S.sc T.sc U.sc V.sc W.sc X.sc Y.sc Z.sc];
@LETTERS_SMALLCAP_LATIN_ACCENTED = [Agrave.sc Aacute.sc Acircumflex.sc Atilde.sc Adieresis.sc Amacron.sc Abreve.sc Aring.sc Acaron.sc Adotbelow.sc Ahook.sc Acircumflexacute.sc Acircumflexgrave.sc Acircumflexhook.sc Acircumflextilde.sc Acircumflexdotbelow.sc Abreveacute.sc Abrevegrave.sc Abrevehook.sc Abrevetilde.sc Abrevedotbelow.sc Aogonek.sc AE.sc Bstroke.sc Blinebelow.sc Ccedilla.sc Cacute.sc Ccircumflex.sc Ccaron.sc Cdotaccent.sc Dcaron.sc Ddotbelow.sc Dlinebelow.sc Dcroat.sc Egrave.sc Eacute.sc Ecircumflex.sc Ecaron.sc Edieresis.sc Emacron.sc Ebreve.sc Edotaccent.sc Edotbelow.sc Ehook.sc Etilde.sc Ecircumflexacute.sc Ecircumflexgrave.sc Ecircumflexhook.sc Ecircumflextilde.sc Ecircumflexdotbelow.sc Eogonek.sc Emacronacute.sc Gcircumflex.sc Gbreve.sc Gdotaccent.sc Gcommaaccent.sc Gcaron.sc Gmacron.sc Gtilde.sc Hcircumflex.sc Hdotbelow.sc Hbrevebelow.sc Hbar.sc Igrave.sc Iacute.sc Icircumflex.sc Itilde.sc Idieresis.sc Imacron.sc Icaron.sc Ihook.sc Idotbelow.sc Iogonek.sc Ibreve.sc Jcircumflex.sc Kcommaaccent.sc Klinebelow.sc Lacute.sc Lcaron.sc Lcommaaccent.sc Ldot.sc Ldotbelow.sc Ldotbelowmacron.sc Llinebelow.sc Lslash.sc Mdotbelow.sc Nacute.sc Ncaron.sc Ntilde.sc Ncommaaccent.sc Ndotaccent.sc Ndotbelow.sc Nlinebelow.sc Ograve.sc Oacute.sc Ocircumflex.sc Otilde.sc Odieresis.sc Omacron.sc Ohungarumlaut.sc Ocaron.sc Odotbelow.sc Ohook.sc Ocircumflexacute.sc Ocircumflexgrave.sc Ocircumflexhook.sc Ocircumflextilde.sc Ocircumflexdotbelow.sc Oslash.sc OE.sc Ohorn.sc Ohornacute.sc Ohorngrave.sc Ohornhook.sc Ohorntilde.sc Ohorndotbelow.sc Oogonek.sc Obreve.sc Omacronacute.sc Racute.sc Rcaron.sc Rcommaaccent.sc Rdotbelow.sc Rdotbelowmacron.sc Rlinebelow.sc Sacute.sc Scircumflex.sc Scaron.sc Scedilla.sc Scommaaccent.sc Sdotaccent.sc Sdotbelow.sc Tcaron.sc Tcedilla.sc Tcommaaccent.sc Tdotbelow.sc Tlinebelow.sc Ugrave.sc Uacute.sc Ucircumflex.sc Utilde.sc Udieresis.sc Umacron.sc Ubreve.sc Uring.sc Uhungarumlaut.sc Ucaron.sc Udieresismacron.sc Udieresisacute.sc Udieresiscaron.sc Udieresisgrave.sc Udotbelow.sc Uhook.sc Uogonek.sc Uhorn.sc Uhornacute.sc Uhorngrave.sc Uhornhook.sc Uhorntilde.sc Uhorndotbelow.sc Wgrave.sc Wacute.sc Wcircumflex.sc Wdieresis.sc Ygrave.sc Yacute.sc Ycircumflex.sc Ydieresis.sc Ydotaccent.sc Ydotbelow.sc Yhookabove.sc Ytilde.sc Zacute.sc Zcaron.sc Zdotaccent.sc Zdotbelow.sc];
@LETTERS_SMALLCAP_LATIN_ADDL = [Eth.sc Thorn.sc Schwa.sc];
@LETTERS_SMALLCAP_LATIN_ALL = [@LETTERS_SMALLCAP_LATIN_BASIC @LETTERS_SMALLCAP_LATIN_ACCENTED @LETTERS_SMALLCAP_LATIN_ADDL Idotaccent.sc Germandbls.sc];
@MARKS_CMB = [gravecmb acutecmb circumflexcmb tildecmb macroncmb brevecmb dotaccentcmb dieresiscmb hookabovecmb ringcmb hungarumlautcmb caroncmb dblgravecmb cedillacmb ogonekcmb
dieresismacron dieresisacute dieresiscaron dieresisgrave circumflexacute circumflexgrave circumflexhook circumflextilde breveacute brevegrave brevehook brevetilde circumflexbreve];
@MARKS_CMB_CASE = [gravecmb.cap acutecmb.cap circumflexcmb.cap tildecmb.cap macroncmb.cap brevecmb.cap dotaccentcmb.cap dieresiscmb.cap hookabovecmb.cap ringcmb.cap hungarumlautcmb.cap caroncmb.cap dblgravecmb.cap cedillacmb.cap ogonekcmb.cap
dieresismacron.cap dieresisacute.cap dieresiscaron.cap dieresisgrave.cap circumflexacute.cap circumflexgrave.cap circumflexhook.cap circumflextilde.cap breveacute.cap brevegrave.cap brevehook.cap brevetilde.cap circumflexbreve.cap];
@FIGURES_LINING_TABULAR = [zero one two three four five six seven eight nine];
@FIGURES_LINING_PROPORTIONAL = [zero.pnum one.pnum two.pnum three.pnum four.pnum five.pnum six.pnum seven.pnum eight.pnum nine.pnum];
@FIGURES_OLDSTYLE_PROPORTIONAL = [zero.onum one.onum two.onum three.onum four.onum five.onum six.onum seven.onum eight.onum nine.onum];
@FIGURES_OLDSTYLE_TABULAR = [zero.tnum one.tnum two.tnum three.tnum four.tnum five.tnum six.tnum seven.tnum eight.tnum nine.tnum];
@FIGURES_NUMERATOR = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr];
@FIGURES_DENOMINATOR = [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom];
@FIGURES_SUPERIOR = [zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups];
@FIGURES_INFERIOR = [zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs];
@FIGURES_SMALLCAP = [zero.sc one.sc two.sc three.sc four.sc five.sc six.sc seven.sc eight.sc nine.sc];
@PUNCTUATION_FOR_SMALL_FIGURE_STYLES = [parenleft parenright period comma];
@PUNCTUATION_NUMERATOR = [parenleft.numr parenright.numr period.numr comma.numr];
@PUNCTUATION_DENOMINATOR = [parenleft.dnom parenright.dnom period.dnom comma.dnom];
@PUNCTUATION_SUPERIOR = [parenleft.sups parenright.sups period.sups comma.sups];
@PUNCTUATION_INFERIOR = [parenleft.subs parenright.subs period.subs comma.subs];
@SS01_L_LC_DEFAULT = [l lacute lcaron ldot lslash lcommaaccent ldotbelow ldotbelowmacron llinebelow l.sups];
@SS01_L_LC_ALTERNATE = [l.alt lacute.alt lcaron.alt ldot.alt lslash.alt lcommaaccent.alt ldotbelow.alt ldotbelowmacron.alt llinebelow.alt l.supa];
@SS02_A_LC_DEFAULT = [a agrave aacute acircumflex atilde adieresis amacron abreve aring acaron adotbelow ahook acircumflexacute acircumflexgrave acircumflexhook acircumflextilde acircumflexdotbelow abreveacute abrevegrave abrevehook abrevetilde abrevedotbelow aogonek a.sups ordfeminine];
@SS02_A_LC_ALTERNATE = [a.alt agrave.alt aacute.alt acircumflex.alt atilde.alt adieresis.alt amacron.alt abreve.alt aring.alt acaron.alt adotbelow.alt ahook.alt acircumflexacute.alt acircumflexgrave.alt acircumflexhook.alt acircumflextilde.alt acircumflexdotbelow.alt abreveacute.alt abrevegrave.alt abrevehook.alt abrevetilde.alt abrevedotbelow.alt aogonek.alt a.supa ordfeminine.alt];
@SS03_G_LC_DEFAULT = [g gcircumflex gbreve gdotaccent gcommaaccent gcaron gmacron gtilde g.sups];
@SS03_G_LC_ALTERNATE = [g.alt gcircumflex.alt gbreve.alt gdotaccent.alt gcommaaccent.alt gcaron.alt gmacron.alt gtilde.alt g.supa];
@SS04_I_UC_DEFAULT = [I Igrave Iacute Icircumflex Itilde Idieresis Imacron Idotaccent Icaron Ihook Idotbelow Iogonek];
@SS04_I_UC_ALTERNATE = [I.alt Igrave.alt Iacute.alt Icircumflex.alt Itilde.alt Idieresis.alt Imacron.alt Idotaccent.alt Icaron.alt Ihook.alt Idotbelow.alt Iogonek.alt];
#--------------------------------------
languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem latn AZE; # Azeri
languagesystem latn CRT; # Crimean Tatar
languagesystem latn TRK; # Turkish
#--------------------------------------
feature aalt { # Access All Alternates
feature locl;
feature c2sc;
feature smcp;
feature numr;
feature dnom;
feature ordn;
feature sups;
feature subs;
feature sinf;
feature pnum;
feature onum;
feature case;
feature ss01;
feature ss02;
feature ss03;
feature ss04;
feature salt;
} aalt;
#--------------------------------------
#OK
feature locl { # Localized Forms
script latn;
language TRK exclude_dflt;
lookup I_TURKISH {
sub i by i.trk;
} I_TURKISH;
language AZE exclude_dflt;
lookup I_TURKISH;
language CRT exclude_dflt;
lookup I_TURKISH;
} locl;
#--------------------------------------
lookup DECOMPOSITION {
sub Ecircumflex by E circumflexcmb;
sub ecircumflex by e circumflexcmb;
sub Emacron by E macroncmb;
sub emacron by e macroncmb;
sub Ocircumflex by O circumflexcmb;
sub ocircumflex by o circumflexcmb;
sub Omacron by O macroncmb;
sub omacron by o macroncmb;
} DECOMPOSITION;
feature ccmp { # Glyph Composition / Decomposition
lookup GLYPH_DECOMPOSITION_CONTEXTUAL_2 {
#decomposes accented forms when followed by comining accent
sub [Ecircumflex ecircumflex Ocircumflex ocircumflex]' lookup DECOMPOSITION brevecmb; #Jarai language
sub [Emacron emacron Omacron omacron]' lookup DECOMPOSITION acutecmb; #Greek transliteration
} GLYPH_DECOMPOSITION_CONTEXTUAL_2;
lookup GLYPH_COMPOSITION_CONTEXTUAL {
#substitutes dotless form of iogonek when followed by combining acute: Navajo language support
sub i' ogonekcmb' acutecmb by iogonek.d;
sub iogonek' acutecmb by iogonek.d;
} GLYPH_COMPOSITION_CONTEXTUAL;
lookup MARKS_COMPOSITION {
sub dieresiscmb macroncmb by dieresismacron;
sub dieresiscmb acutecmb by dieresisacute;
sub dieresiscmb caroncmb by dieresiscaron;
sub dieresiscmb gravecmb by dieresisgrave;
sub circumflexcmb acutecmb by circumflexacute;
sub circumflexcmb gravecmb by circumflexgrave;
sub circumflexcmb hookabovecmb by circumflexhook;
sub circumflexcmb tildecmb by circumflextilde;
sub brevecmb acutecmb by breveacute;
sub brevecmb gravecmb by brevegrave;
sub brevecmb hookabovecmb by brevehook;
sub brevecmb tildecmb by brevetilde;
sub circumflexcmb brevecmb by circumflexbreve;
} MARKS_COMPOSITION;
lookup GLYPH_COMPOSITION_NONCONTEXTUAL {
sub d caroncmb by dcaron;
sub l caroncmb by lcaron;
sub t caroncmb by tcaron;
sub g tildecmb by gtilde;
sub G tildecmb by Gtilde;
sub a ogonekcmb by aogonek;
sub A ogonekcmb by Aogonek;
sub e ogonekcmb by eogonek;
sub E ogonekcmb by Eogonek;
sub i ogonekcmb by iogonek;
sub I ogonekcmb by Iogonek;
sub o ogonekcmb by oogonek;
sub O ogonekcmb by Oogonek;
sub u ogonekcmb by uogonek;
sub U ogonekcmb by Uogonek;
sub g cedillacmb by gcommaaccent; # The decomposition defined by Unicode is: 0067+0327
sub g.alt cedillacmb by gcommaaccent.alt;
} GLYPH_COMPOSITION_NONCONTEXTUAL;
lookup MAJUCSULE_ACCENTS_CMB_CONTEXT { # substitutes combining marks for miniscules with forms for majuscules
sub @LETTERS_MAJUSCULE_LATIN_ALL @MARKS_CMB' by @MARKS_CMB_CASE;
} MAJUCSULE_ACCENTS_CMB_CONTEXT;
} ccmp;
#--------------------------------------
#OK
feature c2sc { #UC-->SC
sub @LETTERS_MAJUSCULE_LATIN_BASIC by @LETTERS_SMALLCAP_LATIN_BASIC;
sub @LETTERS_MAJUSCULE_LATIN_ACCENTED by @LETTERS_SMALLCAP_LATIN_ACCENTED;
sub @LETTERS_MAJUSCULE_LATIN_ADDL by @LETTERS_SMALLCAP_LATIN_ADDL;
sub [Idotaccent Germandbls] by [Idotaccent.sc Germandbls.sc];
lookup SORTS_SMALLCAP {
sub @FIGURES_LINING_TABULAR by @FIGURES_SMALLCAP;
sub [ampersand hyphen endash emdash] by [ampersand.sc hyphen.sc endash.sc emdash.sc];
} SORTS_SMALLCAP;
} c2sc;
#--------------------------------------
#OK
feature smcp { #LC-->SC
sub @LETTERS_MINISCULE_LATIN_BASIC by @LETTERS_SMALLCAP_LATIN_BASIC;
sub @LETTERS_MINISCULE_LATIN_ACCENTED by @LETTERS_SMALLCAP_LATIN_ACCENTED;
sub @LETTERS_MINISCULE_LATIN_ADDL by @LETTERS_SMALLCAP_LATIN_ADDL;
sub [i.trk germandbls iogonek.d] by [Idotaccent.sc Germandbls.sc Iogonek.sc];
lookup SORTS_SMALLCAP;
} smcp;
#--------------------------------------
feature numr { # Numerators
lookup NUMR {
sub @FIGURES_LINING_TABULAR by @FIGURES_NUMERATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_NUMERATOR;
} NUMR;
} numr;
#--------------------------------------
feature dnom { # Denominators
sub @FIGURES_LINING_TABULAR by @FIGURES_DENOMINATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_DENOMINATOR;
} dnom;
#--------------------------------------
feature frac { # Fractions
@SPACE_DEFAULT = [space nbspace];
@SPACE_FRAC = [space.frac nbspace.frac];
@SLASH = [slash.frac fraction divisionslash];
lookup NUMR;
sub slash by slash.frac;
sub @FIGURES_NUMERATOR @SPACE_DEFAULT' by @SPACE_FRAC;
sub [fraction divisionslash slash.frac @FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR] [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
sub @FIGURES_DENOMINATOR @SPACE_FRAC [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
} frac;
#--------------------------------------
feature ordn {
lookup SUPERIOR_LETTERS_MINISCULE {
sub @LETTERS_MINISCULE_LATIN_BASIC by @LETTERS_MINISCULE_LATIN_SUPERIOR;
sub [egrave eacute schwa] by [egrave.sups eacute.sups schwa.sups];
} SUPERIOR_LETTERS_MINISCULE;
} ordn;
#--------------------------------------
feature sups { # Superscript
lookup SUPERIOR_LETTERS_MINISCULE;
lookup SUPERIOR_LETTERS_MAJUSCULE {
sub @LETTERS_MAJUSCULE_LATIN_BASIC by @LETTERS_MAJUSCULE_LATIN_SUPERIOR;
} SUPERIOR_LETTERS_MAJUSCULE;
lookup SUPERIOR_NUMERALS_SORTS {
sub @FIGURES_LINING_TABULAR by @FIGURES_SUPERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_SUPERIOR;
} SUPERIOR_NUMERALS_SORTS;
lookup SUPERIOR_SORTS {
sub [colon hyphen endash emdash] by [colon.sups hyphen.sups endash.sups emdash.sups];
} SUPERIOR_SORTS;
} sups;
#--------------------------------------
feature subs { # Subscript
lookup INFERIOR {
sub @FIGURES_LINING_TABULAR by @FIGURES_INFERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_INFERIOR;
} INFERIOR;
} subs;
#--------------------------------------
feature sinf { # Scientific Inferiors
lookup INFERIOR;
} sinf;
#--------------------------------------
feature pnum { # Proportional Figures
sub @FIGURES_LINING_TABULAR by @FIGURES_LINING_PROPORTIONAL;
sub @FIGURES_OLDSTYLE_TABULAR by @FIGURES_OLDSTYLE_PROPORTIONAL;
} pnum;
#--------------------------------------
feature onum { # Oldstyle (Text) Figures
sub @FIGURES_LINING_TABULAR by @FIGURES_OLDSTYLE_TABULAR;
sub @FIGURES_LINING_PROPORTIONAL by @FIGURES_OLDSTYLE_PROPORTIONAL;
} onum;
#--------------------------------------
feature ss05 { # Stylistic Set 4 (alternate I)
featureNames {
name "Slashed zero"; # Windows English
name 1 0 0 "Slashed zero"; # Mac English
};
sub zero by zero.0s;
sub zero.pnum by zero.0ps;
} ss05;
#--------------------------------------
#OK
feature zero {
sub zero by zero.0;
sub zero.pnum by zero.0p;
} zero;
#--------------------------------------
feature case { # Case-Sensitive Forms
sub @MARKS_CMB by @MARKS_CMB_CASE;
sub at by at.case;
} case;
#--------------------------------------
feature ss01 { # Stylistic Set 1 (alternate l)
featureNames {
name "Straight l"; # Windows English
name 1 0 0 "Straight l"; # Mac English
};
lookup L_ALTS {
sub @SS01_L_LC_DEFAULT by @SS01_L_LC_ALTERNATE;
} L_ALTS;
} ss01;
#--------------------------------------
feature ss02 { # Stylistic Set 2 (alternate a)
featureNames {
name "Alternate a"; # Windows English
name 1 0 0 "Alternate a"; # Mac English
};
lookup A_ALTS {
sub @SS02_A_LC_DEFAULT by @SS02_A_LC_ALTERNATE;
} A_ALTS;
} ss02;
#--------------------------------------
feature ss03 { # Stylistic Set 3 (alternate g)
featureNames {
name "Alternate g"; # Windows English
name 1 0 0 "Alternate g"; # Mac English
};
lookup G_ALTS {
sub @SS03_G_LC_DEFAULT by @SS03_G_LC_ALTERNATE;
} G_ALTS;
} ss03;
#--------------------------------------
feature ss04 { # Stylistic Set 4 (alternate I)
featureNames {
name "Serifed I"; # Windows English
name 1 0 0 "Serifed I"; # Mac English
};
lookup I_ALTS {
sub @SS04_I_UC_DEFAULT by @SS04_I_UC_ALTERNATE;
} I_ALTS;
} ss04;
#--------------------------------------
feature salt { # Stylistic Alternates
lookup A_ALTS;
lookup G_ALTS;
lookup I_ALTS;
lookup L_ALTS;
} salt;
#--------------------------------------
feature liga { # Standard Ligatures
sub f f by f_f;
sub f t by f_t;
} liga;
#-------------------------------------------
feature size {
parameters 10.0 0; # design size, subfamily
} size;