| # Glyph classes |
| @dnom = [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom]; |
| @numerals = [zero one two three four five six seven eight nine]; |
| @numr = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr]; |
| @slash = [slash fraction]; |
| |
| # Mark classes |
| markClass eight.numr <anchor 0 0> @INIT.1.10; |
| markClass eight.numr <anchor 0 0> @INIT.2.10; |
| markClass eight.numr <anchor 0 0> @INIT.3.10; |
| markClass eight.numr <anchor 0 0> @INIT.4.10; |
| markClass eight.numr <anchor 0 0> @INIT.5.10; |
| markClass eight.numr <anchor 0 0> @INIT.6.10; |
| markClass eight.numr <anchor 0 0> @INIT.7.10; |
| markClass eight.numr <anchor 0 0> @INIT.8.10; |
| markClass eight.numr <anchor 0 0> @INIT.9.10; |
| markClass eight.numr <anchor 0 0> @NUMRNUMR; |
| markClass five.numr <anchor 0 0> @INIT.1.10; |
| markClass five.numr <anchor 0 0> @INIT.2.10; |
| markClass five.numr <anchor 0 0> @INIT.3.10; |
| markClass five.numr <anchor 0 0> @INIT.4.10; |
| markClass five.numr <anchor 0 0> @INIT.5.10; |
| markClass five.numr <anchor 0 0> @INIT.6.10; |
| markClass five.numr <anchor 0 0> @INIT.7.10; |
| markClass five.numr <anchor 0 0> @INIT.8.10; |
| markClass five.numr <anchor 0 0> @INIT.9.10; |
| markClass five.numr <anchor 0 0> @NUMRNUMR; |
| markClass four.numr <anchor 0 0> @INIT.1.10; |
| markClass four.numr <anchor 0 0> @INIT.2.10; |
| markClass four.numr <anchor 0 0> @INIT.3.10; |
| markClass four.numr <anchor 0 0> @INIT.4.10; |
| markClass four.numr <anchor 0 0> @INIT.5.10; |
| markClass four.numr <anchor 0 0> @INIT.6.10; |
| markClass four.numr <anchor 0 0> @INIT.7.10; |
| markClass four.numr <anchor 0 0> @INIT.8.10; |
| markClass four.numr <anchor 0 0> @INIT.9.10; |
| markClass four.numr <anchor 0 0> @NUMRNUMR; |
| markClass nine.numr <anchor 0 0> @INIT.1.10; |
| markClass nine.numr <anchor 0 0> @INIT.2.10; |
| markClass nine.numr <anchor 0 0> @INIT.3.10; |
| markClass nine.numr <anchor 0 0> @INIT.4.10; |
| markClass nine.numr <anchor 0 0> @INIT.5.10; |
| markClass nine.numr <anchor 0 0> @INIT.6.10; |
| markClass nine.numr <anchor 0 0> @INIT.7.10; |
| markClass nine.numr <anchor 0 0> @INIT.8.10; |
| markClass nine.numr <anchor 0 0> @INIT.9.10; |
| markClass nine.numr <anchor 0 0> @NUMRNUMR; |
| markClass one.numr <anchor 0 0> @INIT.1.10; |
| markClass one.numr <anchor 0 0> @INIT.2.10; |
| markClass one.numr <anchor 0 0> @INIT.3.10; |
| markClass one.numr <anchor 0 0> @INIT.4.10; |
| markClass one.numr <anchor 0 0> @INIT.5.10; |
| markClass one.numr <anchor 0 0> @INIT.6.10; |
| markClass one.numr <anchor 0 0> @INIT.7.10; |
| markClass one.numr <anchor 0 0> @INIT.8.10; |
| markClass one.numr <anchor 0 0> @INIT.9.10; |
| markClass one.numr <anchor 0 0> @NUMRNUMR; |
| markClass seven.numr <anchor 0 0> @INIT.1.10; |
| markClass seven.numr <anchor 0 0> @INIT.2.10; |
| markClass seven.numr <anchor 0 0> @INIT.3.10; |
| markClass seven.numr <anchor 0 0> @INIT.4.10; |
| markClass seven.numr <anchor 0 0> @INIT.5.10; |
| markClass seven.numr <anchor 0 0> @INIT.6.10; |
| markClass seven.numr <anchor 0 0> @INIT.7.10; |
| markClass seven.numr <anchor 0 0> @INIT.8.10; |
| markClass seven.numr <anchor 0 0> @INIT.9.10; |
| markClass seven.numr <anchor 0 0> @NUMRNUMR; |
| markClass six.numr <anchor 0 0> @INIT.1.10; |
| markClass six.numr <anchor 0 0> @INIT.2.10; |
| markClass six.numr <anchor 0 0> @INIT.3.10; |
| markClass six.numr <anchor 0 0> @INIT.4.10; |
| markClass six.numr <anchor 0 0> @INIT.5.10; |
| markClass six.numr <anchor 0 0> @INIT.6.10; |
| markClass six.numr <anchor 0 0> @INIT.7.10; |
| markClass six.numr <anchor 0 0> @INIT.8.10; |
| markClass six.numr <anchor 0 0> @INIT.9.10; |
| markClass six.numr <anchor 0 0> @NUMRNUMR; |
| markClass three.numr <anchor 0 0> @INIT.1.10; |
| markClass three.numr <anchor 0 0> @INIT.2.10; |
| markClass three.numr <anchor 0 0> @INIT.3.10; |
| markClass three.numr <anchor 0 0> @INIT.4.10; |
| markClass three.numr <anchor 0 0> @INIT.5.10; |
| markClass three.numr <anchor 0 0> @INIT.6.10; |
| markClass three.numr <anchor 0 0> @INIT.7.10; |
| markClass three.numr <anchor 0 0> @INIT.8.10; |
| markClass three.numr <anchor 0 0> @INIT.9.10; |
| markClass three.numr <anchor 0 0> @NUMRNUMR; |
| markClass two.numr <anchor 0 0> @INIT.1.10; |
| markClass two.numr <anchor 0 0> @INIT.2.10; |
| markClass two.numr <anchor 0 0> @INIT.3.10; |
| markClass two.numr <anchor 0 0> @INIT.4.10; |
| markClass two.numr <anchor 0 0> @INIT.5.10; |
| markClass two.numr <anchor 0 0> @INIT.6.10; |
| markClass two.numr <anchor 0 0> @INIT.7.10; |
| markClass two.numr <anchor 0 0> @INIT.8.10; |
| markClass two.numr <anchor 0 0> @INIT.9.10; |
| markClass two.numr <anchor 0 0> @NUMRNUMR; |
| markClass zero.numr <anchor 0 0> @INIT.1.10; |
| markClass zero.numr <anchor 0 0> @INIT.2.10; |
| markClass zero.numr <anchor 0 0> @INIT.3.10; |
| markClass zero.numr <anchor 0 0> @INIT.4.10; |
| markClass zero.numr <anchor 0 0> @INIT.5.10; |
| markClass zero.numr <anchor 0 0> @INIT.6.10; |
| markClass zero.numr <anchor 0 0> @INIT.7.10; |
| markClass zero.numr <anchor 0 0> @INIT.8.10; |
| markClass zero.numr <anchor 0 0> @INIT.9.10; |
| markClass zero.numr <anchor 0 0> @NUMRNUMR; |
| |
| # Lookups |
| lookup frac.numr { |
| sub @numerals by @numr; |
| } frac.numr; |
| |
| lookup frac.dnom { |
| sub [@slash @dnom] @numr' by @dnom; |
| } frac.dnom; |
| |
| lookup frac.noslash { |
| sub @numr slash by @numr; |
| sub @numr fraction by @numr; |
| } frac.noslash; |
| |
| lookup frac.fracinit { |
| ignore sub @numr @numr'; |
| sub @numr' by fracinit @numr; |
| } frac.fracinit; |
| |
| lookup kern.numeral_to_fraction { |
| enum pos @numerals fracinit 140; |
| pos @dnom @numerals 140; |
| } kern.numeral_to_fraction; |
| |
| lookup fracmark.init_1.10_target { |
| pos base fracinit |
| <anchor 3150 0> mark @INIT.1.10; |
| } fracmark.init_1.10_target; |
| |
| lookup fracmark.init_2.10_target { |
| pos base fracinit |
| <anchor 2800 0> mark @INIT.2.10; |
| } fracmark.init_2.10_target; |
| |
| lookup fracmark.init_3.10_target { |
| pos base fracinit |
| <anchor 2450 0> mark @INIT.3.10; |
| } fracmark.init_3.10_target; |
| |
| lookup fracmark.init_4.10_target { |
| pos base fracinit |
| <anchor 2100 0> mark @INIT.4.10; |
| } fracmark.init_4.10_target; |
| |
| lookup fracmark.init_5.10_target { |
| pos base fracinit |
| <anchor 1750 0> mark @INIT.5.10; |
| } fracmark.init_5.10_target; |
| |
| lookup fracmark.init_6.10_target { |
| pos base fracinit |
| <anchor 1400 0> mark @INIT.6.10; |
| } fracmark.init_6.10_target; |
| |
| lookup fracmark.init_7.10_target { |
| pos base fracinit |
| <anchor 1050 0> mark @INIT.7.10; |
| } fracmark.init_7.10_target; |
| |
| lookup fracmark.init_8.10_target { |
| pos base fracinit |
| <anchor 700 0> mark @INIT.8.10; |
| } fracmark.init_8.10_target; |
| |
| lookup fracmark.init_9.10_target { |
| pos base fracinit |
| <anchor 350 0> mark @INIT.9.10; |
| } fracmark.init_9.10_target; |
| |
| lookup fracmark.init { |
| # fracmark.init\1.10 |
| pos [@numr]' lookup fracmark.init_1.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\2.10 |
| pos [@numr]' lookup fracmark.init_2.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_2.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\3.10 |
| pos [@numr]' lookup fracmark.init_3.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_3.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_3.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\4.10 |
| pos [@numr]' lookup fracmark.init_4.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_4.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_4.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_4.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\5.10 |
| pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_5.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_5.10_target @dnom @dnom @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\6.10 |
| pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_6.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_6.10_target @dnom @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\7.10 |
| pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_7.10_target @numr @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_7.10_target @dnom @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\8.10 |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @numr @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_8.10_target @dnom @dnom @dnom; |
| subtable; |
| # fracmark.init\9.10 |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @dnom @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @numr @dnom @dnom @dnom; |
| pos [@numr]' lookup fracmark.init_9.10_target @dnom @dnom; |
| } fracmark.init; |
| |
| lookup fracmkmk.numrspacing { |
| pos mark zero.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark one.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark two.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark three.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark four.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark five.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark six.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark seven.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark eight.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| pos mark nine.numr |
| <anchor 700 0> mark @NUMRNUMR; |
| } fracmkmk.numrspacing; |
| |
| # Features |
| feature afrc { |
| script DFLT; |
| language dflt; |
| lookup frac.numr; |
| lookup frac.dnom; |
| lookup frac.noslash; |
| lookup frac.fracinit; |
| script latn; |
| language dflt; |
| lookup frac.numr; |
| lookup frac.dnom; |
| lookup frac.noslash; |
| lookup frac.fracinit; |
| } afrc; |
| |
| feature frac { |
| script DFLT; |
| language dflt; |
| lookup frac.numr; |
| lookup frac.dnom; |
| lookup frac.noslash; |
| lookup frac.fracinit; |
| script latn; |
| language dflt; |
| lookup frac.numr; |
| lookup frac.dnom; |
| lookup frac.noslash; |
| lookup frac.fracinit; |
| } frac; |
| |
| feature kern { |
| script DFLT; |
| language dflt; |
| lookup kern.numeral_to_fraction; |
| script latn; |
| language dflt; |
| lookup kern.numeral_to_fraction; |
| } kern; |
| |
| feature mark { |
| script DFLT; |
| language dflt; |
| lookup fracmark.init; |
| script latn; |
| language dflt; |
| lookup fracmark.init; |
| } mark; |
| |
| feature mkmk { |
| script DFLT; |
| language dflt; |
| lookup fracmkmk.numrspacing; |
| script latn; |
| language dflt; |
| lookup fracmkmk.numrspacing; |
| } mkmk; |
| |
| @GDEF_base = [glyph0 \NULL CR space zero one two three four five six seven eight nine slash fraction fracinit zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom]; |
| @GDEF_mark = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr]; |
| table GDEF { |
| GlyphClassDef @GDEF_base, , @GDEF_mark, ; |
| } GDEF; |