[cantarell-fonts/ufo-conversion] Share feature file among UFOs
- From: Nikolaus Waxweiler <nwaxweiler src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cantarell-fonts/ufo-conversion] Share feature file among UFOs
- Date: Sat, 9 Feb 2019 16:52:36 +0000 (UTC)
commit 02dfbaf4cfb20b0e1dcfb3f22d04ccf47b85e827
Author: Nikolaus Waxweiler <madigens gmail com>
Date: Sat Feb 9 14:23:58 2019 +0000
Share feature file among UFOs
src/Cantarell-Bold.ufo/features.fea | 505 +--------------------------------
src/Cantarell-Light.ufo/features.fea | 505 +--------------------------------
src/Cantarell-Regular.ufo/features.fea | 505 +--------------------------------
src/family.fea | 504 ++++++++++++++++++++++++++++++++
4 files changed, 507 insertions(+), 1512 deletions(-)
---
diff --git a/src/Cantarell-Bold.ufo/features.fea b/src/Cantarell-Bold.ufo/features.fea
index 7a98cf78..5e62ed1b 100644
--- a/src/Cantarell-Bold.ufo/features.fea
+++ b/src/Cantarell-Bold.ufo/features.fea
@@ -1,504 +1 @@
-# automatic
-@Uppercase = [ A Aacute Abreve Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acaron
Acircumflex Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde
Adblgrave Adieresis Adotbelow Agrave Ahookabove Ainvertedbreve Amacron Aogonek Aring Aringacute Atilde AE
AEacute B C Cacute Ccaron Ccedilla Ccedillaacute Ccircumflex Cdotaccent D DZcaron Eth Dcaron Dcroat Ddotbelow
Dlinebelow Dzcaron E Eacute Ebreve Ecaron Ecedillabreve Ecircumflex Ecircumflexacute Ecircumflexdotbelow
Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edblgrave Edieresis Edotaccent Edotbelow Egrave
Ehookabove Einvertedbreve Emacron Emacronacute Emacrongrave Eogonek Etilde F G Gbreve Gcaron Gcircumflex
Gcommaaccent Gdotaccent Gmacron H Hbar Hbrevebelow Hcircumflex Hdotbelow I Iacute Ibreve Icaron Icircumflex
Idblgrave Idieresis Idieresisacute Idotaccent Idotbelow Igrave Ihookabove Iinvertedbreve Imacron Iogonek
Itilde J Jacute Jcircumflex K Kacute K
commaacc
ent L LJ Lacute Lcaron Lcommaaccent Ldot Ldotbelow Lj Llinebelow Lslash M Mdotbelow N NJ Nacute Ncaron
Ncommaaccent Ndotaccent Ndotbelow Eng Nj Nlinebelow Ntilde O Oacute Obreve Ocaron Ocircumflex
Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Odblgrave
Odieresis Odieresismacron Odotaccentmacron Odotbelow Ograve Ohookabove Ohorn Ohornacute Ohorndotbelow
Ohorngrave Ohornhookabove Ohorntilde Ohungarumlaut Oinvertedbreve Omacron Omacronacute Omacrongrave Oogonek
Oslash Oslashacute Otilde Otildeacute Otildedieresis Otildemacron OE P Thorn Q R Racute Rcaron Rcommaaccent
Rdblgrave Rdotbelow Rinvertedbreve Rlinebelow S Sacute Sacutedotaccent Saltillo Scaron Scarondotaccent
Scedilla Scircumflex Scommaaccent Sdotaccent Sdotbelow Sdotbelowdotaccent Germandbls Schwa T Tbar Tcaron
Tcedilla Tcommaaccent Tdotbelow Tlinebelow U Uacute Ubreve Ucaron Ucircumflex Udblgrave Udieresis
Udieresisacute Udieresiscaron Udieresisgrave Udieresismacron Udotb
elow Ugr
ave Uhookabove Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Uhungarumlaut
Uinvertedbreve Umacron Umacrondieresis Uogonek Uring Utilde Utildeacute V W Wacute Wcircumflex Wdieresis
Wgrave X Y Yacute Ycircumflex Ydieresis Ydotaccent Ydotbelow Ygrave Yhookabove Ymacron Ytilde Z Zacute Zcaron
Zdotaccent Zdotbelow A-cy Be-cy Ve-cy Ge-cy Gje-cy Gheupturn-cy De-cy Ie-cy Iegrave-cy Io-cy Zhe-cy Ze-cy
Ii-cy Iishort-cy Iigrave-cy Ka-cy Kje-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ushort-cy Ef-cy
Ha-cy Che-cy Tse-cy Sha-cy Shcha-cy Dzhe-cy Softsign-cy Hardsign-cy Yeru-cy Lje-cy Nje-cy Dze-cy E-cy
Ereversed-cy I-cy Yi-cy Je-cy Tshe-cy Iu-cy Ia-cy Dje-cy Yat-cy Yusbig-cy Fita-cy Izhitsa-cy Ghestroke-cy
Ghemiddlehook-cy Zhedescender-cy Zedescender-cy Kadescender-cy Kaverticalstroke-cy Kabashkir-cy
Endescender-cy Enghe-cy Esdescender-cy Ustrait-cy Ustraitstroke-cy Hadescender-cy Chedescender-cy
Cheverticalstroke-cy Shha-cy Palochka-cy Zhebreve-cy Chekhak
assian-c
y Abreve-cy Adieresis-cy Aie-cy Iebreve-cy Schwa-cy Zhedieresis-cy Zedieresis-cy Imacron-cy Idieresis-cy
Odieresis-cy Obarred-cy Umacron-cy Udieresis-cy Uhungarumlaut-cy Chedieresis-cy Gedescender-cy
Yerudieresis-cy Qa-cy We-cy ];
-
-# Prefix: Languagesystems
-# automatic
-languagesystem DFLT dflt;
-languagesystem latn dflt;
-languagesystem latn NLD;
-languagesystem latn CAT;
-languagesystem latn ROM;
-languagesystem latn MOL;
-languagesystem latn KAZ;
-languagesystem latn TAT;
-languagesystem latn TRK;
-languagesystem latn CRT;
-languagesystem latn AZE;
-
-
-feature aalt {
-# automatic
-feature ccmp;
-feature locl;
-feature subs;
-feature sinf;
-feature sups;
-feature numr;
-feature dnom;
-feature frac;
-feature ordn;
-feature lnum;
-feature pnum;
-feature tnum;
-feature onum;
-feature case;
-feature zero;
-feature salt;
-feature ss01;
-
-} aalt;
-
-feature ccmp {
-# automatic
-lookup ccmp_Other_1 {
- @CombiningTopAccents = [acutecomb brevecomb breveinvertedcomb caroncomb circumflexcomb
commaturnedabovecomb dblgravecomb dieresiscomb dotaccentcomb gravecomb hookabovecomb hungarumlautcomb
macroncomb ringcomb tildecomb verticallineabovecomb];
- @CombiningNonTopAccents = [brevebelowcomb cedillacomb dieresisbelowcomb dotbelowcomb macronbelowcomb
ogonekcomb verticallinebelowcomb horncomb slashlongcomb slashshortcomb strokelongcomb strokeshortcomb];
- sub [i j]' @CombiningTopAccents by [idotless jdotless];
- sub [i j]' @CombiningNonTopAccents @CombiningTopAccents by [idotless jdotless];
- @Markscomb = [dieresiscomb dotaccentcomb gravecomb acutecomb hungarumlautcomb circumflexcomb
caroncomb brevecomb ringcomb ringcomb_acutecomb tildecomb macroncomb hookabovecomb dblgravecomb
breveinvertedcomb strokeshortcomb slashshortcomb slashlongcomb macroncomb.narrow ogonekcomb.tall brevecomb-cy
descender-cy brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb
circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb];
- @MarkscombCase = [dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case
hungarumlautcomb.case circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case
tildecomb.case macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case
strokeshortcomb.case slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall.case
brevecomb-cy.case descender-cy.case brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case];
- sub @Markscomb @Markscomb' by @MarkscombCase;
- sub @Uppercase @Markscomb' by @MarkscombCase;
-} ccmp_Other_1;
-
-lookup ccmp_Other_2 {
- sub @Markscomb' @MarkscombCase by @MarkscombCase;
- sub @MarkscombCase @Markscomb' by @MarkscombCase;
-} ccmp_Other_2;
-
-lookup ccmp_Other_3 {
- lookupflag 0;
- sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
- sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
- sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
- sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
- sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
- sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
- sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
- sub macroncomb acutecomb by macroncomb_acutecomb;
- sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
- sub macroncomb gravecomb by macroncomb_gravecomb;
- sub ringcomb acutecomb by ringcomb_acutecomb;
- sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
- sub tildecomb acutecomb by tildecomb_acutecomb;
- sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
- sub tildecomb macroncomb by tildecomb_macroncomb;
-} ccmp_Other_3;
-
-lookup ccmp_Other_4 {
- lookupflag 0;
- sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
- sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
- sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
- sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
- sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
- sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
- sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
- sub macroncomb acutecomb by macroncomb_acutecomb;
- sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
- sub macroncomb gravecomb by macroncomb_gravecomb;
- sub ringcomb acutecomb by ringcomb_acutecomb;
- sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
- sub tildecomb acutecomb by tildecomb_acutecomb;
- sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
- sub tildecomb macroncomb by tildecomb_macroncomb;
-} ccmp_Other_4;
-
-lookup ccmp_latn_1 {
- lookupflag 0;
- sub brevecomb acutecomb by brevecomb_acutecomb;
- sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
- sub brevecomb gravecomb by brevecomb_gravecomb;
- sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
- sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
- sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
- sub brevecomb tildecomb by brevecomb_tildecomb;
- sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
- sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
- sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
- sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
- sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
- sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
- sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
- sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
- sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
-} ccmp_latn_1;
-
-lookup ccmp_latn_2 {
- lookupflag 0;
- sub brevecomb acutecomb by brevecomb_acutecomb;
- sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
- sub brevecomb gravecomb by brevecomb_gravecomb;
- sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
- sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
- sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
- sub brevecomb tildecomb by brevecomb_tildecomb;
- sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
- sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
- sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
- sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
- sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
- sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
- sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
- sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
- sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
-} ccmp_latn_2;
-
-script latn;
-
-} ccmp;
-
-feature locl {
-# automatic
-script latn;
-language NLD;
-sub iacute j' by jacute;
-sub Iacute J' by Jacute;
-language CAT;
-sub l periodcentered' l by periodcentered.loclCAT;
-sub L periodcentered' L by periodcentered.loclCAT.case;
-language ROM;
-sub Scedilla by Scommaaccent;
-sub scedilla by scommaaccent;
-sub Tcedilla by Tcommaaccent;
-sub tcedilla by tcommaaccent;
-language MOL;
-sub Scedilla by Scommaaccent;
-sub scedilla by scommaaccent;
-sub Tcedilla by Tcommaaccent;
-sub tcedilla by tcommaaccent;
-language KAZ;
-sub i by idotaccent;
-language TAT;
-sub i by idotaccent;
-language TRK;
-sub i by idotaccent;
-language CRT;
-sub i by idotaccent;
-language AZE;
-sub i by idotaccent;
-
-} locl;
-
-feature subs {
-# automatic
-sub zero by zeroinferior;
-sub one by oneinferior;
-sub two by twoinferior;
-sub three by threeinferior;
-sub four by fourinferior;
-sub five by fiveinferior;
-sub six by sixinferior;
-sub seven by seveninferior;
-sub eight by eightinferior;
-sub nine by nineinferior;
-
-} subs;
-
-feature sinf {
-# automatic
-sub zero by zero.subs;
-sub one by one.subs;
-sub two by two.subs;
-sub three by three.subs;
-sub four by four.subs;
-sub five by five.subs;
-sub six by six.subs;
-sub seven by seven.subs;
-sub eight by eight.subs;
-sub nine by nine.subs;
-
-} sinf;
-
-feature sups {
-# automatic
-sub zero by zerosuperior;
-sub one by onesuperior;
-sub two by twosuperior;
-sub three by threesuperior;
-sub four by foursuperior;
-sub five by fivesuperior;
-sub six by sixsuperior;
-sub seven by sevensuperior;
-sub eight by eightsuperior;
-sub nine by ninesuperior;
-
-} sups;
-
-feature numr {
-# automatic
-sub zero by zero.numr;
-sub one by one.numr;
-sub two by two.numr;
-sub three by three.numr;
-sub four by four.numr;
-sub five by five.numr;
-sub six by six.numr;
-sub seven by seven.numr;
-sub eight by eight.numr;
-sub nine by nine.numr;
-
-} numr;
-
-feature dnom {
-# automatic
-sub zero by zero.dnom;
-sub one by one.dnom;
-sub two by two.dnom;
-sub three by three.dnom;
-sub four by four.dnom;
-sub five by five.dnom;
-sub six by six.dnom;
-sub seven by seven.dnom;
-sub eight by eight.dnom;
-sub nine by nine.dnom;
-
-} dnom;
-
-feature frac {
-# automatic
-lookup FRAC {
- sub slash by fraction;
-} FRAC;
-lookup UP {
- sub [zero one two three four five six seven eight nine] by [zero.numr one.numr two.numr three.numr
four.numr five.numr six.numr seven.numr eight.numr nine.numr];
-} UP;
-lookup DOWN {
- sub fraction [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr
eight.numr nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom
eight.dnom nine.dnom];
- sub [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom] [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr
nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom];
-} DOWN;
-
-} frac;
-
-feature ordn {
-# automatic
-sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine;
-sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine;
-sub N o period by numero;
-
-} ordn;
-
-feature lnum {
-# automatic
-sub zero.osf by zero;
-sub one.osf by one;
-sub two.osf by two;
-sub three.osf by three;
-sub four.osf by four;
-sub five.osf by five;
-sub six.osf by six;
-sub seven.osf by seven;
-sub eight.osf by eight;
-sub nine.osf by nine;
-
-} lnum;
-
-feature pnum {
-# automatic
-sub zero.tf by zero;
-sub one.tf by one;
-sub two.tf by two;
-sub three.tf by three;
-sub four.tf by four;
-sub five.tf by five;
-sub six.tf by six;
-sub seven.tf by seven;
-sub eight.tf by eight;
-sub nine.tf by nine;
-sub bulletoperator.tf by bulletoperator;
-sub commercialMinusSign.tf by commercialMinusSign;
-sub divisionslash.tf by divisionslash;
-sub equivalence.tf by equivalence;
-sub notidentical.tf by notidentical;
-sub plus.tf by plus;
-sub minus.tf by minus;
-sub multiply.tf by multiply;
-sub divide.tf by divide;
-sub equal.tf by equal;
-sub notequal.tf by notequal;
-sub greater.tf by greater;
-sub less.tf by less;
-sub greaterequal.tf by greaterequal;
-sub lessequal.tf by lessequal;
-sub plusminus.tf by plusminus;
-sub approxequal.tf by approxequal;
-sub logicalnot.tf by logicalnot;
-sub zero.tosf by zero.osf;
-sub one.tosf by one.osf;
-sub two.tosf by two.osf;
-sub three.tosf by three.osf;
-sub four.tosf by four.osf;
-sub five.tosf by five.osf;
-sub six.tosf by six.osf;
-sub seven.tosf by seven.osf;
-sub eight.tosf by eight.osf;
-sub nine.tosf by nine.osf;
-
-} pnum;
-
-feature tnum {
-# automatic
-sub zero by zero.tf;
-sub one by one.tf;
-sub two by two.tf;
-sub three by three.tf;
-sub four by four.tf;
-sub five by five.tf;
-sub six by six.tf;
-sub seven by seven.tf;
-sub eight by eight.tf;
-sub nine by nine.tf;
-sub bulletoperator by bulletoperator.tf;
-sub commercialMinusSign by commercialMinusSign.tf;
-sub divisionslash by divisionslash.tf;
-sub equivalence by equivalence.tf;
-sub notidentical by notidentical.tf;
-sub plus by plus.tf;
-sub minus by minus.tf;
-sub multiply by multiply.tf;
-sub divide by divide.tf;
-sub equal by equal.tf;
-sub notequal by notequal.tf;
-sub greater by greater.tf;
-sub less by less.tf;
-sub greaterequal by greaterequal.tf;
-sub lessequal by lessequal.tf;
-sub plusminus by plusminus.tf;
-sub approxequal by approxequal.tf;
-sub logicalnot by logicalnot.tf;
-sub zero.osf by zero.tosf;
-sub one.osf by one.tosf;
-sub two.osf by two.tosf;
-sub three.osf by three.tosf;
-sub four.osf by four.tosf;
-sub five.osf by five.tosf;
-sub six.osf by six.tosf;
-sub seven.osf by seven.tosf;
-sub eight.osf by eight.tosf;
-sub nine.osf by nine.tosf;
-
-} tnum;
-
-feature onum {
-# automatic
-sub zero.tf by zero.tosf;
-sub one.tf by one.tosf;
-sub two.tf by two.tosf;
-sub three.tf by three.tosf;
-sub four.tf by four.tosf;
-sub five.tf by five.tosf;
-sub six.tf by six.tosf;
-sub seven.tf by seven.tosf;
-sub eight.tf by eight.tosf;
-sub nine.tf by nine.tosf;
-sub zero by zero.osf;
-sub one by one.osf;
-sub two by two.osf;
-sub three by three.osf;
-sub four by four.osf;
-sub five by five.osf;
-sub six by six.osf;
-sub seven by seven.osf;
-sub eight by eight.osf;
-sub nine by nine.osf;
-
-} onum;
-
-feature case {
-# automatic
-sub periodcentered.loclCAT by periodcentered.loclCAT.case;
-sub dieresiscomb by dieresiscomb.case;
-sub dotaccentcomb by dotaccentcomb.case;
-sub gravecomb by gravecomb.case;
-sub acutecomb by acutecomb.case;
-sub hungarumlautcomb by hungarumlautcomb.case;
-sub circumflexcomb by circumflexcomb.case;
-sub caroncomb by caroncomb.case;
-sub brevecomb by brevecomb.case;
-sub ringcomb by ringcomb.case;
-sub ringcomb_acutecomb by ringcomb_acutecomb.case;
-sub tildecomb by tildecomb.case;
-sub macroncomb by macroncomb.case;
-sub hookabovecomb by hookabovecomb.case;
-sub dblgravecomb by dblgravecomb.case;
-sub breveinvertedcomb by breveinvertedcomb.case;
-sub strokeshortcomb by strokeshortcomb.case;
-sub slashshortcomb by slashshortcomb.case;
-sub slashlongcomb by slashlongcomb.case;
-sub macroncomb.narrow by macroncomb.narrow.case;
-sub ogonekcomb.tall by ogonekcomb.tall.case;
-sub brevecomb-cy by brevecomb-cy.case;
-sub descender-cy by descender-cy.case;
-sub brevecomb_acutecomb by brevecomb_acutecomb.case;
-sub brevecomb_gravecomb by brevecomb_gravecomb.case;
-sub brevecomb_hookabovecomb by brevecomb_hookabovecomb.case;
-sub brevecomb_tildecomb by brevecomb_tildecomb.case;
-sub circumflexcomb_acutecomb by circumflexcomb_acutecomb.case;
-sub circumflexcomb_gravecomb by circumflexcomb_gravecomb.case;
-sub circumflexcomb_hookabovecomb by circumflexcomb_hookabovecomb.case;
-sub circumflexcomb_tildecomb by circumflexcomb_tildecomb.case;
-sub zero.osf by zero.lf;
-sub one.osf by one.lf;
-sub two.osf by two.lf;
-sub three.osf by three.lf;
-sub four.osf by four.lf;
-sub five.osf by five.lf;
-sub six.osf by six.lf;
-sub seven.osf by seven.lf;
-sub eight.osf by eight.lf;
-sub nine.osf by nine.lf;
-sub zero.tf by zero.lf;
-sub one.tf by one.lf;
-sub two.tf by two.lf;
-sub three.tf by three.lf;
-sub four.tf by four.lf;
-sub five.tf by five.lf;
-sub six.tf by six.lf;
-sub seven.tf by seven.lf;
-sub eight.tf by eight.lf;
-sub nine.tf by nine.lf;
-sub zero.tosf by zero.lf;
-sub one.tosf by one.lf;
-sub two.tosf by two.lf;
-sub three.tosf by three.lf;
-sub four.tosf by four.lf;
-sub five.tosf by five.lf;
-sub six.tosf by six.lf;
-sub seven.tosf by seven.lf;
-sub eight.tosf by eight.lf;
-sub nine.tosf by nine.lf;
-
-} case;
-
-feature liga {
-# automatic
-sub f f i by f_f_i;
-sub f f l by f_f_l;
-sub f f by f_f;
-sub f i by fi;
-sub f l by fl;
-
-} liga;
-
-feature zero {
-# automatic
-sub zero.lf by zero.lf.zero;
-sub zero.osf by zero.osf.zero;
-sub zero.tf by zero.tf.zero;
-sub zero.tosf by zero.tosf.zero;
-sub zero by zero.zero;
-
-} zero;
-
-feature salt {
-# automatic
-sub six by six.ss01;
-sub nine by nine.ss01;
-
-} salt;
-
-feature ss01 {
-# automatic
-sub six by six.ss01;
-sub nine by nine.ss01;
-
-} ss01;
-
-table GDEF {
- # automatic
- GlyphClassDef
- [A AE B C D E Eogonek F G H I J K L M N O OE P Q R S Schwa T U V W X Y Z a ae b c d e f g h i idotless
jdotless k l m n o oslash oe p q r s t u v w x y z Ge-cy Ie-cy Zhe-cy Ze-cy Ii-cy Ka-cy En-cy O-cy Pe-cy
Es-cy Te-cy U-cy Ha-cy Che-cy Hardsign-cy Yeru-cy Ereversed-cy Iu-cy Ia-cy Ustrait-cy a-cy ge-cy ie-cy zhe-cy
ze-cy ii-cy ka-cy en-cy o-cy pe-cy es-cy te-cy u-cy ha-cy che-cy yeru-cy e-cy ereversed-cy tshe-cy iu-cy
ia-cy ustrait-cy zero.lf zero.osf zero.tf zero.tosf zero.dnom euro peso], # Base
- , # Liga
- [dieresiscomb dieresiscomb_gravecomb dieresiscomb_acutecomb dotaccentcomb gravecomb acutecomb
acutecomb_dotaccentcomb hungarumlautcomb caroncomb.alt circumflexcomb caroncomb brevecomb ringcomb
ringcomb_acutecomb tildecomb tildecomb_dieresiscomb tildecomb_acutecomb tildecomb_macroncomb macroncomb
macroncomb_gravecomb macroncomb_acutecomb hookabovecomb verticallineabovecomb dblgravecomb breveinvertedcomb
commaturnedabovecomb horncomb dotbelowcomb dieresisbelowcomb commaaccentcomb cedillacomb ogonekcomb
verticallinebelowcomb brevebelowcomb macronbelowcomb strokeshortcomb strokelongcomb slashshortcomb
slashlongcomb dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case hungarumlautcomb.case
circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case tildecomb.case
macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case strokeshortcomb.case
slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall
.case di
eresiscomb.loclVIET dotaccentcomb.loclVIET gravecomb.loclVIET acutecomb.loclVIET circumflexcomb.loclVIET
caroncomb.loclVIET brevecomb.loclVIET tildecomb.loclVIET macroncomb.loclVIET hookabovecomb.loclVIET
macroncomb.narrow ogonekcomb.narrow macronbelowcomb.narrow ogonekcomb.tall brevecomb-cy descender-cy
brevecomb-cy.case descender-cy.case descender-cy.strait brevecomb_acutecomb brevecomb_gravecomb
brevecomb_hookabovecomb brevecomb_tildecomb circumflexcomb_acutecomb circumflexcomb_gravecomb
circumflexcomb_hookabovecomb circumflexcomb_tildecomb brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case], # Mark
- ;
-} GDEF;
+include(family.fea)
diff --git a/src/Cantarell-Light.ufo/features.fea b/src/Cantarell-Light.ufo/features.fea
index 7a98cf78..5e62ed1b 100644
--- a/src/Cantarell-Light.ufo/features.fea
+++ b/src/Cantarell-Light.ufo/features.fea
@@ -1,504 +1 @@
-# automatic
-@Uppercase = [ A Aacute Abreve Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acaron
Acircumflex Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde
Adblgrave Adieresis Adotbelow Agrave Ahookabove Ainvertedbreve Amacron Aogonek Aring Aringacute Atilde AE
AEacute B C Cacute Ccaron Ccedilla Ccedillaacute Ccircumflex Cdotaccent D DZcaron Eth Dcaron Dcroat Ddotbelow
Dlinebelow Dzcaron E Eacute Ebreve Ecaron Ecedillabreve Ecircumflex Ecircumflexacute Ecircumflexdotbelow
Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edblgrave Edieresis Edotaccent Edotbelow Egrave
Ehookabove Einvertedbreve Emacron Emacronacute Emacrongrave Eogonek Etilde F G Gbreve Gcaron Gcircumflex
Gcommaaccent Gdotaccent Gmacron H Hbar Hbrevebelow Hcircumflex Hdotbelow I Iacute Ibreve Icaron Icircumflex
Idblgrave Idieresis Idieresisacute Idotaccent Idotbelow Igrave Ihookabove Iinvertedbreve Imacron Iogonek
Itilde J Jacute Jcircumflex K Kacute K
commaacc
ent L LJ Lacute Lcaron Lcommaaccent Ldot Ldotbelow Lj Llinebelow Lslash M Mdotbelow N NJ Nacute Ncaron
Ncommaaccent Ndotaccent Ndotbelow Eng Nj Nlinebelow Ntilde O Oacute Obreve Ocaron Ocircumflex
Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Odblgrave
Odieresis Odieresismacron Odotaccentmacron Odotbelow Ograve Ohookabove Ohorn Ohornacute Ohorndotbelow
Ohorngrave Ohornhookabove Ohorntilde Ohungarumlaut Oinvertedbreve Omacron Omacronacute Omacrongrave Oogonek
Oslash Oslashacute Otilde Otildeacute Otildedieresis Otildemacron OE P Thorn Q R Racute Rcaron Rcommaaccent
Rdblgrave Rdotbelow Rinvertedbreve Rlinebelow S Sacute Sacutedotaccent Saltillo Scaron Scarondotaccent
Scedilla Scircumflex Scommaaccent Sdotaccent Sdotbelow Sdotbelowdotaccent Germandbls Schwa T Tbar Tcaron
Tcedilla Tcommaaccent Tdotbelow Tlinebelow U Uacute Ubreve Ucaron Ucircumflex Udblgrave Udieresis
Udieresisacute Udieresiscaron Udieresisgrave Udieresismacron Udotb
elow Ugr
ave Uhookabove Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Uhungarumlaut
Uinvertedbreve Umacron Umacrondieresis Uogonek Uring Utilde Utildeacute V W Wacute Wcircumflex Wdieresis
Wgrave X Y Yacute Ycircumflex Ydieresis Ydotaccent Ydotbelow Ygrave Yhookabove Ymacron Ytilde Z Zacute Zcaron
Zdotaccent Zdotbelow A-cy Be-cy Ve-cy Ge-cy Gje-cy Gheupturn-cy De-cy Ie-cy Iegrave-cy Io-cy Zhe-cy Ze-cy
Ii-cy Iishort-cy Iigrave-cy Ka-cy Kje-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ushort-cy Ef-cy
Ha-cy Che-cy Tse-cy Sha-cy Shcha-cy Dzhe-cy Softsign-cy Hardsign-cy Yeru-cy Lje-cy Nje-cy Dze-cy E-cy
Ereversed-cy I-cy Yi-cy Je-cy Tshe-cy Iu-cy Ia-cy Dje-cy Yat-cy Yusbig-cy Fita-cy Izhitsa-cy Ghestroke-cy
Ghemiddlehook-cy Zhedescender-cy Zedescender-cy Kadescender-cy Kaverticalstroke-cy Kabashkir-cy
Endescender-cy Enghe-cy Esdescender-cy Ustrait-cy Ustraitstroke-cy Hadescender-cy Chedescender-cy
Cheverticalstroke-cy Shha-cy Palochka-cy Zhebreve-cy Chekhak
assian-c
y Abreve-cy Adieresis-cy Aie-cy Iebreve-cy Schwa-cy Zhedieresis-cy Zedieresis-cy Imacron-cy Idieresis-cy
Odieresis-cy Obarred-cy Umacron-cy Udieresis-cy Uhungarumlaut-cy Chedieresis-cy Gedescender-cy
Yerudieresis-cy Qa-cy We-cy ];
-
-# Prefix: Languagesystems
-# automatic
-languagesystem DFLT dflt;
-languagesystem latn dflt;
-languagesystem latn NLD;
-languagesystem latn CAT;
-languagesystem latn ROM;
-languagesystem latn MOL;
-languagesystem latn KAZ;
-languagesystem latn TAT;
-languagesystem latn TRK;
-languagesystem latn CRT;
-languagesystem latn AZE;
-
-
-feature aalt {
-# automatic
-feature ccmp;
-feature locl;
-feature subs;
-feature sinf;
-feature sups;
-feature numr;
-feature dnom;
-feature frac;
-feature ordn;
-feature lnum;
-feature pnum;
-feature tnum;
-feature onum;
-feature case;
-feature zero;
-feature salt;
-feature ss01;
-
-} aalt;
-
-feature ccmp {
-# automatic
-lookup ccmp_Other_1 {
- @CombiningTopAccents = [acutecomb brevecomb breveinvertedcomb caroncomb circumflexcomb
commaturnedabovecomb dblgravecomb dieresiscomb dotaccentcomb gravecomb hookabovecomb hungarumlautcomb
macroncomb ringcomb tildecomb verticallineabovecomb];
- @CombiningNonTopAccents = [brevebelowcomb cedillacomb dieresisbelowcomb dotbelowcomb macronbelowcomb
ogonekcomb verticallinebelowcomb horncomb slashlongcomb slashshortcomb strokelongcomb strokeshortcomb];
- sub [i j]' @CombiningTopAccents by [idotless jdotless];
- sub [i j]' @CombiningNonTopAccents @CombiningTopAccents by [idotless jdotless];
- @Markscomb = [dieresiscomb dotaccentcomb gravecomb acutecomb hungarumlautcomb circumflexcomb
caroncomb brevecomb ringcomb ringcomb_acutecomb tildecomb macroncomb hookabovecomb dblgravecomb
breveinvertedcomb strokeshortcomb slashshortcomb slashlongcomb macroncomb.narrow ogonekcomb.tall brevecomb-cy
descender-cy brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb
circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb];
- @MarkscombCase = [dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case
hungarumlautcomb.case circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case
tildecomb.case macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case
strokeshortcomb.case slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall.case
brevecomb-cy.case descender-cy.case brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case];
- sub @Markscomb @Markscomb' by @MarkscombCase;
- sub @Uppercase @Markscomb' by @MarkscombCase;
-} ccmp_Other_1;
-
-lookup ccmp_Other_2 {
- sub @Markscomb' @MarkscombCase by @MarkscombCase;
- sub @MarkscombCase @Markscomb' by @MarkscombCase;
-} ccmp_Other_2;
-
-lookup ccmp_Other_3 {
- lookupflag 0;
- sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
- sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
- sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
- sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
- sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
- sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
- sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
- sub macroncomb acutecomb by macroncomb_acutecomb;
- sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
- sub macroncomb gravecomb by macroncomb_gravecomb;
- sub ringcomb acutecomb by ringcomb_acutecomb;
- sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
- sub tildecomb acutecomb by tildecomb_acutecomb;
- sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
- sub tildecomb macroncomb by tildecomb_macroncomb;
-} ccmp_Other_3;
-
-lookup ccmp_Other_4 {
- lookupflag 0;
- sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
- sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
- sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
- sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
- sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
- sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
- sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
- sub macroncomb acutecomb by macroncomb_acutecomb;
- sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
- sub macroncomb gravecomb by macroncomb_gravecomb;
- sub ringcomb acutecomb by ringcomb_acutecomb;
- sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
- sub tildecomb acutecomb by tildecomb_acutecomb;
- sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
- sub tildecomb macroncomb by tildecomb_macroncomb;
-} ccmp_Other_4;
-
-lookup ccmp_latn_1 {
- lookupflag 0;
- sub brevecomb acutecomb by brevecomb_acutecomb;
- sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
- sub brevecomb gravecomb by brevecomb_gravecomb;
- sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
- sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
- sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
- sub brevecomb tildecomb by brevecomb_tildecomb;
- sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
- sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
- sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
- sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
- sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
- sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
- sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
- sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
- sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
-} ccmp_latn_1;
-
-lookup ccmp_latn_2 {
- lookupflag 0;
- sub brevecomb acutecomb by brevecomb_acutecomb;
- sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
- sub brevecomb gravecomb by brevecomb_gravecomb;
- sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
- sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
- sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
- sub brevecomb tildecomb by brevecomb_tildecomb;
- sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
- sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
- sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
- sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
- sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
- sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
- sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
- sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
- sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
-} ccmp_latn_2;
-
-script latn;
-
-} ccmp;
-
-feature locl {
-# automatic
-script latn;
-language NLD;
-sub iacute j' by jacute;
-sub Iacute J' by Jacute;
-language CAT;
-sub l periodcentered' l by periodcentered.loclCAT;
-sub L periodcentered' L by periodcentered.loclCAT.case;
-language ROM;
-sub Scedilla by Scommaaccent;
-sub scedilla by scommaaccent;
-sub Tcedilla by Tcommaaccent;
-sub tcedilla by tcommaaccent;
-language MOL;
-sub Scedilla by Scommaaccent;
-sub scedilla by scommaaccent;
-sub Tcedilla by Tcommaaccent;
-sub tcedilla by tcommaaccent;
-language KAZ;
-sub i by idotaccent;
-language TAT;
-sub i by idotaccent;
-language TRK;
-sub i by idotaccent;
-language CRT;
-sub i by idotaccent;
-language AZE;
-sub i by idotaccent;
-
-} locl;
-
-feature subs {
-# automatic
-sub zero by zeroinferior;
-sub one by oneinferior;
-sub two by twoinferior;
-sub three by threeinferior;
-sub four by fourinferior;
-sub five by fiveinferior;
-sub six by sixinferior;
-sub seven by seveninferior;
-sub eight by eightinferior;
-sub nine by nineinferior;
-
-} subs;
-
-feature sinf {
-# automatic
-sub zero by zero.subs;
-sub one by one.subs;
-sub two by two.subs;
-sub three by three.subs;
-sub four by four.subs;
-sub five by five.subs;
-sub six by six.subs;
-sub seven by seven.subs;
-sub eight by eight.subs;
-sub nine by nine.subs;
-
-} sinf;
-
-feature sups {
-# automatic
-sub zero by zerosuperior;
-sub one by onesuperior;
-sub two by twosuperior;
-sub three by threesuperior;
-sub four by foursuperior;
-sub five by fivesuperior;
-sub six by sixsuperior;
-sub seven by sevensuperior;
-sub eight by eightsuperior;
-sub nine by ninesuperior;
-
-} sups;
-
-feature numr {
-# automatic
-sub zero by zero.numr;
-sub one by one.numr;
-sub two by two.numr;
-sub three by three.numr;
-sub four by four.numr;
-sub five by five.numr;
-sub six by six.numr;
-sub seven by seven.numr;
-sub eight by eight.numr;
-sub nine by nine.numr;
-
-} numr;
-
-feature dnom {
-# automatic
-sub zero by zero.dnom;
-sub one by one.dnom;
-sub two by two.dnom;
-sub three by three.dnom;
-sub four by four.dnom;
-sub five by five.dnom;
-sub six by six.dnom;
-sub seven by seven.dnom;
-sub eight by eight.dnom;
-sub nine by nine.dnom;
-
-} dnom;
-
-feature frac {
-# automatic
-lookup FRAC {
- sub slash by fraction;
-} FRAC;
-lookup UP {
- sub [zero one two three four five six seven eight nine] by [zero.numr one.numr two.numr three.numr
four.numr five.numr six.numr seven.numr eight.numr nine.numr];
-} UP;
-lookup DOWN {
- sub fraction [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr
eight.numr nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom
eight.dnom nine.dnom];
- sub [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom] [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr
nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom];
-} DOWN;
-
-} frac;
-
-feature ordn {
-# automatic
-sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine;
-sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine;
-sub N o period by numero;
-
-} ordn;
-
-feature lnum {
-# automatic
-sub zero.osf by zero;
-sub one.osf by one;
-sub two.osf by two;
-sub three.osf by three;
-sub four.osf by four;
-sub five.osf by five;
-sub six.osf by six;
-sub seven.osf by seven;
-sub eight.osf by eight;
-sub nine.osf by nine;
-
-} lnum;
-
-feature pnum {
-# automatic
-sub zero.tf by zero;
-sub one.tf by one;
-sub two.tf by two;
-sub three.tf by three;
-sub four.tf by four;
-sub five.tf by five;
-sub six.tf by six;
-sub seven.tf by seven;
-sub eight.tf by eight;
-sub nine.tf by nine;
-sub bulletoperator.tf by bulletoperator;
-sub commercialMinusSign.tf by commercialMinusSign;
-sub divisionslash.tf by divisionslash;
-sub equivalence.tf by equivalence;
-sub notidentical.tf by notidentical;
-sub plus.tf by plus;
-sub minus.tf by minus;
-sub multiply.tf by multiply;
-sub divide.tf by divide;
-sub equal.tf by equal;
-sub notequal.tf by notequal;
-sub greater.tf by greater;
-sub less.tf by less;
-sub greaterequal.tf by greaterequal;
-sub lessequal.tf by lessequal;
-sub plusminus.tf by plusminus;
-sub approxequal.tf by approxequal;
-sub logicalnot.tf by logicalnot;
-sub zero.tosf by zero.osf;
-sub one.tosf by one.osf;
-sub two.tosf by two.osf;
-sub three.tosf by three.osf;
-sub four.tosf by four.osf;
-sub five.tosf by five.osf;
-sub six.tosf by six.osf;
-sub seven.tosf by seven.osf;
-sub eight.tosf by eight.osf;
-sub nine.tosf by nine.osf;
-
-} pnum;
-
-feature tnum {
-# automatic
-sub zero by zero.tf;
-sub one by one.tf;
-sub two by two.tf;
-sub three by three.tf;
-sub four by four.tf;
-sub five by five.tf;
-sub six by six.tf;
-sub seven by seven.tf;
-sub eight by eight.tf;
-sub nine by nine.tf;
-sub bulletoperator by bulletoperator.tf;
-sub commercialMinusSign by commercialMinusSign.tf;
-sub divisionslash by divisionslash.tf;
-sub equivalence by equivalence.tf;
-sub notidentical by notidentical.tf;
-sub plus by plus.tf;
-sub minus by minus.tf;
-sub multiply by multiply.tf;
-sub divide by divide.tf;
-sub equal by equal.tf;
-sub notequal by notequal.tf;
-sub greater by greater.tf;
-sub less by less.tf;
-sub greaterequal by greaterequal.tf;
-sub lessequal by lessequal.tf;
-sub plusminus by plusminus.tf;
-sub approxequal by approxequal.tf;
-sub logicalnot by logicalnot.tf;
-sub zero.osf by zero.tosf;
-sub one.osf by one.tosf;
-sub two.osf by two.tosf;
-sub three.osf by three.tosf;
-sub four.osf by four.tosf;
-sub five.osf by five.tosf;
-sub six.osf by six.tosf;
-sub seven.osf by seven.tosf;
-sub eight.osf by eight.tosf;
-sub nine.osf by nine.tosf;
-
-} tnum;
-
-feature onum {
-# automatic
-sub zero.tf by zero.tosf;
-sub one.tf by one.tosf;
-sub two.tf by two.tosf;
-sub three.tf by three.tosf;
-sub four.tf by four.tosf;
-sub five.tf by five.tosf;
-sub six.tf by six.tosf;
-sub seven.tf by seven.tosf;
-sub eight.tf by eight.tosf;
-sub nine.tf by nine.tosf;
-sub zero by zero.osf;
-sub one by one.osf;
-sub two by two.osf;
-sub three by three.osf;
-sub four by four.osf;
-sub five by five.osf;
-sub six by six.osf;
-sub seven by seven.osf;
-sub eight by eight.osf;
-sub nine by nine.osf;
-
-} onum;
-
-feature case {
-# automatic
-sub periodcentered.loclCAT by periodcentered.loclCAT.case;
-sub dieresiscomb by dieresiscomb.case;
-sub dotaccentcomb by dotaccentcomb.case;
-sub gravecomb by gravecomb.case;
-sub acutecomb by acutecomb.case;
-sub hungarumlautcomb by hungarumlautcomb.case;
-sub circumflexcomb by circumflexcomb.case;
-sub caroncomb by caroncomb.case;
-sub brevecomb by brevecomb.case;
-sub ringcomb by ringcomb.case;
-sub ringcomb_acutecomb by ringcomb_acutecomb.case;
-sub tildecomb by tildecomb.case;
-sub macroncomb by macroncomb.case;
-sub hookabovecomb by hookabovecomb.case;
-sub dblgravecomb by dblgravecomb.case;
-sub breveinvertedcomb by breveinvertedcomb.case;
-sub strokeshortcomb by strokeshortcomb.case;
-sub slashshortcomb by slashshortcomb.case;
-sub slashlongcomb by slashlongcomb.case;
-sub macroncomb.narrow by macroncomb.narrow.case;
-sub ogonekcomb.tall by ogonekcomb.tall.case;
-sub brevecomb-cy by brevecomb-cy.case;
-sub descender-cy by descender-cy.case;
-sub brevecomb_acutecomb by brevecomb_acutecomb.case;
-sub brevecomb_gravecomb by brevecomb_gravecomb.case;
-sub brevecomb_hookabovecomb by brevecomb_hookabovecomb.case;
-sub brevecomb_tildecomb by brevecomb_tildecomb.case;
-sub circumflexcomb_acutecomb by circumflexcomb_acutecomb.case;
-sub circumflexcomb_gravecomb by circumflexcomb_gravecomb.case;
-sub circumflexcomb_hookabovecomb by circumflexcomb_hookabovecomb.case;
-sub circumflexcomb_tildecomb by circumflexcomb_tildecomb.case;
-sub zero.osf by zero.lf;
-sub one.osf by one.lf;
-sub two.osf by two.lf;
-sub three.osf by three.lf;
-sub four.osf by four.lf;
-sub five.osf by five.lf;
-sub six.osf by six.lf;
-sub seven.osf by seven.lf;
-sub eight.osf by eight.lf;
-sub nine.osf by nine.lf;
-sub zero.tf by zero.lf;
-sub one.tf by one.lf;
-sub two.tf by two.lf;
-sub three.tf by three.lf;
-sub four.tf by four.lf;
-sub five.tf by five.lf;
-sub six.tf by six.lf;
-sub seven.tf by seven.lf;
-sub eight.tf by eight.lf;
-sub nine.tf by nine.lf;
-sub zero.tosf by zero.lf;
-sub one.tosf by one.lf;
-sub two.tosf by two.lf;
-sub three.tosf by three.lf;
-sub four.tosf by four.lf;
-sub five.tosf by five.lf;
-sub six.tosf by six.lf;
-sub seven.tosf by seven.lf;
-sub eight.tosf by eight.lf;
-sub nine.tosf by nine.lf;
-
-} case;
-
-feature liga {
-# automatic
-sub f f i by f_f_i;
-sub f f l by f_f_l;
-sub f f by f_f;
-sub f i by fi;
-sub f l by fl;
-
-} liga;
-
-feature zero {
-# automatic
-sub zero.lf by zero.lf.zero;
-sub zero.osf by zero.osf.zero;
-sub zero.tf by zero.tf.zero;
-sub zero.tosf by zero.tosf.zero;
-sub zero by zero.zero;
-
-} zero;
-
-feature salt {
-# automatic
-sub six by six.ss01;
-sub nine by nine.ss01;
-
-} salt;
-
-feature ss01 {
-# automatic
-sub six by six.ss01;
-sub nine by nine.ss01;
-
-} ss01;
-
-table GDEF {
- # automatic
- GlyphClassDef
- [A AE B C D E Eogonek F G H I J K L M N O OE P Q R S Schwa T U V W X Y Z a ae b c d e f g h i idotless
jdotless k l m n o oslash oe p q r s t u v w x y z Ge-cy Ie-cy Zhe-cy Ze-cy Ii-cy Ka-cy En-cy O-cy Pe-cy
Es-cy Te-cy U-cy Ha-cy Che-cy Hardsign-cy Yeru-cy Ereversed-cy Iu-cy Ia-cy Ustrait-cy a-cy ge-cy ie-cy zhe-cy
ze-cy ii-cy ka-cy en-cy o-cy pe-cy es-cy te-cy u-cy ha-cy che-cy yeru-cy e-cy ereversed-cy tshe-cy iu-cy
ia-cy ustrait-cy zero.lf zero.osf zero.tf zero.tosf zero.dnom euro peso], # Base
- , # Liga
- [dieresiscomb dieresiscomb_gravecomb dieresiscomb_acutecomb dotaccentcomb gravecomb acutecomb
acutecomb_dotaccentcomb hungarumlautcomb caroncomb.alt circumflexcomb caroncomb brevecomb ringcomb
ringcomb_acutecomb tildecomb tildecomb_dieresiscomb tildecomb_acutecomb tildecomb_macroncomb macroncomb
macroncomb_gravecomb macroncomb_acutecomb hookabovecomb verticallineabovecomb dblgravecomb breveinvertedcomb
commaturnedabovecomb horncomb dotbelowcomb dieresisbelowcomb commaaccentcomb cedillacomb ogonekcomb
verticallinebelowcomb brevebelowcomb macronbelowcomb strokeshortcomb strokelongcomb slashshortcomb
slashlongcomb dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case hungarumlautcomb.case
circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case tildecomb.case
macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case strokeshortcomb.case
slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall
.case di
eresiscomb.loclVIET dotaccentcomb.loclVIET gravecomb.loclVIET acutecomb.loclVIET circumflexcomb.loclVIET
caroncomb.loclVIET brevecomb.loclVIET tildecomb.loclVIET macroncomb.loclVIET hookabovecomb.loclVIET
macroncomb.narrow ogonekcomb.narrow macronbelowcomb.narrow ogonekcomb.tall brevecomb-cy descender-cy
brevecomb-cy.case descender-cy.case descender-cy.strait brevecomb_acutecomb brevecomb_gravecomb
brevecomb_hookabovecomb brevecomb_tildecomb circumflexcomb_acutecomb circumflexcomb_gravecomb
circumflexcomb_hookabovecomb circumflexcomb_tildecomb brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case], # Mark
- ;
-} GDEF;
+include(family.fea)
diff --git a/src/Cantarell-Regular.ufo/features.fea b/src/Cantarell-Regular.ufo/features.fea
index 7a98cf78..5e62ed1b 100644
--- a/src/Cantarell-Regular.ufo/features.fea
+++ b/src/Cantarell-Regular.ufo/features.fea
@@ -1,504 +1 @@
-# automatic
-@Uppercase = [ A Aacute Abreve Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acaron
Acircumflex Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde
Adblgrave Adieresis Adotbelow Agrave Ahookabove Ainvertedbreve Amacron Aogonek Aring Aringacute Atilde AE
AEacute B C Cacute Ccaron Ccedilla Ccedillaacute Ccircumflex Cdotaccent D DZcaron Eth Dcaron Dcroat Ddotbelow
Dlinebelow Dzcaron E Eacute Ebreve Ecaron Ecedillabreve Ecircumflex Ecircumflexacute Ecircumflexdotbelow
Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edblgrave Edieresis Edotaccent Edotbelow Egrave
Ehookabove Einvertedbreve Emacron Emacronacute Emacrongrave Eogonek Etilde F G Gbreve Gcaron Gcircumflex
Gcommaaccent Gdotaccent Gmacron H Hbar Hbrevebelow Hcircumflex Hdotbelow I Iacute Ibreve Icaron Icircumflex
Idblgrave Idieresis Idieresisacute Idotaccent Idotbelow Igrave Ihookabove Iinvertedbreve Imacron Iogonek
Itilde J Jacute Jcircumflex K Kacute K
commaacc
ent L LJ Lacute Lcaron Lcommaaccent Ldot Ldotbelow Lj Llinebelow Lslash M Mdotbelow N NJ Nacute Ncaron
Ncommaaccent Ndotaccent Ndotbelow Eng Nj Nlinebelow Ntilde O Oacute Obreve Ocaron Ocircumflex
Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Odblgrave
Odieresis Odieresismacron Odotaccentmacron Odotbelow Ograve Ohookabove Ohorn Ohornacute Ohorndotbelow
Ohorngrave Ohornhookabove Ohorntilde Ohungarumlaut Oinvertedbreve Omacron Omacronacute Omacrongrave Oogonek
Oslash Oslashacute Otilde Otildeacute Otildedieresis Otildemacron OE P Thorn Q R Racute Rcaron Rcommaaccent
Rdblgrave Rdotbelow Rinvertedbreve Rlinebelow S Sacute Sacutedotaccent Saltillo Scaron Scarondotaccent
Scedilla Scircumflex Scommaaccent Sdotaccent Sdotbelow Sdotbelowdotaccent Germandbls Schwa T Tbar Tcaron
Tcedilla Tcommaaccent Tdotbelow Tlinebelow U Uacute Ubreve Ucaron Ucircumflex Udblgrave Udieresis
Udieresisacute Udieresiscaron Udieresisgrave Udieresismacron Udotb
elow Ugr
ave Uhookabove Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Uhungarumlaut
Uinvertedbreve Umacron Umacrondieresis Uogonek Uring Utilde Utildeacute V W Wacute Wcircumflex Wdieresis
Wgrave X Y Yacute Ycircumflex Ydieresis Ydotaccent Ydotbelow Ygrave Yhookabove Ymacron Ytilde Z Zacute Zcaron
Zdotaccent Zdotbelow A-cy Be-cy Ve-cy Ge-cy Gje-cy Gheupturn-cy De-cy Ie-cy Iegrave-cy Io-cy Zhe-cy Ze-cy
Ii-cy Iishort-cy Iigrave-cy Ka-cy Kje-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ushort-cy Ef-cy
Ha-cy Che-cy Tse-cy Sha-cy Shcha-cy Dzhe-cy Softsign-cy Hardsign-cy Yeru-cy Lje-cy Nje-cy Dze-cy E-cy
Ereversed-cy I-cy Yi-cy Je-cy Tshe-cy Iu-cy Ia-cy Dje-cy Yat-cy Yusbig-cy Fita-cy Izhitsa-cy Ghestroke-cy
Ghemiddlehook-cy Zhedescender-cy Zedescender-cy Kadescender-cy Kaverticalstroke-cy Kabashkir-cy
Endescender-cy Enghe-cy Esdescender-cy Ustrait-cy Ustraitstroke-cy Hadescender-cy Chedescender-cy
Cheverticalstroke-cy Shha-cy Palochka-cy Zhebreve-cy Chekhak
assian-c
y Abreve-cy Adieresis-cy Aie-cy Iebreve-cy Schwa-cy Zhedieresis-cy Zedieresis-cy Imacron-cy Idieresis-cy
Odieresis-cy Obarred-cy Umacron-cy Udieresis-cy Uhungarumlaut-cy Chedieresis-cy Gedescender-cy
Yerudieresis-cy Qa-cy We-cy ];
-
-# Prefix: Languagesystems
-# automatic
-languagesystem DFLT dflt;
-languagesystem latn dflt;
-languagesystem latn NLD;
-languagesystem latn CAT;
-languagesystem latn ROM;
-languagesystem latn MOL;
-languagesystem latn KAZ;
-languagesystem latn TAT;
-languagesystem latn TRK;
-languagesystem latn CRT;
-languagesystem latn AZE;
-
-
-feature aalt {
-# automatic
-feature ccmp;
-feature locl;
-feature subs;
-feature sinf;
-feature sups;
-feature numr;
-feature dnom;
-feature frac;
-feature ordn;
-feature lnum;
-feature pnum;
-feature tnum;
-feature onum;
-feature case;
-feature zero;
-feature salt;
-feature ss01;
-
-} aalt;
-
-feature ccmp {
-# automatic
-lookup ccmp_Other_1 {
- @CombiningTopAccents = [acutecomb brevecomb breveinvertedcomb caroncomb circumflexcomb
commaturnedabovecomb dblgravecomb dieresiscomb dotaccentcomb gravecomb hookabovecomb hungarumlautcomb
macroncomb ringcomb tildecomb verticallineabovecomb];
- @CombiningNonTopAccents = [brevebelowcomb cedillacomb dieresisbelowcomb dotbelowcomb macronbelowcomb
ogonekcomb verticallinebelowcomb horncomb slashlongcomb slashshortcomb strokelongcomb strokeshortcomb];
- sub [i j]' @CombiningTopAccents by [idotless jdotless];
- sub [i j]' @CombiningNonTopAccents @CombiningTopAccents by [idotless jdotless];
- @Markscomb = [dieresiscomb dotaccentcomb gravecomb acutecomb hungarumlautcomb circumflexcomb
caroncomb brevecomb ringcomb ringcomb_acutecomb tildecomb macroncomb hookabovecomb dblgravecomb
breveinvertedcomb strokeshortcomb slashshortcomb slashlongcomb macroncomb.narrow ogonekcomb.tall brevecomb-cy
descender-cy brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb
circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb];
- @MarkscombCase = [dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case
hungarumlautcomb.case circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case
tildecomb.case macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case
strokeshortcomb.case slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall.case
brevecomb-cy.case descender-cy.case brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case];
- sub @Markscomb @Markscomb' by @MarkscombCase;
- sub @Uppercase @Markscomb' by @MarkscombCase;
-} ccmp_Other_1;
-
-lookup ccmp_Other_2 {
- sub @Markscomb' @MarkscombCase by @MarkscombCase;
- sub @MarkscombCase @Markscomb' by @MarkscombCase;
-} ccmp_Other_2;
-
-lookup ccmp_Other_3 {
- lookupflag 0;
- sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
- sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
- sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
- sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
- sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
- sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
- sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
- sub macroncomb acutecomb by macroncomb_acutecomb;
- sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
- sub macroncomb gravecomb by macroncomb_gravecomb;
- sub ringcomb acutecomb by ringcomb_acutecomb;
- sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
- sub tildecomb acutecomb by tildecomb_acutecomb;
- sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
- sub tildecomb macroncomb by tildecomb_macroncomb;
-} ccmp_Other_3;
-
-lookup ccmp_Other_4 {
- lookupflag 0;
- sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
- sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
- sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
- sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
- sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
- sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
- sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
- sub macroncomb acutecomb by macroncomb_acutecomb;
- sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
- sub macroncomb gravecomb by macroncomb_gravecomb;
- sub ringcomb acutecomb by ringcomb_acutecomb;
- sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
- sub tildecomb acutecomb by tildecomb_acutecomb;
- sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
- sub tildecomb macroncomb by tildecomb_macroncomb;
-} ccmp_Other_4;
-
-lookup ccmp_latn_1 {
- lookupflag 0;
- sub brevecomb acutecomb by brevecomb_acutecomb;
- sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
- sub brevecomb gravecomb by brevecomb_gravecomb;
- sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
- sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
- sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
- sub brevecomb tildecomb by brevecomb_tildecomb;
- sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
- sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
- sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
- sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
- sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
- sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
- sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
- sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
- sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
-} ccmp_latn_1;
-
-lookup ccmp_latn_2 {
- lookupflag 0;
- sub brevecomb acutecomb by brevecomb_acutecomb;
- sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
- sub brevecomb gravecomb by brevecomb_gravecomb;
- sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
- sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
- sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
- sub brevecomb tildecomb by brevecomb_tildecomb;
- sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
- sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
- sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
- sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
- sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
- sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
- sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
- sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
- sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
-} ccmp_latn_2;
-
-script latn;
-
-} ccmp;
-
-feature locl {
-# automatic
-script latn;
-language NLD;
-sub iacute j' by jacute;
-sub Iacute J' by Jacute;
-language CAT;
-sub l periodcentered' l by periodcentered.loclCAT;
-sub L periodcentered' L by periodcentered.loclCAT.case;
-language ROM;
-sub Scedilla by Scommaaccent;
-sub scedilla by scommaaccent;
-sub Tcedilla by Tcommaaccent;
-sub tcedilla by tcommaaccent;
-language MOL;
-sub Scedilla by Scommaaccent;
-sub scedilla by scommaaccent;
-sub Tcedilla by Tcommaaccent;
-sub tcedilla by tcommaaccent;
-language KAZ;
-sub i by idotaccent;
-language TAT;
-sub i by idotaccent;
-language TRK;
-sub i by idotaccent;
-language CRT;
-sub i by idotaccent;
-language AZE;
-sub i by idotaccent;
-
-} locl;
-
-feature subs {
-# automatic
-sub zero by zeroinferior;
-sub one by oneinferior;
-sub two by twoinferior;
-sub three by threeinferior;
-sub four by fourinferior;
-sub five by fiveinferior;
-sub six by sixinferior;
-sub seven by seveninferior;
-sub eight by eightinferior;
-sub nine by nineinferior;
-
-} subs;
-
-feature sinf {
-# automatic
-sub zero by zero.subs;
-sub one by one.subs;
-sub two by two.subs;
-sub three by three.subs;
-sub four by four.subs;
-sub five by five.subs;
-sub six by six.subs;
-sub seven by seven.subs;
-sub eight by eight.subs;
-sub nine by nine.subs;
-
-} sinf;
-
-feature sups {
-# automatic
-sub zero by zerosuperior;
-sub one by onesuperior;
-sub two by twosuperior;
-sub three by threesuperior;
-sub four by foursuperior;
-sub five by fivesuperior;
-sub six by sixsuperior;
-sub seven by sevensuperior;
-sub eight by eightsuperior;
-sub nine by ninesuperior;
-
-} sups;
-
-feature numr {
-# automatic
-sub zero by zero.numr;
-sub one by one.numr;
-sub two by two.numr;
-sub three by three.numr;
-sub four by four.numr;
-sub five by five.numr;
-sub six by six.numr;
-sub seven by seven.numr;
-sub eight by eight.numr;
-sub nine by nine.numr;
-
-} numr;
-
-feature dnom {
-# automatic
-sub zero by zero.dnom;
-sub one by one.dnom;
-sub two by two.dnom;
-sub three by three.dnom;
-sub four by four.dnom;
-sub five by five.dnom;
-sub six by six.dnom;
-sub seven by seven.dnom;
-sub eight by eight.dnom;
-sub nine by nine.dnom;
-
-} dnom;
-
-feature frac {
-# automatic
-lookup FRAC {
- sub slash by fraction;
-} FRAC;
-lookup UP {
- sub [zero one two three four five six seven eight nine] by [zero.numr one.numr two.numr three.numr
four.numr five.numr six.numr seven.numr eight.numr nine.numr];
-} UP;
-lookup DOWN {
- sub fraction [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr
eight.numr nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom
eight.dnom nine.dnom];
- sub [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom] [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr
nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom];
-} DOWN;
-
-} frac;
-
-feature ordn {
-# automatic
-sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine;
-sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine;
-sub N o period by numero;
-
-} ordn;
-
-feature lnum {
-# automatic
-sub zero.osf by zero;
-sub one.osf by one;
-sub two.osf by two;
-sub three.osf by three;
-sub four.osf by four;
-sub five.osf by five;
-sub six.osf by six;
-sub seven.osf by seven;
-sub eight.osf by eight;
-sub nine.osf by nine;
-
-} lnum;
-
-feature pnum {
-# automatic
-sub zero.tf by zero;
-sub one.tf by one;
-sub two.tf by two;
-sub three.tf by three;
-sub four.tf by four;
-sub five.tf by five;
-sub six.tf by six;
-sub seven.tf by seven;
-sub eight.tf by eight;
-sub nine.tf by nine;
-sub bulletoperator.tf by bulletoperator;
-sub commercialMinusSign.tf by commercialMinusSign;
-sub divisionslash.tf by divisionslash;
-sub equivalence.tf by equivalence;
-sub notidentical.tf by notidentical;
-sub plus.tf by plus;
-sub minus.tf by minus;
-sub multiply.tf by multiply;
-sub divide.tf by divide;
-sub equal.tf by equal;
-sub notequal.tf by notequal;
-sub greater.tf by greater;
-sub less.tf by less;
-sub greaterequal.tf by greaterequal;
-sub lessequal.tf by lessequal;
-sub plusminus.tf by plusminus;
-sub approxequal.tf by approxequal;
-sub logicalnot.tf by logicalnot;
-sub zero.tosf by zero.osf;
-sub one.tosf by one.osf;
-sub two.tosf by two.osf;
-sub three.tosf by three.osf;
-sub four.tosf by four.osf;
-sub five.tosf by five.osf;
-sub six.tosf by six.osf;
-sub seven.tosf by seven.osf;
-sub eight.tosf by eight.osf;
-sub nine.tosf by nine.osf;
-
-} pnum;
-
-feature tnum {
-# automatic
-sub zero by zero.tf;
-sub one by one.tf;
-sub two by two.tf;
-sub three by three.tf;
-sub four by four.tf;
-sub five by five.tf;
-sub six by six.tf;
-sub seven by seven.tf;
-sub eight by eight.tf;
-sub nine by nine.tf;
-sub bulletoperator by bulletoperator.tf;
-sub commercialMinusSign by commercialMinusSign.tf;
-sub divisionslash by divisionslash.tf;
-sub equivalence by equivalence.tf;
-sub notidentical by notidentical.tf;
-sub plus by plus.tf;
-sub minus by minus.tf;
-sub multiply by multiply.tf;
-sub divide by divide.tf;
-sub equal by equal.tf;
-sub notequal by notequal.tf;
-sub greater by greater.tf;
-sub less by less.tf;
-sub greaterequal by greaterequal.tf;
-sub lessequal by lessequal.tf;
-sub plusminus by plusminus.tf;
-sub approxequal by approxequal.tf;
-sub logicalnot by logicalnot.tf;
-sub zero.osf by zero.tosf;
-sub one.osf by one.tosf;
-sub two.osf by two.tosf;
-sub three.osf by three.tosf;
-sub four.osf by four.tosf;
-sub five.osf by five.tosf;
-sub six.osf by six.tosf;
-sub seven.osf by seven.tosf;
-sub eight.osf by eight.tosf;
-sub nine.osf by nine.tosf;
-
-} tnum;
-
-feature onum {
-# automatic
-sub zero.tf by zero.tosf;
-sub one.tf by one.tosf;
-sub two.tf by two.tosf;
-sub three.tf by three.tosf;
-sub four.tf by four.tosf;
-sub five.tf by five.tosf;
-sub six.tf by six.tosf;
-sub seven.tf by seven.tosf;
-sub eight.tf by eight.tosf;
-sub nine.tf by nine.tosf;
-sub zero by zero.osf;
-sub one by one.osf;
-sub two by two.osf;
-sub three by three.osf;
-sub four by four.osf;
-sub five by five.osf;
-sub six by six.osf;
-sub seven by seven.osf;
-sub eight by eight.osf;
-sub nine by nine.osf;
-
-} onum;
-
-feature case {
-# automatic
-sub periodcentered.loclCAT by periodcentered.loclCAT.case;
-sub dieresiscomb by dieresiscomb.case;
-sub dotaccentcomb by dotaccentcomb.case;
-sub gravecomb by gravecomb.case;
-sub acutecomb by acutecomb.case;
-sub hungarumlautcomb by hungarumlautcomb.case;
-sub circumflexcomb by circumflexcomb.case;
-sub caroncomb by caroncomb.case;
-sub brevecomb by brevecomb.case;
-sub ringcomb by ringcomb.case;
-sub ringcomb_acutecomb by ringcomb_acutecomb.case;
-sub tildecomb by tildecomb.case;
-sub macroncomb by macroncomb.case;
-sub hookabovecomb by hookabovecomb.case;
-sub dblgravecomb by dblgravecomb.case;
-sub breveinvertedcomb by breveinvertedcomb.case;
-sub strokeshortcomb by strokeshortcomb.case;
-sub slashshortcomb by slashshortcomb.case;
-sub slashlongcomb by slashlongcomb.case;
-sub macroncomb.narrow by macroncomb.narrow.case;
-sub ogonekcomb.tall by ogonekcomb.tall.case;
-sub brevecomb-cy by brevecomb-cy.case;
-sub descender-cy by descender-cy.case;
-sub brevecomb_acutecomb by brevecomb_acutecomb.case;
-sub brevecomb_gravecomb by brevecomb_gravecomb.case;
-sub brevecomb_hookabovecomb by brevecomb_hookabovecomb.case;
-sub brevecomb_tildecomb by brevecomb_tildecomb.case;
-sub circumflexcomb_acutecomb by circumflexcomb_acutecomb.case;
-sub circumflexcomb_gravecomb by circumflexcomb_gravecomb.case;
-sub circumflexcomb_hookabovecomb by circumflexcomb_hookabovecomb.case;
-sub circumflexcomb_tildecomb by circumflexcomb_tildecomb.case;
-sub zero.osf by zero.lf;
-sub one.osf by one.lf;
-sub two.osf by two.lf;
-sub three.osf by three.lf;
-sub four.osf by four.lf;
-sub five.osf by five.lf;
-sub six.osf by six.lf;
-sub seven.osf by seven.lf;
-sub eight.osf by eight.lf;
-sub nine.osf by nine.lf;
-sub zero.tf by zero.lf;
-sub one.tf by one.lf;
-sub two.tf by two.lf;
-sub three.tf by three.lf;
-sub four.tf by four.lf;
-sub five.tf by five.lf;
-sub six.tf by six.lf;
-sub seven.tf by seven.lf;
-sub eight.tf by eight.lf;
-sub nine.tf by nine.lf;
-sub zero.tosf by zero.lf;
-sub one.tosf by one.lf;
-sub two.tosf by two.lf;
-sub three.tosf by three.lf;
-sub four.tosf by four.lf;
-sub five.tosf by five.lf;
-sub six.tosf by six.lf;
-sub seven.tosf by seven.lf;
-sub eight.tosf by eight.lf;
-sub nine.tosf by nine.lf;
-
-} case;
-
-feature liga {
-# automatic
-sub f f i by f_f_i;
-sub f f l by f_f_l;
-sub f f by f_f;
-sub f i by fi;
-sub f l by fl;
-
-} liga;
-
-feature zero {
-# automatic
-sub zero.lf by zero.lf.zero;
-sub zero.osf by zero.osf.zero;
-sub zero.tf by zero.tf.zero;
-sub zero.tosf by zero.tosf.zero;
-sub zero by zero.zero;
-
-} zero;
-
-feature salt {
-# automatic
-sub six by six.ss01;
-sub nine by nine.ss01;
-
-} salt;
-
-feature ss01 {
-# automatic
-sub six by six.ss01;
-sub nine by nine.ss01;
-
-} ss01;
-
-table GDEF {
- # automatic
- GlyphClassDef
- [A AE B C D E Eogonek F G H I J K L M N O OE P Q R S Schwa T U V W X Y Z a ae b c d e f g h i idotless
jdotless k l m n o oslash oe p q r s t u v w x y z Ge-cy Ie-cy Zhe-cy Ze-cy Ii-cy Ka-cy En-cy O-cy Pe-cy
Es-cy Te-cy U-cy Ha-cy Che-cy Hardsign-cy Yeru-cy Ereversed-cy Iu-cy Ia-cy Ustrait-cy a-cy ge-cy ie-cy zhe-cy
ze-cy ii-cy ka-cy en-cy o-cy pe-cy es-cy te-cy u-cy ha-cy che-cy yeru-cy e-cy ereversed-cy tshe-cy iu-cy
ia-cy ustrait-cy zero.lf zero.osf zero.tf zero.tosf zero.dnom euro peso], # Base
- , # Liga
- [dieresiscomb dieresiscomb_gravecomb dieresiscomb_acutecomb dotaccentcomb gravecomb acutecomb
acutecomb_dotaccentcomb hungarumlautcomb caroncomb.alt circumflexcomb caroncomb brevecomb ringcomb
ringcomb_acutecomb tildecomb tildecomb_dieresiscomb tildecomb_acutecomb tildecomb_macroncomb macroncomb
macroncomb_gravecomb macroncomb_acutecomb hookabovecomb verticallineabovecomb dblgravecomb breveinvertedcomb
commaturnedabovecomb horncomb dotbelowcomb dieresisbelowcomb commaaccentcomb cedillacomb ogonekcomb
verticallinebelowcomb brevebelowcomb macronbelowcomb strokeshortcomb strokelongcomb slashshortcomb
slashlongcomb dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case hungarumlautcomb.case
circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case tildecomb.case
macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case strokeshortcomb.case
slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall
.case di
eresiscomb.loclVIET dotaccentcomb.loclVIET gravecomb.loclVIET acutecomb.loclVIET circumflexcomb.loclVIET
caroncomb.loclVIET brevecomb.loclVIET tildecomb.loclVIET macroncomb.loclVIET hookabovecomb.loclVIET
macroncomb.narrow ogonekcomb.narrow macronbelowcomb.narrow ogonekcomb.tall brevecomb-cy descender-cy
brevecomb-cy.case descender-cy.case descender-cy.strait brevecomb_acutecomb brevecomb_gravecomb
brevecomb_hookabovecomb brevecomb_tildecomb circumflexcomb_acutecomb circumflexcomb_gravecomb
circumflexcomb_hookabovecomb circumflexcomb_tildecomb brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case], # Mark
- ;
-} GDEF;
+include(family.fea)
diff --git a/src/family.fea b/src/family.fea
new file mode 100644
index 00000000..7a98cf78
--- /dev/null
+++ b/src/family.fea
@@ -0,0 +1,504 @@
+# automatic
+@Uppercase = [ A Aacute Abreve Abreveacute Abrevedotbelow Abrevegrave Abrevehookabove Abrevetilde Acaron
Acircumflex Acircumflexacute Acircumflexdotbelow Acircumflexgrave Acircumflexhookabove Acircumflextilde
Adblgrave Adieresis Adotbelow Agrave Ahookabove Ainvertedbreve Amacron Aogonek Aring Aringacute Atilde AE
AEacute B C Cacute Ccaron Ccedilla Ccedillaacute Ccircumflex Cdotaccent D DZcaron Eth Dcaron Dcroat Ddotbelow
Dlinebelow Dzcaron E Eacute Ebreve Ecaron Ecedillabreve Ecircumflex Ecircumflexacute Ecircumflexdotbelow
Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Edblgrave Edieresis Edotaccent Edotbelow Egrave
Ehookabove Einvertedbreve Emacron Emacronacute Emacrongrave Eogonek Etilde F G Gbreve Gcaron Gcircumflex
Gcommaaccent Gdotaccent Gmacron H Hbar Hbrevebelow Hcircumflex Hdotbelow I Iacute Ibreve Icaron Icircumflex
Idblgrave Idieresis Idieresisacute Idotaccent Idotbelow Igrave Ihookabove Iinvertedbreve Imacron Iogonek
Itilde J Jacute Jcircumflex K Kacute K
commaacc
ent L LJ Lacute Lcaron Lcommaaccent Ldot Ldotbelow Lj Llinebelow Lslash M Mdotbelow N NJ Nacute Ncaron
Ncommaaccent Ndotaccent Ndotbelow Eng Nj Nlinebelow Ntilde O Oacute Obreve Ocaron Ocircumflex
Ocircumflexacute Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Odblgrave
Odieresis Odieresismacron Odotaccentmacron Odotbelow Ograve Ohookabove Ohorn Ohornacute Ohorndotbelow
Ohorngrave Ohornhookabove Ohorntilde Ohungarumlaut Oinvertedbreve Omacron Omacronacute Omacrongrave Oogonek
Oslash Oslashacute Otilde Otildeacute Otildedieresis Otildemacron OE P Thorn Q R Racute Rcaron Rcommaaccent
Rdblgrave Rdotbelow Rinvertedbreve Rlinebelow S Sacute Sacutedotaccent Saltillo Scaron Scarondotaccent
Scedilla Scircumflex Scommaaccent Sdotaccent Sdotbelow Sdotbelowdotaccent Germandbls Schwa T Tbar Tcaron
Tcedilla Tcommaaccent Tdotbelow Tlinebelow U Uacute Ubreve Ucaron Ucircumflex Udblgrave Udieresis
Udieresisacute Udieresiscaron Udieresisgrave Udieresismacron Udotb
elow Ugr
ave Uhookabove Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhookabove Uhorntilde Uhungarumlaut
Uinvertedbreve Umacron Umacrondieresis Uogonek Uring Utilde Utildeacute V W Wacute Wcircumflex Wdieresis
Wgrave X Y Yacute Ycircumflex Ydieresis Ydotaccent Ydotbelow Ygrave Yhookabove Ymacron Ytilde Z Zacute Zcaron
Zdotaccent Zdotbelow A-cy Be-cy Ve-cy Ge-cy Gje-cy Gheupturn-cy De-cy Ie-cy Iegrave-cy Io-cy Zhe-cy Ze-cy
Ii-cy Iishort-cy Iigrave-cy Ka-cy Kje-cy El-cy Em-cy En-cy O-cy Pe-cy Er-cy Es-cy Te-cy U-cy Ushort-cy Ef-cy
Ha-cy Che-cy Tse-cy Sha-cy Shcha-cy Dzhe-cy Softsign-cy Hardsign-cy Yeru-cy Lje-cy Nje-cy Dze-cy E-cy
Ereversed-cy I-cy Yi-cy Je-cy Tshe-cy Iu-cy Ia-cy Dje-cy Yat-cy Yusbig-cy Fita-cy Izhitsa-cy Ghestroke-cy
Ghemiddlehook-cy Zhedescender-cy Zedescender-cy Kadescender-cy Kaverticalstroke-cy Kabashkir-cy
Endescender-cy Enghe-cy Esdescender-cy Ustrait-cy Ustraitstroke-cy Hadescender-cy Chedescender-cy
Cheverticalstroke-cy Shha-cy Palochka-cy Zhebreve-cy Chekhak
assian-c
y Abreve-cy Adieresis-cy Aie-cy Iebreve-cy Schwa-cy Zhedieresis-cy Zedieresis-cy Imacron-cy Idieresis-cy
Odieresis-cy Obarred-cy Umacron-cy Udieresis-cy Uhungarumlaut-cy Chedieresis-cy Gedescender-cy
Yerudieresis-cy Qa-cy We-cy ];
+
+# Prefix: Languagesystems
+# automatic
+languagesystem DFLT dflt;
+languagesystem latn dflt;
+languagesystem latn NLD;
+languagesystem latn CAT;
+languagesystem latn ROM;
+languagesystem latn MOL;
+languagesystem latn KAZ;
+languagesystem latn TAT;
+languagesystem latn TRK;
+languagesystem latn CRT;
+languagesystem latn AZE;
+
+
+feature aalt {
+# automatic
+feature ccmp;
+feature locl;
+feature subs;
+feature sinf;
+feature sups;
+feature numr;
+feature dnom;
+feature frac;
+feature ordn;
+feature lnum;
+feature pnum;
+feature tnum;
+feature onum;
+feature case;
+feature zero;
+feature salt;
+feature ss01;
+
+} aalt;
+
+feature ccmp {
+# automatic
+lookup ccmp_Other_1 {
+ @CombiningTopAccents = [acutecomb brevecomb breveinvertedcomb caroncomb circumflexcomb
commaturnedabovecomb dblgravecomb dieresiscomb dotaccentcomb gravecomb hookabovecomb hungarumlautcomb
macroncomb ringcomb tildecomb verticallineabovecomb];
+ @CombiningNonTopAccents = [brevebelowcomb cedillacomb dieresisbelowcomb dotbelowcomb macronbelowcomb
ogonekcomb verticallinebelowcomb horncomb slashlongcomb slashshortcomb strokelongcomb strokeshortcomb];
+ sub [i j]' @CombiningTopAccents by [idotless jdotless];
+ sub [i j]' @CombiningNonTopAccents @CombiningTopAccents by [idotless jdotless];
+ @Markscomb = [dieresiscomb dotaccentcomb gravecomb acutecomb hungarumlautcomb circumflexcomb
caroncomb brevecomb ringcomb ringcomb_acutecomb tildecomb macroncomb hookabovecomb dblgravecomb
breveinvertedcomb strokeshortcomb slashshortcomb slashlongcomb macroncomb.narrow ogonekcomb.tall brevecomb-cy
descender-cy brevecomb_acutecomb brevecomb_gravecomb brevecomb_hookabovecomb brevecomb_tildecomb
circumflexcomb_acutecomb circumflexcomb_gravecomb circumflexcomb_hookabovecomb circumflexcomb_tildecomb];
+ @MarkscombCase = [dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case
hungarumlautcomb.case circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case
tildecomb.case macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case
strokeshortcomb.case slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall.case
brevecomb-cy.case descender-cy.case brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case];
+ sub @Markscomb @Markscomb' by @MarkscombCase;
+ sub @Uppercase @Markscomb' by @MarkscombCase;
+} ccmp_Other_1;
+
+lookup ccmp_Other_2 {
+ sub @Markscomb' @MarkscombCase by @MarkscombCase;
+ sub @MarkscombCase @Markscomb' by @MarkscombCase;
+} ccmp_Other_2;
+
+lookup ccmp_Other_3 {
+ lookupflag 0;
+ sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
+ sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
+ sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
+ sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
+ sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
+ sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
+ sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
+ sub macroncomb acutecomb by macroncomb_acutecomb;
+ sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
+ sub macroncomb gravecomb by macroncomb_gravecomb;
+ sub ringcomb acutecomb by ringcomb_acutecomb;
+ sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
+ sub tildecomb acutecomb by tildecomb_acutecomb;
+ sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
+ sub tildecomb macroncomb by tildecomb_macroncomb;
+} ccmp_Other_3;
+
+lookup ccmp_Other_4 {
+ lookupflag 0;
+ sub acutecomb dotaccentcomb by acutecomb_dotaccentcomb;
+ sub caroncomb dotaccentcomb by caroncomb_dotaccentcomb;
+ sub dieresiscomb acutecomb by dieresiscomb_acutecomb;
+ sub dieresiscomb caroncomb by dieresiscomb_caroncomb;
+ sub dieresiscomb gravecomb by dieresiscomb_gravecomb;
+ sub dieresiscomb macroncomb by dieresiscomb_macroncomb;
+ sub dotaccentcomb macroncomb by dotaccentcomb_macroncomb;
+ sub macroncomb acutecomb by macroncomb_acutecomb;
+ sub macroncomb dieresiscomb by macroncomb_dieresiscomb;
+ sub macroncomb gravecomb by macroncomb_gravecomb;
+ sub ringcomb acutecomb by ringcomb_acutecomb;
+ sub ringcomb.case acutecomb.case by ringcomb_acutecomb.case;
+ sub tildecomb acutecomb by tildecomb_acutecomb;
+ sub tildecomb dieresiscomb by tildecomb_dieresiscomb;
+ sub tildecomb macroncomb by tildecomb_macroncomb;
+} ccmp_Other_4;
+
+lookup ccmp_latn_1 {
+ lookupflag 0;
+ sub brevecomb acutecomb by brevecomb_acutecomb;
+ sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
+ sub brevecomb gravecomb by brevecomb_gravecomb;
+ sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
+ sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
+ sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
+ sub brevecomb tildecomb by brevecomb_tildecomb;
+ sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
+ sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
+ sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
+ sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
+ sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
+ sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
+ sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
+ sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
+ sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
+} ccmp_latn_1;
+
+lookup ccmp_latn_2 {
+ lookupflag 0;
+ sub brevecomb acutecomb by brevecomb_acutecomb;
+ sub brevecomb.case acutecomb.case by brevecomb_acutecomb.case;
+ sub brevecomb gravecomb by brevecomb_gravecomb;
+ sub brevecomb.case gravecomb.case by brevecomb_gravecomb.case;
+ sub brevecomb hookabovecomb by brevecomb_hookabovecomb;
+ sub brevecomb.case hookabovecomb.case by brevecomb_hookabovecomb.case;
+ sub brevecomb tildecomb by brevecomb_tildecomb;
+ sub brevecomb.case tildecomb.case by brevecomb_tildecomb.case;
+ sub circumflexcomb acutecomb by circumflexcomb_acutecomb;
+ sub circumflexcomb.case acutecomb.case by circumflexcomb_acutecomb.case;
+ sub circumflexcomb gravecomb by circumflexcomb_gravecomb;
+ sub circumflexcomb.case gravecomb.case by circumflexcomb_gravecomb.case;
+ sub circumflexcomb hookabovecomb by circumflexcomb_hookabovecomb;
+ sub circumflexcomb.case hookabovecomb.case by circumflexcomb_hookabovecomb.case;
+ sub circumflexcomb tildecomb by circumflexcomb_tildecomb;
+ sub circumflexcomb.case tildecomb.case by circumflexcomb_tildecomb.case;
+} ccmp_latn_2;
+
+script latn;
+
+} ccmp;
+
+feature locl {
+# automatic
+script latn;
+language NLD;
+sub iacute j' by jacute;
+sub Iacute J' by Jacute;
+language CAT;
+sub l periodcentered' l by periodcentered.loclCAT;
+sub L periodcentered' L by periodcentered.loclCAT.case;
+language ROM;
+sub Scedilla by Scommaaccent;
+sub scedilla by scommaaccent;
+sub Tcedilla by Tcommaaccent;
+sub tcedilla by tcommaaccent;
+language MOL;
+sub Scedilla by Scommaaccent;
+sub scedilla by scommaaccent;
+sub Tcedilla by Tcommaaccent;
+sub tcedilla by tcommaaccent;
+language KAZ;
+sub i by idotaccent;
+language TAT;
+sub i by idotaccent;
+language TRK;
+sub i by idotaccent;
+language CRT;
+sub i by idotaccent;
+language AZE;
+sub i by idotaccent;
+
+} locl;
+
+feature subs {
+# automatic
+sub zero by zeroinferior;
+sub one by oneinferior;
+sub two by twoinferior;
+sub three by threeinferior;
+sub four by fourinferior;
+sub five by fiveinferior;
+sub six by sixinferior;
+sub seven by seveninferior;
+sub eight by eightinferior;
+sub nine by nineinferior;
+
+} subs;
+
+feature sinf {
+# automatic
+sub zero by zero.subs;
+sub one by one.subs;
+sub two by two.subs;
+sub three by three.subs;
+sub four by four.subs;
+sub five by five.subs;
+sub six by six.subs;
+sub seven by seven.subs;
+sub eight by eight.subs;
+sub nine by nine.subs;
+
+} sinf;
+
+feature sups {
+# automatic
+sub zero by zerosuperior;
+sub one by onesuperior;
+sub two by twosuperior;
+sub three by threesuperior;
+sub four by foursuperior;
+sub five by fivesuperior;
+sub six by sixsuperior;
+sub seven by sevensuperior;
+sub eight by eightsuperior;
+sub nine by ninesuperior;
+
+} sups;
+
+feature numr {
+# automatic
+sub zero by zero.numr;
+sub one by one.numr;
+sub two by two.numr;
+sub three by three.numr;
+sub four by four.numr;
+sub five by five.numr;
+sub six by six.numr;
+sub seven by seven.numr;
+sub eight by eight.numr;
+sub nine by nine.numr;
+
+} numr;
+
+feature dnom {
+# automatic
+sub zero by zero.dnom;
+sub one by one.dnom;
+sub two by two.dnom;
+sub three by three.dnom;
+sub four by four.dnom;
+sub five by five.dnom;
+sub six by six.dnom;
+sub seven by seven.dnom;
+sub eight by eight.dnom;
+sub nine by nine.dnom;
+
+} dnom;
+
+feature frac {
+# automatic
+lookup FRAC {
+ sub slash by fraction;
+} FRAC;
+lookup UP {
+ sub [zero one two three four five six seven eight nine] by [zero.numr one.numr two.numr three.numr
four.numr five.numr six.numr seven.numr eight.numr nine.numr];
+} UP;
+lookup DOWN {
+ sub fraction [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr
eight.numr nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom
eight.dnom nine.dnom];
+ sub [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom] [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr
nine.numr]' by [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom
nine.dnom];
+} DOWN;
+
+} frac;
+
+feature ordn {
+# automatic
+sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine;
+sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine;
+sub N o period by numero;
+
+} ordn;
+
+feature lnum {
+# automatic
+sub zero.osf by zero;
+sub one.osf by one;
+sub two.osf by two;
+sub three.osf by three;
+sub four.osf by four;
+sub five.osf by five;
+sub six.osf by six;
+sub seven.osf by seven;
+sub eight.osf by eight;
+sub nine.osf by nine;
+
+} lnum;
+
+feature pnum {
+# automatic
+sub zero.tf by zero;
+sub one.tf by one;
+sub two.tf by two;
+sub three.tf by three;
+sub four.tf by four;
+sub five.tf by five;
+sub six.tf by six;
+sub seven.tf by seven;
+sub eight.tf by eight;
+sub nine.tf by nine;
+sub bulletoperator.tf by bulletoperator;
+sub commercialMinusSign.tf by commercialMinusSign;
+sub divisionslash.tf by divisionslash;
+sub equivalence.tf by equivalence;
+sub notidentical.tf by notidentical;
+sub plus.tf by plus;
+sub minus.tf by minus;
+sub multiply.tf by multiply;
+sub divide.tf by divide;
+sub equal.tf by equal;
+sub notequal.tf by notequal;
+sub greater.tf by greater;
+sub less.tf by less;
+sub greaterequal.tf by greaterequal;
+sub lessequal.tf by lessequal;
+sub plusminus.tf by plusminus;
+sub approxequal.tf by approxequal;
+sub logicalnot.tf by logicalnot;
+sub zero.tosf by zero.osf;
+sub one.tosf by one.osf;
+sub two.tosf by two.osf;
+sub three.tosf by three.osf;
+sub four.tosf by four.osf;
+sub five.tosf by five.osf;
+sub six.tosf by six.osf;
+sub seven.tosf by seven.osf;
+sub eight.tosf by eight.osf;
+sub nine.tosf by nine.osf;
+
+} pnum;
+
+feature tnum {
+# automatic
+sub zero by zero.tf;
+sub one by one.tf;
+sub two by two.tf;
+sub three by three.tf;
+sub four by four.tf;
+sub five by five.tf;
+sub six by six.tf;
+sub seven by seven.tf;
+sub eight by eight.tf;
+sub nine by nine.tf;
+sub bulletoperator by bulletoperator.tf;
+sub commercialMinusSign by commercialMinusSign.tf;
+sub divisionslash by divisionslash.tf;
+sub equivalence by equivalence.tf;
+sub notidentical by notidentical.tf;
+sub plus by plus.tf;
+sub minus by minus.tf;
+sub multiply by multiply.tf;
+sub divide by divide.tf;
+sub equal by equal.tf;
+sub notequal by notequal.tf;
+sub greater by greater.tf;
+sub less by less.tf;
+sub greaterequal by greaterequal.tf;
+sub lessequal by lessequal.tf;
+sub plusminus by plusminus.tf;
+sub approxequal by approxequal.tf;
+sub logicalnot by logicalnot.tf;
+sub zero.osf by zero.tosf;
+sub one.osf by one.tosf;
+sub two.osf by two.tosf;
+sub three.osf by three.tosf;
+sub four.osf by four.tosf;
+sub five.osf by five.tosf;
+sub six.osf by six.tosf;
+sub seven.osf by seven.tosf;
+sub eight.osf by eight.tosf;
+sub nine.osf by nine.tosf;
+
+} tnum;
+
+feature onum {
+# automatic
+sub zero.tf by zero.tosf;
+sub one.tf by one.tosf;
+sub two.tf by two.tosf;
+sub three.tf by three.tosf;
+sub four.tf by four.tosf;
+sub five.tf by five.tosf;
+sub six.tf by six.tosf;
+sub seven.tf by seven.tosf;
+sub eight.tf by eight.tosf;
+sub nine.tf by nine.tosf;
+sub zero by zero.osf;
+sub one by one.osf;
+sub two by two.osf;
+sub three by three.osf;
+sub four by four.osf;
+sub five by five.osf;
+sub six by six.osf;
+sub seven by seven.osf;
+sub eight by eight.osf;
+sub nine by nine.osf;
+
+} onum;
+
+feature case {
+# automatic
+sub periodcentered.loclCAT by periodcentered.loclCAT.case;
+sub dieresiscomb by dieresiscomb.case;
+sub dotaccentcomb by dotaccentcomb.case;
+sub gravecomb by gravecomb.case;
+sub acutecomb by acutecomb.case;
+sub hungarumlautcomb by hungarumlautcomb.case;
+sub circumflexcomb by circumflexcomb.case;
+sub caroncomb by caroncomb.case;
+sub brevecomb by brevecomb.case;
+sub ringcomb by ringcomb.case;
+sub ringcomb_acutecomb by ringcomb_acutecomb.case;
+sub tildecomb by tildecomb.case;
+sub macroncomb by macroncomb.case;
+sub hookabovecomb by hookabovecomb.case;
+sub dblgravecomb by dblgravecomb.case;
+sub breveinvertedcomb by breveinvertedcomb.case;
+sub strokeshortcomb by strokeshortcomb.case;
+sub slashshortcomb by slashshortcomb.case;
+sub slashlongcomb by slashlongcomb.case;
+sub macroncomb.narrow by macroncomb.narrow.case;
+sub ogonekcomb.tall by ogonekcomb.tall.case;
+sub brevecomb-cy by brevecomb-cy.case;
+sub descender-cy by descender-cy.case;
+sub brevecomb_acutecomb by brevecomb_acutecomb.case;
+sub brevecomb_gravecomb by brevecomb_gravecomb.case;
+sub brevecomb_hookabovecomb by brevecomb_hookabovecomb.case;
+sub brevecomb_tildecomb by brevecomb_tildecomb.case;
+sub circumflexcomb_acutecomb by circumflexcomb_acutecomb.case;
+sub circumflexcomb_gravecomb by circumflexcomb_gravecomb.case;
+sub circumflexcomb_hookabovecomb by circumflexcomb_hookabovecomb.case;
+sub circumflexcomb_tildecomb by circumflexcomb_tildecomb.case;
+sub zero.osf by zero.lf;
+sub one.osf by one.lf;
+sub two.osf by two.lf;
+sub three.osf by three.lf;
+sub four.osf by four.lf;
+sub five.osf by five.lf;
+sub six.osf by six.lf;
+sub seven.osf by seven.lf;
+sub eight.osf by eight.lf;
+sub nine.osf by nine.lf;
+sub zero.tf by zero.lf;
+sub one.tf by one.lf;
+sub two.tf by two.lf;
+sub three.tf by three.lf;
+sub four.tf by four.lf;
+sub five.tf by five.lf;
+sub six.tf by six.lf;
+sub seven.tf by seven.lf;
+sub eight.tf by eight.lf;
+sub nine.tf by nine.lf;
+sub zero.tosf by zero.lf;
+sub one.tosf by one.lf;
+sub two.tosf by two.lf;
+sub three.tosf by three.lf;
+sub four.tosf by four.lf;
+sub five.tosf by five.lf;
+sub six.tosf by six.lf;
+sub seven.tosf by seven.lf;
+sub eight.tosf by eight.lf;
+sub nine.tosf by nine.lf;
+
+} case;
+
+feature liga {
+# automatic
+sub f f i by f_f_i;
+sub f f l by f_f_l;
+sub f f by f_f;
+sub f i by fi;
+sub f l by fl;
+
+} liga;
+
+feature zero {
+# automatic
+sub zero.lf by zero.lf.zero;
+sub zero.osf by zero.osf.zero;
+sub zero.tf by zero.tf.zero;
+sub zero.tosf by zero.tosf.zero;
+sub zero by zero.zero;
+
+} zero;
+
+feature salt {
+# automatic
+sub six by six.ss01;
+sub nine by nine.ss01;
+
+} salt;
+
+feature ss01 {
+# automatic
+sub six by six.ss01;
+sub nine by nine.ss01;
+
+} ss01;
+
+table GDEF {
+ # automatic
+ GlyphClassDef
+ [A AE B C D E Eogonek F G H I J K L M N O OE P Q R S Schwa T U V W X Y Z a ae b c d e f g h i idotless
jdotless k l m n o oslash oe p q r s t u v w x y z Ge-cy Ie-cy Zhe-cy Ze-cy Ii-cy Ka-cy En-cy O-cy Pe-cy
Es-cy Te-cy U-cy Ha-cy Che-cy Hardsign-cy Yeru-cy Ereversed-cy Iu-cy Ia-cy Ustrait-cy a-cy ge-cy ie-cy zhe-cy
ze-cy ii-cy ka-cy en-cy o-cy pe-cy es-cy te-cy u-cy ha-cy che-cy yeru-cy e-cy ereversed-cy tshe-cy iu-cy
ia-cy ustrait-cy zero.lf zero.osf zero.tf zero.tosf zero.dnom euro peso], # Base
+ , # Liga
+ [dieresiscomb dieresiscomb_gravecomb dieresiscomb_acutecomb dotaccentcomb gravecomb acutecomb
acutecomb_dotaccentcomb hungarumlautcomb caroncomb.alt circumflexcomb caroncomb brevecomb ringcomb
ringcomb_acutecomb tildecomb tildecomb_dieresiscomb tildecomb_acutecomb tildecomb_macroncomb macroncomb
macroncomb_gravecomb macroncomb_acutecomb hookabovecomb verticallineabovecomb dblgravecomb breveinvertedcomb
commaturnedabovecomb horncomb dotbelowcomb dieresisbelowcomb commaaccentcomb cedillacomb ogonekcomb
verticallinebelowcomb brevebelowcomb macronbelowcomb strokeshortcomb strokelongcomb slashshortcomb
slashlongcomb dieresiscomb.case dotaccentcomb.case gravecomb.case acutecomb.case hungarumlautcomb.case
circumflexcomb.case caroncomb.case brevecomb.case ringcomb.case ringcomb_acutecomb.case tildecomb.case
macroncomb.case hookabovecomb.case dblgravecomb.case breveinvertedcomb.case strokeshortcomb.case
slashshortcomb.case slashlongcomb.case macroncomb.narrow.case ogonekcomb.tall
.case di
eresiscomb.loclVIET dotaccentcomb.loclVIET gravecomb.loclVIET acutecomb.loclVIET circumflexcomb.loclVIET
caroncomb.loclVIET brevecomb.loclVIET tildecomb.loclVIET macroncomb.loclVIET hookabovecomb.loclVIET
macroncomb.narrow ogonekcomb.narrow macronbelowcomb.narrow ogonekcomb.tall brevecomb-cy descender-cy
brevecomb-cy.case descender-cy.case descender-cy.strait brevecomb_acutecomb brevecomb_gravecomb
brevecomb_hookabovecomb brevecomb_tildecomb circumflexcomb_acutecomb circumflexcomb_gravecomb
circumflexcomb_hookabovecomb circumflexcomb_tildecomb brevecomb_acutecomb.case brevecomb_gravecomb.case
brevecomb_hookabovecomb.case brevecomb_tildecomb.case circumflexcomb_acutecomb.case
circumflexcomb_gravecomb.case circumflexcomb_hookabovecomb.case circumflexcomb_tildecomb.case], # Mark
+ ;
+} GDEF;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]