# ---------------------------- # INTEL ONE MONO OPENTYPE CODE # ---------------------------- # ---------------- # Language Systems # ---------------- languagesystem DFLT dflt; languagesystem latn dflt; languagesystem latn TRK; languagesystem latn AZE; languagesystem latn CRT; languagesystem latn CAT; # ------- # Classes # ------- # Base Letters @ltrUC = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z uni1E9E AE OE Schwa Eng Thorn Eth Dcroat Hbar Tbar Lslash Oslash Aring Ohorn Uhorn I]; @ltrLC = [a b c d e f g h i j k l m n o p q r s t u v w x y z germandbls ae oe schwa eng thorn eth dcroat hbar tbar lslash oslash aring ohorn uhorn dotlessi]; # Figures @fig = [zero one two three four five six seven eight nine]; @figSup = [zero.sup one.sup two.sup three.sup four.sup five.sup six.sup seven.sup eight.sup nine.sup]; @figInf = [zero.inf one.inf two.inf three.inf four.inf five.inf six.inf seven.inf eight.inf nine.inf]; @figNum = [zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num]; @figDen = [zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den]; # Marks Above - no grave @deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ]; @lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ]; @ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap]; # Marks Below @deadbelowMarks = [uniA788 macronlowmod cedilla ogonek]; @belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb]; # --------------- # Localized Forms # --------------- feature locl { script latn; language TRK; lookup iTurkish { sub i by idotaccent; } iTurkish; language AZE; lookup iTurkish; language CRT; lookup iTurkish; language CAT; sub l periodcentered' l by middotcat; sub L periodcentered' L by middotcat.cap; # try fusing them sub L middotcat.cap by L.dot; sub L middotcat by L.dot; sub l middotcat by l.dot; } locl; # --------------------------------- # Glyph Composition / Decomposition # --------------------------------- feature ccmp { # Decompose unicode lowercase characters whose capital counterparts have no unicode. lookup Decomp { sub hlinebelow by h macronlowmod; sub jcaron by j caron; } Decomp; # Replace marks that follow a letter and another mark with their combining forms. # grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters. lookup DblMarks { sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks]; sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks]; sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks]; } DblMarks; # Replace marks that follow a letter with their combining forms. lookup CmbMarks { # grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters. sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks]; sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks]; sub [@ltrUC] [@lcMarks]' by [@ucMarks]; } CmbMarks; # Replace letters with dotless counterparts when followed by a combining mark. lookup Dotless { sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj]; sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj]; } Dotless; # Replace e ogonek with eogonek. lookup eogonek { sub e ogonekcmb by eogonek; } eogonek; } ccmp; # ---------- # Numerators # ---------- feature numr { sub @fig by @figNum; } numr; # ------------ # Denominators # ------------ feature dnom { sub @fig by @figDen; } dnom; # ----------- # Superscript # ----------- feature sups { sub @fig by @figSup; } sups; # --------------------- # Subscript & Inferiors # --------------------- feature subs { sub @fig by @figInf; } subs; feature sinf { sub @fig by @figInf; } sinf; # -------------- # Stylistic Sets # -------------- feature ss11 { featureNames { name "Raised Colon (Figures Only)"; # Windows English name 1 0 0 "Raised Colon (Figures Only)"; # Mac English }; lookup FigureColonContextual { sub @fig colon' @fig by colon.fig; } FigureColonContextual; } ss11; feature ss12 { featureNames { name "Raised Colon (Global)"; # Windows English name 1 0 0 "Raised Colon (Global)"; # Mac English }; lookup FigureColon { sub colon by colon.fig; } FigureColon; } ss12; # -------------------- # Stylistic Alternates # -------------------- feature salt { lookup FigureColon; # SS12 } salt; # --------------------------------------------------------------------- # MARK | Generated: November 23, 2022 - 02:38:03 PM by 'markFeature.py' # --------------------------------------------------------------------- markClass [acutecmb caroncmb circumflexcmb dieresiscmb dotaccentcmb gravecmb macroncmb tildecmb] @mark_aboveLC; markClass [acutecmb.cap caroncmb.cap circumflexcmb.cap dieresiscmb.cap dotaccentcmb.cap gravecmb.cap macroncmb.cap tildecmb.cap] @mark_aboveUC; markClass [dieresisbelowcmb dotbelowcmb macronbelowcmb] @mark_below; markClass [cedillacmb] @mark_belowcedilla; markClass [ogonekcmb] @mark_belowogonek; feature mark { lookup aboveLC{ pos base [a] mark @mark_aboveLC; pos base [c] mark @mark_aboveLC; pos base [dotlessi] mark @mark_aboveLC; pos base [dotlessj] mark @mark_aboveLC; pos base [e] mark @mark_aboveLC; pos base [eogonek] mark @mark_aboveLC; pos base [g] mark @mark_aboveLC; pos base [m] mark @mark_aboveLC; pos base [n] mark @mark_aboveLC; pos base [o] mark @mark_aboveLC; pos base [p] mark @mark_aboveLC; pos base [s] mark @mark_aboveLC; pos base [u] mark @mark_aboveLC; pos base [z] mark @mark_aboveLC; } aboveLC; lookup aboveUC{ pos base [A] mark @mark_aboveUC; pos base [C] mark @mark_aboveUC; pos base [E] mark @mark_aboveUC; pos base [Eogonek] mark @mark_aboveUC; pos base [G] mark @mark_aboveUC; pos base [I] mark @mark_aboveUC; pos base [J] mark @mark_aboveUC; pos base [M] mark @mark_aboveUC; pos base [N] mark @mark_aboveUC; pos base [O] mark @mark_aboveUC; pos base [P] mark @mark_aboveUC; pos base [S] mark @mark_aboveUC; pos base [U] mark @mark_aboveUC; pos base [Z] mark @mark_aboveUC; } aboveUC; lookup below{ pos base [C] mark @mark_below; pos base [Dcroat] mark @mark_below; pos base [E] mark @mark_below; pos base [H] mark @mark_below; pos base [I] mark @mark_below; pos base [O] mark @mark_below; pos base [S] mark @mark_below; pos base [U] mark @mark_below; pos base [X] mark @mark_below; pos base [Z] mark @mark_below; pos base [c] mark @mark_below; pos base [dcroat] mark @mark_below; pos base [dotlessi] mark @mark_below; pos base [e] mark @mark_below; pos base [h] mark @mark_below; pos base [o] mark @mark_below; pos base [s] mark @mark_below; pos base [u] mark @mark_below; pos base [x] mark @mark_below; pos base [z] mark @mark_below; } below; lookup belowcedilla{ pos base [Z] mark @mark_belowcedilla; pos base [z] mark @mark_belowcedilla; } belowcedilla; lookup belowogonek{ pos base [A] mark @mark_belowogonek; pos base [E] mark @mark_belowogonek; pos base [I] mark @mark_belowogonek; pos base [O] mark @mark_belowogonek; pos base [U] mark @mark_belowogonek; pos base [a] mark @mark_belowogonek; pos base [dotlessi] mark @mark_belowogonek; pos base [e] mark @mark_belowogonek; pos base [o] mark @mark_belowogonek; pos base [u] mark @mark_belowogonek; } belowogonek; } mark; @BASES = [A C Dcroat E Eogonek G H I J M N O P S U X Z a c dcroat dotlessi dotlessj e eogonek g h m n o p s u x z]; @MARKS = [@mark_aboveLC @mark_aboveUC @mark_below @mark_belowcedilla @mark_belowogonek]; table GDEF { GlyphClassDef @BASES,,@MARKS,; } GDEF; # -------------- # All Alternates # -------------- feature aalt { sub germandbls from [germandbls uni1E9E]; sub uni1E9E from [uni1E9E germandbls]; sub colon from [colon colon.fig]; sub colon.fig from [colon.fig colon]; sub eight from [eight eight.den eight.sup eight.num eight.inf]; sub eight.inf from [eight.inf eight eight.den eight.sup eight.num]; sub eight.num from [eight.num eight.inf eight eight.den eight.sup]; sub eight.sup from [eight.sup eight.num eight.inf eight eight.den]; sub eight.den from [eight.den eight.sup eight.num eight.inf eight]; sub five from [five five.inf five.num five.den five.sup]; sub five.sup from [five.sup five five.inf five.num five.den]; sub five.den from [five.den five.sup five five.inf five.num]; sub five.num from [five.num five.den five.sup five five.inf]; sub five.inf from [five.inf five.num five.den five.sup five]; sub four from [four four.sup four.num four.den four.inf]; sub four.inf from [four.inf four four.sup four.num four.den]; sub four.den from [four.den four.inf four four.sup four.num]; sub four.num from [four.num four.den four.inf four four.sup]; sub four.sup from [four.sup four.num four.den four.inf four]; sub nine from [nine nine.den nine.inf nine.num nine.sup]; sub nine.sup from [nine.sup nine nine.den nine.inf nine.num]; sub nine.num from [nine.num nine.sup nine nine.den nine.inf]; sub nine.inf from [nine.inf nine.num nine.sup nine nine.den]; sub nine.den from [nine.den nine.inf nine.num nine.sup nine]; sub one from [one one.den one.num one.inf one.sup]; sub one.sup from [one.sup one one.den one.num one.inf]; sub one.inf from [one.inf one.sup one one.den one.num]; sub one.num from [one.num one.inf one.sup one one.den]; sub one.den from [one.den one.num one.inf one.sup one]; sub seven from [seven seven.inf seven.num seven.sup seven.den]; sub seven.den from [seven.den seven seven.inf seven.num seven.sup]; sub seven.sup from [seven.sup seven.den seven seven.inf seven.num]; sub seven.num from [seven.num seven.sup seven.den seven seven.inf]; sub seven.inf from [seven.inf seven.num seven.sup seven.den seven]; sub six from [six six.num six.sup six.den six.inf]; sub six.inf from [six.inf six six.num six.sup six.den]; sub six.den from [six.den six.inf six six.num six.sup]; sub six.sup from [six.sup six.den six.inf six six.num]; sub six.num from [six.num six.sup six.den six.inf six]; sub three from [three three.inf three.den three.num three.sup]; sub three.sup from [three.sup three three.inf three.den three.num]; sub three.num from [three.num three.sup three three.inf three.den]; sub three.den from [three.den three.num three.sup three three.inf]; sub three.inf from [three.inf three.den three.num three.sup three]; sub two from [two two.inf two.sup two.num two.den]; sub two.den from [two.den two two.inf two.sup two.num]; sub two.num from [two.num two.den two two.inf two.sup]; sub two.sup from [two.sup two.num two.den two two.inf]; sub two.inf from [two.inf two.sup two.num two.den two]; sub zero from [zero zero.sup zero.num zero.den zero.inf]; sub zero.inf from [zero.inf zero zero.sup zero.num zero.den]; sub zero.den from [zero.den zero.inf zero zero.sup zero.num]; sub zero.num from [zero.num zero.den zero.inf zero zero.sup]; sub zero.sup from [zero.sup zero.num zero.den zero.inf zero]; } aalt;