blob: 37118f13639247297fad04f8d30784e01744cece (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
languagesystem DFLT dflt;
languagesystem latn dflt;
@full = [ \a - \z ];
@upper = [ \A - \Z ];
@hfhz = [ \a.hfhz - \z.hfhz ];
@hfvt = [ \a.hfvt - \z.hfvt ];
@qrtr = [ \a.qrtr - \z.qrtr ];
@all = [ @full @hfhz @hfvt @qrtr space space.hfhz space.hfvt space.qrtr ];
# GSUB
lookup full2qrtr {
sub [@full space] by [@qrtr space.qrtr];
} full2qrtr;
lookup full2hfvt {
sub [@full space] by [@hfvt space.hfvt];
} full2hfvt;
lookup full2hfhz {
sub [@full space] by [@hfhz space.hfhz];
} full2hfhz;
feature calt {
lookup up2lo {
sub @upper by @full;
} up2lo;
lookup charblock {
sub @full' lookup full2qrtr
@full' lookup full2qrtr
@full' lookup full2qrtr
[@full space]' lookup full2qrtr;
sub @full' lookup full2qrtr
@full' lookup full2qrtr
[@full space]' lookup full2hfvt;
sub @full' lookup full2hfvt
[@full space]' lookup full2hfvt;
} charblock;
} calt;
# GPOS
lookup qrtr1 {
pos @qrtr <300 300 0 0>;
} qrtr1;
lookup qrtr2 {
pos @qrtr <0 0 0 0>;
} qrtr2;
lookup qrtr3 {
pos @qrtr <-600 0 -300 0>;
} qrtr3;
lookup qrtr4 {
pos [@qrtr space.qrtr] <-600 300 -300 0>;
} qrtr4;
lookup hfvt1 {
pos [@hfvt space.hfvt] <-600 0 -300 0>;
} hfvt1;
lookup hfvt2 {
pos @hfvt <300 0 -300 0>;
} hfvt2;
lookup hfvt3 {
pos [@hfvt space.hfvt] <0 0 300 0>;
} hfvt3;
feature kern {
pos @qrtr' lookup qrtr1
@qrtr' lookup qrtr2
@qrtr' lookup qrtr3
[@qrtr space.qrtr]' lookup qrtr4;
pos @qrtr' lookup qrtr1
@qrtr' lookup qrtr2
[@hfvt space.hfvt]' lookup hfvt1;
pos @hfvt' lookup hfvt2
[@hfvt space.hfvt]' lookup hfvt3;
} kern;
#Mark attachment classes (defined in GDEF, used in lookupflags)
@GDEF_Simple = [\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 \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 \space \a.hfvt \b.hfvt \c.hfvt
\d.hfvt \e.hfvt \f.hfvt \g.hfvt \h.hfvt \i.hfvt \j.hfvt \k.hfvt \l.hfvt \m.hfvt
\n.hfvt \o.hfvt \p.hfvt \q.hfvt \r.hfvt \s.hfvt \t.hfvt \u.hfvt \v.hfvt \w.hfvt
\x.hfvt \y.hfvt \z.hfvt \a.hfhz \b.hfhz \c.hfhz \d.hfhz \e.hfhz \f.hfhz \g.hfhz
\h.hfhz \i.hfhz \j.hfhz \k.hfhz \l.hfhz \m.hfhz \n.hfhz \o.hfhz \p.hfhz \q.hfhz
\r.hfhz \s.hfhz \t.hfhz \u.hfhz \v.hfhz \w.hfhz \x.hfhz \y.hfhz \z.hfhz \a.qrtr
\b.qrtr \c.qrtr \d.qrtr \e.qrtr \f.qrtr \g.qrtr \h.qrtr \i.qrtr \j.qrtr \k.qrtr
\l.qrtr \m.qrtr \n.qrtr \o.qrtr \p.qrtr \q.qrtr \r.qrtr \s.qrtr \t.qrtr \u.qrtr
\v.qrtr \w.qrtr \x.qrtr \y.qrtr \z.qrtr ];
table GDEF {
GlyphClassDef @GDEF_Simple, , , ;
} GDEF;
|