329 lines
14 KiB
Plaintext
329 lines
14 KiB
Plaintext
# 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;
|