Checkpoint current UI and ink integration state

This commit is contained in:
2026-05-18 02:46:02 +02:00
parent 2c54498ee2
commit d7bb175167
384 changed files with 922883 additions and 764 deletions
@@ -0,0 +1,19 @@
@letters = [ a-z longs germandbls adieresis edieresis odieresis udieresis idieresis aacute eacute iacute oacute uacute agrave egrave igrave ograve ugrave atilde etilde otilde utilde ];
@Letters = [ A-Z a-z ];
@DIGITS = [zero one two three four five six seven eight nine];
@ONUM = @DIGITS;
@LNUM = [zero.lnum one.lnum two.lnum three.lnum four.lnum five.lnum six.lnum seven.lnum eight.lnum nine.lnum ];
@ONUM_TNUM = [zero.taboldstyle one.taboldstyle two.taboldstyle three.taboldstyle four.taboldstyle five.taboldstyle six.taboldstyle seven.taboldstyle eight.taboldstyle nine.taboldstyle ];
@LNUM_TNUM = [zero.tablining one.tablining two.tablining three.tablining four.tablining five.tablining six.tablining seven.tablining eight.tablining nine.tablining ];
@PUNCT = [ exclam quotedbl quotesingle parenleft parenright comma period slash colon semicolon question bracketleft backslash bracketright braceleft bar braceright exclamdown questiondown guillemotleft guillemotright figuredash endash emdash uni2015 quoteleft quoteright quotesinglbase quotedblleft quotedblright quotedblbase ellipsis guilsinglleft guilsinglright ];
@NO_DESC = [A-I K-P R-Z a-i k-p r-z Agrave Aacute Acircumflex Atilde Adieresis Aring AE Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis oslash ugrave uacute ucircumflex udieresis Amacron amacron Abreve abreve Cacute cacute Ccircumflex ccircumflex Cdotaccent cdotaccent Ccaron ccaron Dcaron dcaron Dcroat dcroat Emacron emacron Ebreve ebreve Edotaccent edotaccent Ecaron ecaron Gcircumflex Gbreve Gdotaccent Hcircumflex hcircumflex Hbar hbar Itilde itilde Imacron imacron Ibreve ibreve Idotaccent dotlessi kgreenlandic Lacute lacute Lcaron lcaron Ldot ldot Lslash lslash Nacute nacute Ncaron ncaron napostrophe Omacron omacron Obreve obreve Ohungarumlaut ohungarumlaut OE oe Racute racute Rcaron rcaron Sacute sacute Scircumflex scircumflex Scaron scaron Tcaron tcaron Tbar tbar Utilde utilde Umacron umacron Ubreve ubreve Uring uring Uhungarumlaut uhungarumlaut Wcircumflex wcircumflex Ycircumflex Ydieresis Zacute zacute Zdotaccent zdotaccent Zcaron zcaron longs Ohorn ohorn Uhorn uhorn uni01C4 uni01C5 uni01C6 uni01CD uni01CE uni01CF uni01D0 uni01D1 uni01D2 uni01D3 uni01D4 uni01D5 uni01D6 uni01D7 uni01D8 uni01D9 uni01DA uni01DB uni01DC uni01DE uni01DF uni01E0 uni01E1 uni01E2 uni01E3 Gcaron uni01E8 uni01E9 uni01F1 uni01F2 uni01F3 uni01F4 uni01F8 uni01F9 Aringacute aringacute AEacute aeacute Oslashacute oslashacute uni0202 uni0203 uni0206 uni0207 uni020A uni020B uni020E uni020F uni0212 uni0213 uni0216 uni0217 uni021E uni021F uni0226 uni0227 uni022A uni022B uni022C uni022D uni022E uni022F uni0230 uni0231 uni0232];
@@ -0,0 +1,18 @@
languagesystem DFLT dflt;
languagesystem cyrl dflt;
languagesystem grek dflt;
languagesystem latn dflt;
languagesystem latn DEU ;
languagesystem latn TRK ;
languagesystem latn AZE ;
languagesystem latn CRT ;
languagesystem latn CAT ;
languagesystem latn LAT ;
include (EBGSC_classes.fea)
#include (EBGaramondSC_mark.fea)
#include (EBGaramondSC_mkmk.fea)
include (EBGaramondSC_kern.fea)
include (EBGaramondSC_GSUBs.fea)
include (EBGaramond_case.fea)
@@ -0,0 +1,55 @@
@letters = [ a-z longs germandbls adieresis edieresis odieresis udieresis idieresis aacute eacute iacute oacute uacute agrave egrave igrave ograve ugrave atilde etilde otilde utilde ];
@LETTERS = [ A-Z
Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn
Amacron Abreve Aogonek Cacute Ccircumflex Cdotaccent Ccaron Dcaron Dcroat Emacron Ebreve Edotaccent Eogonek Ecaron Gcircumflex Gbreve Gdotaccent Gcommaaccent Hcircumflex Hbar Itilde Imacron Ibreve Iogonek Idotaccent IJ Jcircumflex Kcommaaccent Lacute Lcommaaccent Lcaron Ldot Lslash Nacute Ncommaaccent Ncaron Eng Omacron Obreve Ohungarumlaut OE Racute Rcommaaccent Rcaron Sacute Scircumflex Scedilla Scaron uni0162 Tcaron Tbar Utilde Umacron Ubreve Uring Uhungarumlaut Uogonek Wcircumflex Ycircumflex Ydieresis Zacute Zdotaccent Zcaron L.CAT U.LAT ];
@Letters = [ @LETTERS @letters ];
@DIGITS = [zero one two three four five six seven eight nine];
@DIGITS_SUBS = [ zero.subs one.subs two.subs three.subs four.subs five.subs six.subs seven.subs eight.subs nine.subs ];
@DIGITS_SUPS = [ zero.sups one.sups two.sups three.sups four.sups five.sups six.sups seven.sups eight.sups nine.sups ];
@DIGITS_SINF = [ zero.sinf one.sinf two.sinf three.sinf four.sinf five.sinf six.sinf seven.sinf eight.sinf nine.sinf ];
@DIGITS_ORDN = [ zero.ordn one.ordn two.ordn three.ordn four.ordn five.ordn six.ordn seven.ordn eight.ordn nine.ordn ];
@ONUM = @DIGITS;
@LNUM = [zero.lnum one.lnum two.lnum three.lnum four.lnum five.lnum six.lnum seven.lnum eight.lnum nine.lnum ];
@ONUM_TNUM = [zero.taboldstyle one.taboldstyle two.taboldstyle three.taboldstyle four.taboldstyle five.taboldstyle six.taboldstyle seven.taboldstyle eight.taboldstyle nine.taboldstyle ];
@LNUM_TNUM = [zero.tablining one.tablining two.tablining three.tablining four.tablining five.tablining six.tablining seven.tablining eight.tablining nine.tablining ];
@SUBS1 = [ exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash @DIGITS colon semicolon less equal greater question at A-Z bracketleft backslash bracketright asciicircum underscore grave a-z braceleft bar braceright asciitilde brokenbar section paragraph Egrave egrave uni2016 dagger daggerdbl f.DEU i.TRK ];
@SUBS2 = [ exclam.subs quotedbl.subs numbersign.subs dollar.subs percent.subs ampersand.subs quotesingle.subs parenleft.subs parenright.subs asterisk.subs plus.subs comma.subs hyphen.subs period.subs slash.subs @DIGITS_SUBS colon.subs semicolon.subs less.subs equal.subs greater.subs question.subs at.subs A.subs-Z.subs bracketleft.subs backslash.subs bracketright.subs asciicircum.subs underscore.subs grave.subs a.subs-z.subs braceleft.subs bar.subs braceright.subs asciitilde.subs brokenbar.subs section.subs paragraph.subs Egrave.subs egrave.subs uni2016.subs dagger.subs daggerdbl.subs f.subs i.subs ];
@ORDN = [ exclam.ordn quotedbl.ordn numbersign.ordn dollar.ordn percent.ordn ampersand.ordn quotesingle.ordn parenleft.ordn parenright.ordn asterisk.ordn plus.ordn comma.ordn hyphen.ordn period.ordn slash.ordn @DIGITS_ORDN colon.ordn semicolon.ordn less.ordn equal.ordn greater.ordn question.ordn at.ordn A.ordn-Z.ordn bracketleft.ordn backslash.ordn bracketright.ordn asciicircum.ordn underscore.ordn grave.ordn a.ordn-z.ordn braceleft.ordn bar.ordn braceright.ordn asciitilde.ordn brokenbar.ordn section.ordn paragraph.ordn Egrave.ordn egrave.ordn uni2016.ordn dagger.ordn daggerdbl.ordn f.ordn i.ordn ];
@SINF = [ exclam.sinf quotedbl.sinf numbersign.sinf dollar.sinf percent.sinf ampersand.sinf quotesingle.sinf parenleft.sinf parenright.sinf asterisk.sinf plus.sinf comma.sinf hyphen.sinf period.sinf slash.sinf @DIGITS_SINF colon.sinf semicolon.sinf less.sinf equal.sinf greater.sinf question.sinf at.sinf A.sinf-Z.sinf bracketleft.sinf backslash.sinf bracketright.sinf asciicircum.sinf underscore.sinf grave.sinf a.sinf-z.sinf braceleft.sinf bar.sinf braceright.sinf asciitilde.sinf brokenbar.sinf section.sinf paragraph.sinf Egrave.sinf egrave.sinf uni2016.sinf dagger.sinf daggerdbl.sinf f.sinf i.sinf ];
@SUPS = [ exclam.sups quotedbl.sups numbersign.sups dollar.sups percent.sups ampersand.sups quotesingle.sups parenleft.sups parenright.sups asterisk.sups plus.sups comma.sups hyphen.sups period.sups slash.sups @DIGITS_SUPS colon.sups semicolon.sups less.sups equal.sups greater.sups question.sups at.sups A.sups-Z.sups bracketleft.sups backslash.sups bracketright.sups asciicircum.sups underscore.sups grave.sups a.sups-z.sups braceleft.sups bar.sups braceright.sups asciitilde.sups brokenbar.sups section.sups paragraph.sups Egrave.sups egrave.sups uni2016.sups dagger.sups daggerdbl.sups f.sups i.sups ];
@PUNCT = [ exclam quotedbl quotesingle parenleft parenright comma period slash colon semicolon question bracketleft backslash bracketright braceleft bar braceright exclamdown questiondown guillemotleft guillemotright figuredash endash emdash uni2015 quoteleft quoteright quotesinglbase quotedblleft quotedblright quotedblbase ellipsis guilsinglleft guilsinglright ];
@NO_DESC = [A-I K-P R-Z a-f h i k-o r-x z Agrave Aacute Acircumflex Atilde Adieresis Aring AE Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis oslash ugrave uacute ucircumflex udieresis Amacron amacron Abreve abreve Cacute cacute Ccircumflex ccircumflex Cdotaccent cdotaccent Ccaron ccaron Dcaron dcaron Dcroat dcroat Emacron emacron Ebreve ebreve Edotaccent edotaccent Ecaron ecaron Gcircumflex Gbreve Gdotaccent Hcircumflex hcircumflex Hbar hbar Itilde itilde Imacron imacron Ibreve ibreve Idotaccent dotlessi kgreenlandic Lacute lacute Lcaron lcaron Ldot ldot Lslash lslash Nacute nacute Ncaron ncaron napostrophe Omacron omacron Obreve obreve Ohungarumlaut ohungarumlaut OE oe Racute racute Rcaron rcaron Sacute sacute Scircumflex scircumflex Scaron scaron Tcaron tcaron Tbar tbar Utilde utilde Umacron umacron Ubreve ubreve Uring uring Uhungarumlaut uhungarumlaut Wcircumflex wcircumflex Ycircumflex Ydieresis Zacute zacute Zdotaccent zdotaccent Zcaron zcaron longs Ohorn ohorn Uhorn uhorn uni01C4 uni01C5 uni01C6 uni01CD uni01CE uni01CF uni01D0 uni01D1 uni01D2 uni01D3 uni01D4 uni01D5 uni01D6 uni01D7 uni01D8 uni01D9 uni01DA uni01DB uni01DC uni01DE uni01DF uni01E0 uni01E1 uni01E2 uni01E3 Gcaron uni01E8 uni01E9 uni01F1 uni01F2 uni01F3 uni01F4 uni01F8 uni01F9 Aringacute aringacute AEacute aeacute Oslashacute oslashacute uni0202 uni0203 uni0206 uni0207 uni020A uni020B uni020E uni020F uni0212 uni0213 uni0216 uni0217 uni021E uni021F uni0226 uni0227 uni022A uni022B uni022C uni022D uni022E uni022F uni0230 uni0231 uni0232 f.DEU];
@RIGHT_DESC = [@NO_DESC q];
@LONG_F = [f f_f f.DEU longs longs_longs];
@SHORT_F = [f.short f_f.short f.short longs.short longs_longs.short];
@HIGH_ASC = [b f h-l adieresis edieresis idieresis odieresis udieresis dotlessi thorn eth longs bracketright braceright question exclam parenright i i.TRK f.DEU f_f uniFB01 uniFB02 uniFB03 uniFB04 uniFB05 uniFB06 f_f.short f.short f_h f_k f_b f_t f_j longs_j longs_b longs_h longs_k longs.short longs_longs.short f_f_h f_f_k f_f_b f_f_t f_f_j longs_longs_j longs_longs_b longs_longs_h longs_longs_k longs_longs_t ];
@SMALLCAPS_BASIS = [ a-z
agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis multiply oslash ugrave uacute ucircumflex udieresis yacute thorn germandbls divide amacron abreve aogonek cacute ccircumflex cdotaccent ccaron dcaron dcroat emacron ebreve edotaccent eogonek ecaron gcircumflex gbreve gdotaccent gcommaaccent hcircumflex hbar itilde imacron ibreve iogonek i.TRK dotlessi ij jcircumflex kcommaaccent kgreenlandic lacute lcommaaccent lcaron ldot lslash nacute ncommaaccent ncaron eng omacron obreve ohungarumlaut oe racute rcommaaccent rcaron sacute scircumflex scedilla scaron uni0163 tcaron tbar utilde umacron ubreve uring uhungarumlaut uogonek wcircumflex ycircumflex ydieresis zacute zdotaccent zcaron longs
f.DEU l.CAT u.LAT ];
@SMALLCAPS = [ a.sc-z.sc
agrave.sc aacute.sc acircumflex.sc atilde.sc adieresis.sc aring.sc ae.sc ccedilla.sc egrave.sc eacute.sc ecircumflex.sc edieresis.sc igrave.sc iacute.sc icircumflex.sc idieresis.sc eth.sc ntilde.sc ograve.sc oacute.sc ocircumflex.sc otilde.sc odieresis.sc multiply.sc oslash.sc ugrave.sc uacute.sc ucircumflex.sc udieresis.sc yacute.sc thorn.sc germandbls.sc divide.sc amacron.sc abreve.sc aogonek.sc cacute.sc ccircumflex.sc cdotaccent.sc ccaron.sc dcaron.sc dcroat.sc emacron.sc ebreve.sc edotaccent.sc eogonek.sc ecaron.sc gcircumflex.sc gbreve.sc gdotaccent.sc gcommaaccent.sc hcircumflex.sc hbar.sc itilde.sc imacron.sc ibreve.sc iogonek.sc i.TRKsc dotlessi.sc ij.sc jcircumflex.sc kcommaaccent.sc kgreenlandic.sc lacute.sc lcommaaccent.sc lcaron.sc ldot.sc lslash.sc nacute.sc ncommaaccent.sc ncaron.sc eng.sc omacron.sc obreve.sc ohungarumlaut.sc oe.sc racute.sc rcommaaccent.sc rcaron.sc sacute.sc scircumflex.sc scedilla.sc scaron.sc uni0163.sc tcaron.sc tbar.sc utilde.sc umacron.sc ubreve.sc uring.sc uhungarumlaut.sc uogonek.sc wcircumflex.sc ycircumflex.sc ydieresis.sc zacute.sc zdotaccent.sc zcaron.sc s.sc
f.sc l.CATsc v.sc ];
@C2SC_BASIS = [ @LETTERS ];
@C2SC = [ A.sc-Z.sc
Agrave.sc Aacute.sc Acircumflex.sc Atilde.sc Adieresis.sc Aring.sc AE.sc Ccedilla.sc Egrave.sc Eacute.sc Ecircumflex.sc Edieresis.sc Igrave.sc Iacute.sc Icircumflex.sc Idieresis.sc Eth.sc Ntilde.sc Ograve.sc Oacute.sc Ocircumflex.sc Otilde.sc Odieresis.sc Oslash.sc Ugrave.sc Uacute.sc Ucircumflex.sc Udieresis.sc Yacute.sc Thorn.sc
Amacron.sc Abreve.sc Aogonek.sc Cacute.sc Ccircumflex.sc Cdotaccent.sc Ccaron.sc Dcaron.sc Dcroat.sc Emacron.sc Ebreve.sc Edotaccent.sc Eogonek.sc Ecaron.sc Gcircumflex.sc Gbreve.sc Gdotaccent.sc Gcommaaccent.sc Hcircumflex.sc Hbar.sc Itilde.sc Imacron.sc Ibreve.sc Iogonek.sc Idotaccent.sc IJ.sc Jcircumflex.sc Kcommaaccent.sc Lacute.sc Lcommaaccent.sc Lcaron.sc Ldot.sc Lslash.sc Nacute.sc Ncommaaccent.sc Ncaron.sc Eng.sc Omacron.sc Obreve.sc Ohungarumlaut.sc OE.sc Racute.sc Rcommaaccent.sc Rcaron.sc Sacute.sc Scircumflex.sc Scedilla.sc Scaron.sc uni0162.sc Tcaron.sc Tbar.sc Utilde.sc Umacron.sc Ubreve.sc Uring.sc Uhungarumlaut.sc Uogonek.sc Wcircumflex.sc Ycircumflex.sc Ydieresis.sc Zacute.sc Zdotaccent.sc Zcaron.sc L.CATsc V.sc ];
@capdiacritics0 = [ gravecomb acutecomb uni0302 tildecomb uni0304 uni0306 uni0307 uni0308 uni030A uni030B uni030C uni030F uni0311 uni0316 uni0317 uni0323 uni0324 uni0325 uni0327 uni0328 uni032C uni032D uni032E uni032F uni0330 uni0331 breve.CYR ];
@capdiacritics1 = [ gravecomb.cap acutecomb.cap uni0302.cap tildecomb.cap uni0304.cap uni0306.cap uni0307.cap uni0308.cap uni030A.cap uni030B.cap uni030C.cap uni030F.cap uni0311.cap uni0316.cap uni0317.cap uni0323.cap uni0324.cap uni0325.cap uni0327.cap uni0328.cap uni032C.cap uni032D.cap uni032E.cap uni032F.cap uni0330.cap uni0331.cap breve.CYRcap ];
@abovediacritics = [ gravecomb acutecomb uni0302 tildecomb uni0304 uni0306 uni0307 uni0308 uni0309 uni030A uni030B uni030C uni030D uni030E uni030F uni0310 uni0311 uni0312 uni0313 uni0314 ];
@@ -0,0 +1,76 @@
lookup loclDEU {
sub \Adieresis by \Adieresis.deu ;
sub \Odieresis by \Odieresis.deu ;
sub \Udieresis by \Udieresis.deu ;
} loclDEU;
lookup loclTRK {
sub i by i.TRK;
} loclTRK;
lookup loclCAT {
sub L by L.CAT;
sub l by l.CAT;
} loclCAT;
lookup loclLAT {
sub u by u.LAT;
sub U by U.LAT;
} loclLAT;
lookup LATliga {
sub a e by ae;
sub o e by oe;
} LATliga;
feature locl {
script latn;
language DEU exclude_dflt;
lookup loclDEU;
language TRK exclude_dflt;
lookup loclTRK;
language AZE exclude_dflt;
lookup loclTRK;
language CRT exclude_dflt;
lookup loclTRK;
language CAT exclude_dflt;
lookup loclCAT;
language LAT exclude_dflt;
lookup loclLAT;
lookup LATliga;
} locl;
feature lnum {
sub @ONUM by @LNUM;
sub @ONUM_TNUM by @LNUM_TNUM;
} lnum;
feature onum {
sub @LNUM by @ONUM;
sub @LNUM_TNUM by @ONUM_TNUM;
} onum;
feature tnum {
sub @ONUM by @ONUM_TNUM;
sub @LNUM by @LNUM_TNUM;
} tnum;
feature pnum {
sub @ONUM_TNUM by @ONUM;
sub @LNUM_TNUM by @LNUM;
} pnum;
feature liga {
sub L.CAT periodcentered by Ldot;
sub l.CAT periodcentered by ldot;
} liga;
lookup Q_longtail {
sub Q' @NO_DESC @NO_DESC by Q.long;
# sub q' @NO_DESC @NO_DESC by q.long;
} Q_longtail;
feature calt {
lookup Q_longtail;
} calt;
@@ -0,0 +1,38 @@
@LeftKern_A = [ A ];
@LeftKern_a = [ A.sc a.sc ];
@LeftKern_O = [ O Ohorn Q ];
@LeftKern_V = [ V W Y ];
@LeftKern_v = [ V.sc v.sc W.sc w.sc ];
@RightKern_A = [ A ];
@RightKern_a = [ A.sc a.sc ];
@RightKern_L = [ L ];
@RightKern_O = [ O ];
@RightKern_T = [ T ];
@RightKern_V = [ V W Y ];
@RightKern_v = [ V.sc v.sc W.sc w.sc ];
lookup kern {
pos @RightKern_v @LeftKern_A -50;
# pos @RightKern_v @LeftKern_o -10;
pos @RightKern_A @LeftKern_v -70;
pos @RightKern_A @LeftKern_O -50;
pos @RightKern_A @LeftKern_V -150;
pos @RightKern_a @LeftKern_v -75;
pos @RightKern_L @LeftKern_v -50;
# pos @RightKern_T @LeftKern_m -120;
# pos @RightKern_T @LeftKern_o -135;
pos @RightKern_T @LeftKern_v -100;
# pos @RightKern_T @LeftKern_t -100;
pos @RightKern_V @LeftKern_A -150;
pos @RightKern_v @LeftKern_a -75;
# pos @RightKern_V @LeftKern_o -100;
# pos @RightKern_V @LeftKern_t -80;
pos @RightKern_O @LeftKern_A -95;
# pos @RightKern_o @LeftKern_v -8;
} kern;
feature kern {
lookup kern;
} kern;
@@ -0,0 +1,13 @@
lookup c2sc_standard {
sub [A-Z] by [a.sc-z.sc];
sub \Idotaccent by \i.TRKsc ;
sub \uni1e9e by germandbls.sc;
sub Adieresis by adieresis.sc;
sub Odieresis by odieresis.sc;
sub Udieresis by udieresis.sc;
sub AE by ae.sc;
} c2sc_standard;
feature c2sc {
lookup c2sc_standard;
} c2sc;
@@ -0,0 +1,18 @@
lookup Q_longtail {
sub Q' @NO_DESC @NO_DESC by Q.long;
sub Q' @NO_DESC @NO_DESC @RIGHT_DESC by Q.long;
} Q_longtail;
lookup f_short {
sub @LONG_F' [ @LETTERS @HIGH_ASC space @PUNCT ] by @SHORT_F;
sub @LONG_F' \uni200c @HIGH_ASC by @SHORT_F;
} f_short;
lookup caltLAT {
#sub [ space @PUNCT ] u.LAT' by u.LATinit;
sub [ @Letters U.LAT u.LAT u.LATmedi v.LATmedi ] [ u.LAT v.LAT]' by [ u.LATmedi v.LATmedi];
} caltLAT;
feature calt {
lookup Q_longtail;
lookup f_short;
lookup caltLAT;
} calt;
@@ -0,0 +1,3 @@
feature case {
sub @capdiacritics0 by @capdiacritics1;
} case;
@@ -0,0 +1,23 @@
lookup CCMP_contextual {
sub [ i j ]' @abovediacritics by [ dotlessi dotlessj ];
sub [ l d t ] \uni030C' by uni030C.alt;
} CCMP_contextual;
lookup CCMP_stacking {
sub [ uni0302 ] [ acutecomb gravecomb]' by [acutecomb.stack gravecomb.stack];
subtable;
sub [ uni0302 ]' [acutecomb.stack gravecomb.stack] by uni0302.stack;
} CCMP_stacking;
lookup CCMP_Precomp {
sub \uni1EA5 by \a \uni0302.stack \acutecomb.stack;
sub \uni1EA7 by \a \uni0302.stack \gravecomb.stack;
sub \uni1EAB by \a \uni0302.stack \tildecomb.stack;
} CCMP_Precomp;
feature ccmp {
lookup CCMP_contextual;
lookup CCMP_stacking;
lookup CCMP_Precomp;
} ccmp;
@@ -0,0 +1,30 @@
languagesystem DFLT dflt;
languagesystem cyrl dflt;
languagesystem cyrl SRB ;
languagesystem cyrl BGR ;
languagesystem grek dflt;
languagesystem latn dflt;
languagesystem latn DEU ;
languagesystem latn TRK ;
languagesystem latn AZE ;
languagesystem latn CRT ;
languagesystem latn CAT ;
languagesystem latn LAT ;
languagesystem latn PLK ;
#languagesystem latn ROM ; not used; see discussion at https://bugs.launchpad.net/ubuntu-font-family/+bug/615565
#languagesystem latn MOL ;
include (EBGaramondRoman_classes.fea)
include (EBGaramond_mark.fea)
include (EBGaramond_mkmk.fea)
include (EBGaramond_kern.fea)
include (EBGaramond_locals.fea)
include (EBGaramond_case.fea)
include (EBGaramond_ccmp.fea)
include (EBGaramond_longs.fea)
include (EBGaramond_styles.fea)
include (EBGaramond_figures.fea)
include (EBGaramond_smallcaps.fea)
include (EBGaramond_ligatures.fea)
include (EBGaramond_calt.fea)
@@ -0,0 +1,73 @@
lookup subs {
sub @SUBS1 by @SUBS2;
} subs;
feature subs {
lookup subs;
} subs;
feature dnom {
lookup subs;
} dnom;
lookup ordn {
sub @SUBS1 by @ORDN;
} ordn;
feature ordn {
lookup ordn;
} ordn;
feature numr {
lookup ordn;
} numr;
lookup sinf {
sub @SUBS1 by @SINF;
} sinf;
feature sinf {
lookup sinf;
} sinf;
lookup sups {
sub @SUBS1 by @SUPS;
} sups;
feature sups {
lookup sups;
} sups;
lookup frac_slash {
sub slash by fraction;
} frac_slash;
lookup frac {
sub [ slash fraction @DIGITS @DIGITS_SUBS ] @DIGITS' by @DIGITS_SUBS;
sub @DIGITS' [ slash fraction @DIGITS @DIGITS_ORDN ] by @DIGITS_ORDN;
} frac;
feature frac {
lookup frac_slash;
lookup frac;
} frac;
feature lnum {
sub @ONUM by @LNUM;
sub @ONUM_TNUM by @LNUM_TNUM;
} lnum;
feature onum {
sub @LNUM by @ONUM;
sub @LNUM_TNUM by @ONUM_TNUM;
} onum;
feature tnum {
sub @ONUM by @ONUM_TNUM;
sub @LNUM by @LNUM_TNUM;
} tnum;
feature pnum {
sub @ONUM_TNUM by @ONUM;
sub @LNUM_TNUM by @LNUM;
} pnum;
@@ -0,0 +1,105 @@
## Latin ##
@LeftKern_A = [ A ];
@LeftKern_asc = [ A.sc a.sc ];
@LeftKern_O = [ O Ohorn Q ];
@LeftKern_V = [ V W Y ];
@LeftKern_b = [ b h k l thorn ];
@LeftKern_o = [ a ae aogonek c ccedilla d e eogonek g o oogonek oe q s scedilla eth ];
@LeftKern_m = [ m n p r u uogonek z dotlessi ];
@LeftKern_t = [ t ];
@LeftKern_v = [ v w x y ];
@LeftKern_vsc = [ V.sc v.sc W.sc w.sc ];
@LeftKern_i = [ i j agrave aacute adieresis atilde ];
@RightKern_A = [ A ];
@RightKern_asc = [ A.sc a.sc ];
@RightKern_E = [ E Eacute Egrave Edieresis Etilde Eogonek Ecircumflex Emacron Ebreve Edotaccent Ecaron ];
@RightKern_F = [ F ];
@RightKern_L = [ L ];
@RightKern_M = [ M ];
@RightKern_O = [ O ];
@RightKern_T = [ T ];
@RightKern_V = [ V W Y ];
@RightKern_m = [ h m n ];
@RightKern_o = [ ae b c e o oe p thorn ];
@RightKern_v = [ v w y ];
@RightKern_vsc = [ V.sc v.sc W.sc w.sc ];
## Cyrillic ##
@LeftKern_ie = [ uni0430 uni0435 uni0437 uni043E uni0441 uni044D uni044F uni0454 uni0455 uni04E9 ];
@LeftKern_en = [ uni0432 uni0433 uni0438 uni043A uni043C uni043D uni043F uni0446 uni0448 uni0449 uni044B uni044C uni044E uni045A uni045F uni0434.alt uni043B.alt uni0459.alt ];
@LeftKern_de = [ uni0434 uni043B uni0459 ];
@LeftKern_te = [ uni0442 uni044A ];
@LeftKern_cyr_u = [ uni0443 ];
@LeftKern_zhe = [ uni0436 uni0445 ];
@LeftKern_ef = [ uni0444 ];
@LeftKern_che = [ uni0447 ];
@RightKern_Ghe = [ uni0413 uni0490 ];
@RightKern_Te = [uni0422 ];
@RightKern_de = [ uni0434 uni043B ];
@RightKern_en = [ uni0438 uni043C uni043D uni043F uni0446 uni0447 uni0448 uni0449 uni044B uni044F uni045F uni0434.alt uni043B.alt ];
lookup kern {
pos @RightKern_m @LeftKern_v -16;
# pos s o 20;
# pos s a 12;
# pos s e 48;
pos @RightKern_v @LeftKern_A -50;
pos @RightKern_v @LeftKern_o -10;
pos @RightKern_A @LeftKern_v -70;
pos @RightKern_A @LeftKern_O -50;
pos @RightKern_A @LeftKern_V -150;
pos @RightKern_asc @LeftKern_vsc -75;
pos @RightKern_E @LeftKern_m -10;
pos @RightKern_E @LeftKern_o -25;
pos @RightKern_E @LeftKern_v -30;
pos @RightKern_E @LeftKern_t -20;
pos @RightKern_F @LeftKern_m -40;
pos @RightKern_F @LeftKern_o -30;
pos @RightKern_F @LeftKern_v -30;
pos @RightKern_F @LeftKern_t -20;
pos @RightKern_L @LeftKern_v -50;
pos @RightKern_M @LeftKern_m -10;
pos @RightKern_M @LeftKern_t -40;
pos @RightKern_M @LeftKern_v -40;
pos @RightKern_M @LeftKern_o -20;
pos @RightKern_T @LeftKern_m -120;
pos @RightKern_T @LeftKern_o -135;
pos @RightKern_T @LeftKern_v -100;
pos @RightKern_T @LeftKern_t -100;
pos @RightKern_V @LeftKern_A -150;
pos @RightKern_vsc @LeftKern_asc -75;
pos @RightKern_V @LeftKern_o -100;
pos @RightKern_V @LeftKern_t -80;
pos @RightKern_O @LeftKern_A -95;
pos @RightKern_O @LeftKern_o -10;
# pos @RightKern_o @LeftKern_v -8;
## Cyrillic
pos @RightKern_Ghe @LeftKern_ie -130;
pos @RightKern_Ghe @LeftKern_de -140;
pos @RightKern_Ghe @LeftKern_en -100;
pos @RightKern_Ghe @LeftKern_te -130;
pos @RightKern_Ghe @LeftKern_cyr_u -115;
pos @RightKern_Ghe @LeftKern_zhe -105;
pos @RightKern_Ghe @LeftKern_ef -70;
pos @RightKern_Ghe @LeftKern_che -115;
pos @RightKern_Te @LeftKern_ie -125;
pos @RightKern_Te @LeftKern_de -135;
pos @RightKern_Te @LeftKern_en -95;
pos @RightKern_Te @LeftKern_te -130;
pos @RightKern_Te @LeftKern_cyr_u -110;
pos @RightKern_Te @LeftKern_zhe -100;
pos @RightKern_Te @LeftKern_ef -65;
pos @RightKern_Te @LeftKern_che -110;
} kern;
feature kern {
lookup kern;
} kern;
@@ -0,0 +1,50 @@
feature dlig {
sub s t by uniFB06;
sub c t by c_t;
} dlig;
lookup liga_standard {
sub [ f f.DEU ] i by uniFB01; # f_i
sub [ f f.DEU ] [ f f.DEU ] i by uniFB03; # f_f_i
sub longs i by longs_i;
sub f f by f_f;
sub f.DEU f.DEU by f_f;
sub [f f.DEU] l by uniFB02; #f_l
sub f f l by uniFB04; #f_f_l
sub f h by f_h;
sub f k by f_k;
sub f b by f_b;
sub f j by f_j;
sub f f h by f_f_h;
sub f f k by f_f_k;
sub f f b by f_f_b;
sub f f j by f_f_j;
sub longs t by uniFB05;
sub longs longs l by longs_longs_l;
sub longs longs i by longs_longs_i;
sub longs longs by longs_longs;
sub longs l by longs_l;
sub T h by T_h;
# sub c h by c_h;
# sub c k by c_k;
sub longs s by longs_s;
sub [ f f.DEU ] t by f_t;
sub [ f f.DEU ] [f f.DEU] t by f_f_t;
sub longs j by longs_j;
sub longs b by longs_b;
sub longs h by longs_h;
sub longs k by longs_k;
sub longs longs j by longs_longs_j;
sub longs longs b by longs_longs_b;
sub longs longs h by longs_longs_h;
sub longs longs k by longs_longs_k;
sub longs longs t by longs_longs_t;
sub L.CAT periodcentered by Ldot;
sub l.CAT periodcentered by ldot;
sub L.CATsc periodcentered by Ldot.sc;
sub l.CATsc periodcentered by ldot.sc;
} liga_standard;
feature liga {
lookup liga_standard;
} liga;
@@ -0,0 +1,62 @@
lookup loclDEU {
sub \Adieresis by \Adieresis.deu ;
sub \Odieresis by \Odieresis.deu ;
sub \Udieresis by \Udieresis.deu ;
sub f by f.DEU;
} loclDEU;
#lookup loclPLK {
# sub [ Cacute Nacute Oacute Sacute Zacute acutecomb.cap ] by [ Cacute.PLK Nacute.PLK Oacute.PLK Sacute.PLK Zacute.PLK acute.PLKcap ];
#}loclPLK;
## polish lookup not used any longer because uppercase acute is now even less shallow than acute.plk
lookup loclTRK {
# cf. http://typophile.com/node/17787
sub i by i.TRK;
} loclTRK;
lookup loclCAT {
sub L by L.CAT;
sub l by l.CAT;
} loclCAT;
lookup loclSRB {
sub uni0431 by uni0431.SRB;
sub breve by breve.CYR;
} loclSRB;
lookup loclLAT {
sub u by u.LAT;
sub v by v.LAT;
sub U by U.LAT;
} loclLAT;
lookup LATliga {
sub a e by ae;
sub o e by oe;
} LATliga;
feature locl {
script latn;
language DEU exclude_dflt;
lookup loclDEU;
# language PLK exclude_dflt;
# lookup loclPLK;
language TRK exclude_dflt;
lookup loclTRK;
language AZE exclude_dflt;
lookup loclTRK;
language CRT exclude_dflt;
lookup loclTRK;
language CAT exclude_dflt;
lookup loclCAT;
language LAT exclude_dflt;
lookup loclLAT;
lookup LATliga;
script cyrl;
language dflt;
sub breve by breve.CYR;
language SRB exclude_dflt;
lookup loclSRB;
} locl;
@@ -0,0 +1,8 @@
lookup longs_replacement {
sub s' @letters by longs;
} longs_replacement;
feature cv01 {
lookup longs_replacement;
} cv01;
@@ -0,0 +1,261 @@
lookup \mark {
lookupflag 0;
markClass [\uni0302 ] <anchor 138 550> @top_accent;
markClass [\uni030C ] <anchor 139 533> @top_accent;
markClass [\tildecomb \uni0342 ] <anchor 152 533> @top_accent;
markClass [\uni0306 \uni0311 ] <anchor 169 533> @top_accent;
markClass [\uni0307 \uni030A \uni0307.stack \uni030A.stack ] <anchor 111 550> @top_accent;
markClass [\uni030B ] <anchor 109 550> @top_accent;
markClass [\uni0312 \uni0314 ] <anchor 107 550> @top_accent;
markClass [\uni0313 ] <anchor 66 550> @top_accent;
markClass [\acutecomb ] <anchor 46 550> @top_accent;
markClass [\acutecomb.flat ] <anchor 89 550> @top_accent;
markClass [\uni0308 ] <anchor 148 531> @top_accent;
markClass [\uni030E ] <anchor 90 550> @top_accent;
markClass [\uni0304 \uni0304.stack ] <anchor 180 540> @top_accent;
markClass [\gravecomb ] <anchor 133 550> @top_accent;
markClass [\gravecomb.flat ] <anchor 127 550> @top_accent;
markClass [\uni0305 ] <anchor 200 550> @top_accent;
markClass [\uni030D ] <anchor 50 550> @top_accent;
markClass [\uni030C.cap \uni0302.cap ] <anchor 151 680> @top_accent;
markClass [\uni0302.flat \uni030C.flat ] <anchor 136 678> @top_accent;
markClass [\acutecomb.cap ] <anchor 44 700> @top_accent;
markClass [\gravecomb.cap ] <anchor 135 700> @top_accent;
markClass [\tildecomb.cap ] <anchor 143 693> @top_accent;
markClass [\uni0306.cap \uni0304.cap \uni0311.cap ] <anchor 155 700> @top_accent;
markClass [\uni0308.cap ] <anchor 153 700> @top_accent;
markClass [\uni030B.cap ] <anchor 103 700> @top_accent;
markClass [\uni030A.cap ] <anchor 94 700> @top_accent;
markClass [\uni0307.cap ] <anchor 60 700> @top_accent;
markClass [\hookabovecomb \hookabovecomb.stack ] <anchor 136 550> @top_accent;
markClass [\uni030F ] <anchor 205 550> @top_accent;
markClass [\uni02BF \uni0351 ] <anchor 89 531> @top_accent;
markClass [\gravecomb.stack ] <anchor 72 550> @top_accent;
markClass [\acutecomb.stack ] <anchor 52 550> @top_accent;
markClass [\uni0302.stack \uni030C.stack ] <anchor 116 550> @top_accent;
markClass [\tildecomb.stack ] <anchor 131 533> @top_accent;
markClass [\uni0306.stack ] <anchor 167 533> @top_accent;
markClass [\uni0310 ] <anchor 165 533> @top_accent;
markClass [\uni0357 ] <anchor 99 531> @top_accent;
markClass [\uni031A ] <anchor 100 550> @top_accent;
markClass [\uni030F.cap ] <anchor 197 700> @top_accent;
pos base [\a \uni1EA1 ] <anchor 191 550> mark @top_accent;
pos base [\t \t_t ] <anchor 133 550> mark @top_accent;
pos base [\l ] <anchor 107 782> mark @top_accent;
pos base [\o \ohorn \uni028A \uni043E \uni04E9 ] <anchor 246 550> mark @top_accent;
pos base [\h \hbar ] <anchor 242 757> mark @top_accent;
pos base [\n \eng ] <anchor 258 550> mark @top_accent;
pos base [\m ] <anchor 390 550> mark @top_accent;
pos base [\p \uni0440 \thorn ] <anchor 261 550> mark @top_accent;
pos base [\q ] <anchor 272 550> mark @top_accent;
pos base [\r \uni0430 ] <anchor 190 550> mark @top_accent;
pos base [\e \uni0435 ] <anchor 219 550> mark @top_accent;
pos base [\c \ccedilla \uni0441 ] <anchor 230 550> mark @top_accent;
pos base [\u \uhorn ] <anchor 251 550> mark @top_accent;
pos base [\s ] <anchor 176 550> mark @top_accent;
pos base [\f \longs \f.short \f_t \longs.short ] <anchor 281 768> mark @top_accent;
pos base [\v ] <anchor 218 550> mark @top_accent;
pos base [\w ] <anchor 342 550> mark @top_accent;
pos base [\y ] <anchor 234 550> mark @top_accent;
pos base [\g \uni0447 ] <anchor 206 550> mark @top_accent;
pos base [\P ] <anchor 286 700> mark @top_accent;
pos base [\M ] <anchor 449 700> mark @top_accent;
pos base [\N ] <anchor 411 700> mark @top_accent;
pos base [\R ] <anchor 283 700> mark @top_accent;
pos base [\B ] <anchor 257 700> mark @top_accent;
pos base [\A \Aogonek \uni0410 \uni041A ] <anchor 363 700> mark @top_accent;
pos base [\C \X \Ccedilla ] <anchor 381 700> mark @top_accent;
pos base [\I ] <anchor 181 700> mark @top_accent;
pos base [\T \Tbar ] <anchor 341 700> mark @top_accent;
pos base [\E \uni0415 \uni0413 ] <anchor 287 701> mark @top_accent;
pos base [\L \Lslash ] <anchor 186 700> mark @top_accent;
pos base [\V ] <anchor 323 700> mark @top_accent;
pos base [\W ] <anchor 481 700> mark @top_accent;
pos base [\G \Eng ] <anchor 400 700> mark @top_accent;
pos base [\F \uni0191 ] <anchor 279 700> mark @top_accent;
pos base [\J ] <anchor 173 700> mark @top_accent;
pos base [\D ] <anchor 342 700> mark @top_accent;
pos base [\Q ] <anchor 405 700> mark @top_accent;
pos base [\S ] <anchor 240 700> mark @top_accent;
pos base [\O \Ohorn \uni01EA \uni041E \Oslash \uni04E8 ] <anchor 383 700> mark @top_accent;
pos base [\H \Hbar \uniA726 ] <anchor 406 700> mark @top_accent;
pos base [\U \Uhorn ] <anchor 390 700> mark @top_accent;
pos base [\Y ] <anchor 320 700> mark @top_accent;
pos base [\x ] <anchor 235 550> mark @top_accent;
pos base [\K ] <anchor 343 700> mark @top_accent;
pos base [\k ] <anchor 280 708> mark @top_accent;
pos base [\Z ] <anchor 315 700> mark @top_accent;
pos base [\z ] <anchor 201 550> mark @top_accent;
pos base [\dotlessi ] <anchor 115 550> mark @top_accent;
pos base [\dotlessj ] <anchor 100 550> mark @top_accent;
pos base [\Alpha ] <anchor 174 630> mark @top_accent;
pos base [\Epsilon ] <anchor -36 661> mark @top_accent;
pos base [\Eta ] <anchor -44 648> mark @top_accent;
pos base [\Iota ] <anchor -19 646> mark @top_accent;
pos base [\Upsilon ] <anchor -65 653> mark @top_accent;
pos base [\uni0443 ] <anchor 223 550> mark @top_accent;
pos base [\AE ] <anchor 540 700> mark @top_accent;
pos base [\oslash ] <anchor 245 550> mark @top_accent;
pos base [\ae \uni1D02 ] <anchor 299 550> mark @top_accent;
pos base [\kgreenlandic ] <anchor 231 550> mark @top_accent;
pos base [\uni0292 ] <anchor 199 550> mark @top_accent;
pos base [\uni043A ] <anchor 220 550> mark @top_accent;
pos base [\Gamma ] <anchor 272 700> mark @top_accent;
pos base [\Omega ] <anchor 19 650> mark @top_accent;
pos base [\uni0418 ] <anchor 396 700> mark @top_accent;
pos base [\a.sc ] <anchor 276 580> mark @top_accent;
pos base [\c.sc ] <anchor 254 580> mark @top_accent;
pos base [\d.sc ] <anchor 262 580> mark @top_accent;
pos base [\e.sc ] <anchor 206 581> mark @top_accent;
pos base [\g.sc ] <anchor 284 580> mark @top_accent;
pos base [\h.sc ] <anchor 299 580> mark @top_accent;
pos base [\i.sc ] <anchor 166 580> mark @top_accent;
pos base [\j.sc ] <anchor 143 580> mark @top_accent;
pos base [\k.sc ] <anchor 257 580> mark @top_accent;
pos base [\l.sc ] <anchor 128 580> mark @top_accent;
pos base [\m.sc ] <anchor 356 580> mark @top_accent;
pos base [\n.sc ] <anchor 327 580> mark @top_accent;
pos base [\o.sc ] <anchor 302 580> mark @top_accent;
pos base [\p.sc ] <anchor 231 580> mark @top_accent;
pos base [\q.sc ] <anchor 294 580> mark @top_accent;
pos base [\r.sc ] <anchor 213 580> mark @top_accent;
pos base [\s.sc \uniA731 ] <anchor 193 580> mark @top_accent;
pos base [\t.sc ] <anchor 233 580> mark @top_accent;
pos base [\u.sc ] <anchor 292 563> mark @top_accent;
pos base [\v.sc ] <anchor 291 580> mark @top_accent;
pos base [\w.sc ] <anchor 374 580> mark @top_accent;
pos base [\x.sc ] <anchor 288 580> mark @top_accent;
pos base [\y.sc ] <anchor 251 580> mark @top_accent;
pos base [\z.sc ] <anchor 234 580> mark @top_accent;
pos base [\uni043D \uni0438 ] <anchor 255 550> mark @top_accent;
pos base [\uni0433 ] <anchor 180 550> mark @top_accent;
pos base [\uni0436 ] <anchor 328 550> mark @top_accent;
pos base [\uni0437 ] <anchor 174 550> mark @top_accent;
pos base [\uni044B ] <anchor 305 550> mark @top_accent;
pos base [\uni044D \uni0276 ] <anchor 175 550> mark @top_accent;
pos base [\uni0475 ] <anchor 236 550> mark @top_accent;
pos base [\uni0474 ] <anchor 358 741> mark @top_accent;
pos base [\uni04D8 ] <anchor 310 700> mark @top_accent;
pos base [\uni01B7 ] <anchor 250 700> mark @top_accent;
pos base [\uniA727 ] <anchor 253 550> mark @top_accent;
subtable;
markClass [\uni0326 ] <anchor 106 -100> @below_accent;
markClass [\dotbelowcomb ] <anchor 50 -100> @below_accent;
markClass [\uni0331 \uni0330 ] <anchor 180 -100> @below_accent;
markClass [\uni032C \uni032D ] <anchor 138 -100> @below_accent;
markClass [\uni032E \uni032F ] <anchor 169 -100> @below_accent;
markClass [\uni0324 ] <anchor 188 -100> @below_accent;
markClass [\uni0325 ] <anchor 111 -100> @below_accent;
markClass [\uni0316 ] <anchor -100 -150> @below_accent;
markClass [\uni0317 ] <anchor -155 -150> @below_accent;
markClass [\uni0339 ] <anchor 99 -100> @below_accent;
markClass [\uni031C ] <anchor 89 -100> @below_accent;
markClass [\uni031F \uni031E \uni031D \uni0319 \uni0318 \uni0320 ] <anchor 100 -100> @below_accent;
markClass [\uni0329 ] <anchor 25 -100> @below_accent;
markClass [\uni032A \uni033A ] <anchor 125 -100> @below_accent;
markClass [\uni0332 \uni0333 ] <anchor 200 -100> @below_accent;
markClass [\uni033B ] <anchor 85 -100> @below_accent;
markClass [\uni033C \uni032B ] <anchor 145 -100> @below_accent;
markClass [\uni0316.cap ] <anchor 98 -100> @below_accent;
markClass [\uni0317.cap ] <anchor 81 -100> @below_accent;
markClass [\uni0323.cap ] <anchor 60 -100> @below_accent;
markClass [\uni0324.cap ] <anchor 157 -100> @below_accent;
markClass [\uni0325.cap ] <anchor 97 -100> @below_accent;
markClass [\uni032C.cap ] <anchor 153 -100> @below_accent;
markClass [\uni032D.cap ] <anchor 153 -100> @below_accent;
markClass [\uni032E.cap ] <anchor 158 -100> @below_accent;
markClass [\uni032F.cap ] <anchor 158 -100> @below_accent;
markClass [\uni0330.cap ] <anchor 148 -100> @below_accent;
markClass [\uni0331.cap ] <anchor 158 -100> @below_accent;
pos base [\a \z \uni1EA1 ] <anchor 178 -100> mark @below_accent;
pos base [\t \t_t ] <anchor 186 -100> mark @below_accent;
pos base [\l ] <anchor 120 -100> mark @below_accent;
pos base [\o \ohorn \uni028A \uni043E \uni04E9 ] <anchor 246 -100> mark @below_accent;
pos base [\h \hbar ] <anchor 231 -100> mark @below_accent;
pos base [\i \lslash ] <anchor 115 -100> mark @below_accent;
pos base [\n \eng ] <anchor 265 -100> mark @below_accent;
pos base [\m ] <anchor 390 -100> mark @below_accent;
pos base [\b ] <anchor 252 -100> mark @below_accent;
pos base [\d ] <anchor 241 -100> mark @below_accent;
pos base [\r \uni0430 ] <anchor 131 -100> mark @below_accent;
pos base [\e \uni0435 ] <anchor 214 -100> mark @below_accent;
pos base [\c \ccedilla \uni0441 ] <anchor 199 -100> mark @below_accent;
pos base [\u \uhorn ] <anchor 259 -100> mark @below_accent;
pos base [\s ] <anchor 167 -100> mark @below_accent;
pos base [\f \longs \f.short \f_t \longs.short ] <anchor 134 -100> mark @below_accent;
pos base [\v ] <anchor 218 -100> mark @below_accent;
pos base [\w ] <anchor 349 -100> mark @below_accent;
pos base [\P ] <anchor 170 -100> mark @below_accent;
pos base [\M ] <anchor 406 -100> mark @below_accent;
pos base [\N ] <anchor 405 -100> mark @below_accent;
pos base [\R ] <anchor 374 -100> mark @below_accent;
pos base [\B \uniA727 ] <anchor 272 -100> mark @below_accent;
pos base [\A \Aogonek \uni0410 ] <anchor 334 -100> mark @below_accent;
pos base [\C \X ] <anchor 404 -100> mark @below_accent;
pos base [\I ] <anchor 181 -100> mark @below_accent;
pos base [\T \Tbar ] <anchor 334 -100> mark @below_accent;
pos base [\E \uni0415 \uni0413 ] <anchor 280 -100> mark @below_accent;
pos base [\L \Lslash ] <anchor 314 -100> mark @below_accent;
pos base [\V ] <anchor 297 -100> mark @below_accent;
pos base [\W ] <anchor 454 -100> mark @below_accent;
pos base [\G \Eng ] <anchor 401 -100> mark @below_accent;
pos base [\D \O \U \Ohorn \uni041E \Oslash \uni04E8 ] <anchor 370 -100> mark @below_accent;
pos base [\S ] <anchor 225 -100> mark @below_accent;
pos base [\H \Hbar \uniA726 ] <anchor 423 -100> mark @below_accent;
pos base [\Y ] <anchor 302 -100> mark @below_accent;
pos base [\x ] <anchor 202 -100> mark @below_accent;
pos base [\K \uni041A ] <anchor 355 -100> mark @below_accent;
pos base [\k ] <anchor 233 -100> mark @below_accent;
pos base [\Z ] <anchor 306 -100> mark @below_accent;
pos base [] <anchor 106 -100> mark @below_accent;
pos base [\Uhorn ] <anchor 393 -100> mark @below_accent;
pos base [\Alpha ] <anchor 340 -100> mark @below_accent;
pos base [\Eta ] <anchor 418 -100> mark @below_accent;
pos base [\uniFB02 \uniFB04 \longs_longs_l \longs_l ] <anchor 655 -100> mark @below_accent;
pos base [\kgreenlandic ] <anchor 229 -100> mark @below_accent;
pos base [\uni043A ] <anchor 220 -100> mark @below_accent;
pos base [\Omega ] <anchor 415 -100> mark @below_accent;
pos base [\g.sc ] <anchor 268 -99> mark @below_accent;
pos base [\uni043D \uni0438 ] <anchor 255 -100> mark @below_accent;
pos base [\uni0433 ] <anchor 180 -100> mark @below_accent;
pos base [\uni0436 ] <anchor 328 -100> mark @below_accent;
pos base [\uni0437 ] <anchor 174 -100> mark @below_accent;
pos base [\uni044B ] <anchor 305 -100> mark @below_accent;
pos base [\uni044D \uni0276 ] <anchor 175 -100> mark @below_accent;
subtable;
markClass [\uni0328 ] <anchor 156 18> @ogonek;
markClass [\uni0328.cap ] <anchor 188 18> @ogonek;
pos base [\a \uni1EA1 ] <anchor 341 18> mark @ogonek;
pos base [\o \ohorn \uni043E \uni04E9 ] <anchor 337 18> mark @ogonek;
pos base [\e \uni0435 ] <anchor 292 18> mark @ogonek;
pos base [\u \uhorn ] <anchor 433 18> mark @ogonek;
pos base [\A \uni0410 ] <anchor 508 18> mark @ogonek;
pos base [\I ] <anchor 206 18> mark @ogonek;
pos base [\E \uni0415 \uni0413 ] <anchor 450 18> mark @ogonek;
pos base [\O \Ohorn ] <anchor 520 18> mark @ogonek;
pos base [\U \Uhorn ] <anchor 490 18> mark @ogonek;
subtable;
markClass [\uni0327 ] <anchor 114 8> @cedilla;
markClass [\uni0327.cap ] <anchor 127 8> @cedilla;
pos base [\t \t_t ] <anchor 205 8> mark @cedilla;
pos base [\e \uni0435 ] <anchor 253 8> mark @cedilla;
pos base [\c \uni0441 ] <anchor 240 8> mark @cedilla;
pos base [\s ] <anchor 199 8> mark @cedilla;
pos base [\A \Aogonek \uni0410 ] <anchor 124 8> mark @cedilla;
pos base [\C \X ] <anchor 426 8> mark @cedilla;
pos base [\T \Tbar ] <anchor 356 18> mark @cedilla;
pos base [\E \uni0415 \uni0413 ] <anchor 322 8> mark @cedilla;
pos base [\L \Lslash ] <anchor 183 8> mark @cedilla;
pos base [\D \O \U \Ohorn \uni041E \Oslash \uni04E8 ] <anchor 412 8> mark @cedilla;
pos base [\S ] <anchor 265 8> mark @cedilla;
} \mark;
feature \mark {
lookup \mark;
} \mark;
@@ -0,0 +1,33 @@
lookup mkmk {
markClass [\gravecomb.stack ] <anchor 92 456> @gravestack;
markClass [\acutecomb.stack ] <anchor 32 456> @acutestack;
markClass [\uni0302.stack ] <anchor 116 447> @top_stack;
markClass [\tildecomb.stack ] <anchor 139 453> @top_stack;
markClass [\uni0304.stack ] <anchor 180 490> @top_stack;
markClass [\uni0306.stack ] <anchor 167 465> @top_stack;
markClass [\uni030C.stack ] <anchor 117 452> @top_stack;
markClass [\acutecomb.flat ] <anchor 93 515> @top_stack;
markClass [\gravecomb.flat ] <anchor 114 515> @top_stack;
pos mark [\tildecomb \uni0342 ] <anchor 148 644> mark @top_stack;
pos mark [\uni0302.stack ] <anchor 116 640> mark @top_stack
<anchor 9 558> mark @gravestack
<anchor 224 558> mark @acutestack;
pos mark [\tildecomb.stack ] <anchor 155 590> mark @acutestack
<anchor 150 590> mark @gravestack
<anchor 139 600> mark @top_stack;
pos mark [\uni0304.stack ] <anchor 182 570> mark @acutestack
<anchor 186 570> mark @gravestack
<anchor 180 590> mark @top_stack;
pos mark [\uni0306.stack ] <anchor 167 617> mark @top_stack
<anchor 161 566> mark @gravestack
<anchor 172 566> mark @acutestack;
pos mark [\uni030C.stack ] <anchor 114 580> mark @gravestack
<anchor 120 580> mark @acutestack
<anchor 117 635> mark @top_stack;
} mkmk;
feature mkmk {
lookup mkmk;
} mkmk;
@@ -0,0 +1,15 @@
lookup Smallcaps {
sub @SMALLCAPS_BASIS by @SMALLCAPS;
} Smallcaps;
lookup c2sc {
sub @C2SC_BASIS by @C2SC;
} c2sc;
feature smcp {
lookup Smallcaps;
} smcp;
feature c2sc {
lookup c2sc;
} c2sc;
@@ -0,0 +1,25 @@
lookup ss01 {
sub [ uni0409 uni0414 uni041B uni0434 uni043B uni0459 ] by [ uni0409.alt uni0414.alt uni041B.alt uni0434.alt uni043B.alt uni0459.alt ];
} ss01;
feature ss01{
lookup ss01;
} ss01;
lookup ss02 {
ignore sub @Letters u';
sub u' by u.LAT;
sub @Letters v' by v.LATmedi;
} ss02;
feature ss02 {
lookup ss02;
} ss02;
lookup at_alternates {
sub at by at.01;
} at_alternates;
feature cv01 {
lookup at_alternates;
} cv01;