File: Lohit-Gurmukhi.fea

package info (click to toggle)
fonts-lohit-guru 2.91.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 332 kB
  • sloc: makefile: 54; xml: 54; python: 39
file content (276 lines) | stat: -rw-r--r-- 10,034 bytes parent folder | download | duplicates (2)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
# How to use
# On Linux running make will generate ttf for you. For other platforms follow below steps
# 1. Open Lohit-Devanagari.sfd in Fontforge
# 2. Click on Fontforge File -> Merge Feature info and Select this feature file and save
# 3. Now Generate ttf as you do for other fonts.
# 4. Done
# Copyright (C) 2013 Pravin Satpute <psatpute AT redhat DOT com> and Sneha Kore <skore AT redhat DOT com>
# License: OFL 1.1
# License URL: http://scripts.sil.org/OFL

# GSUB 


lookup nuktNuktaFormslookup0 {
  lookupflag 0;
    sub \laguru \nuktaguru  by \llaguru;
    sub \saguru \nuktaguru  by \shaguru;
    sub \khaguru \nuktaguru  by \khhaguru;
    sub \gaguru \nuktaguru  by \ghhaguru;
    sub \jaguru \nuktaguru  by \zaguru;
    sub \ddaguru \nuktaguru  by \rraguru;
    sub \phaguru \nuktaguru  by \faguru;
} nuktNuktaFormslookup0;

lookup blwfBelowBaseFormslookup1 {
  lookupflag 0;
    sub \viramaguru \haguru  by \haguru_viramaguru;
    sub \viramaguru \vaguru  by \vaguru_viramaguru;
    sub \viramaguru \raguru  by \raguru_viramaguru;
} blwfBelowBaseFormslookup1;

lookup abvsAboveBaseSubstitutionslooku {
  lookupflag 0;
    sub \eevowelguru \bindiguru  by \eevowelguru_bindiguru;
    sub \oovowelguru \bindiguru  by \oovowelguru_bindiguru;
    sub \auvowelguru \bindiguru  by \auvowelguru_bindiguru;
    sub \iivowelguru \bindiguru  by \iivowelguru_bindiguru;
    sub \iivowelguru \tippiguru  by \iivowelguru_tippiguru;
    sub \iivowelguru \addakguru  by \iivowelguru_addakguru;
    sub \eevowelguru \addakguru  by \eevowelguru_addakguru;
    sub \aivowelguru \addakguru  by \aivowelguru_addakguru;
    sub \oovowelguru \addakguru  by \oovowelguru_addakguru;
    sub \auvowelguru \addakguru  by \auvowelguru_addakguru;
    sub \eevowelguru \tippiguru  by \eevowelguru_tippiguru;
    sub \aivowelguru \tippiguru  by \aivowelguru_tippiguru;
    sub \oovowelguru \tippiguru  by \oovowelguru_tippiguru;
    sub \auvowelguru \tippiguru  by \auvowelguru_tippiguru;
} abvsAboveBaseSubstitutionslooku;

lookup blwsBelowBaseSubstitutionslooku {
  lookupflag 0;
    sub \kaguru \viramaguru \raguru  by \kaguru_raguru_viramaguru;
    sub \ddaguru \viramaguru \raguru  by \ddaguru_raguru_viramaguru;
    sub \taguru \viramaguru \raguru  by \taguru_raguru_viramaguru;
    sub \daguru \viramaguru \raguru  by \daguru_raguru_viramaguru;
    sub \bhaguru \viramaguru \raguru  by \bhaguru_raguru_viramaguru;
} blwsBelowBaseSubstitutionslooku;

lookup pstfPostBaseFormslookup7 {
  lookupflag 0;
    sub \viramaguru \yaguru  by \viramaguru_yaguru;
} pstfPostBaseFormslookup7;

lookup vatuVattuVariantslookup6 {
  lookupflag 0;
    sub \kaguru \viramaguru \raguru  by \kaguru_raguru_viramaguru;
    sub \ddaguru \viramaguru \raguru  by \ddaguru_raguru_viramaguru;
    sub \taguru \viramaguru \raguru  by \taguru_raguru_viramaguru;
    sub \daguru \viramaguru \raguru  by \daguru_raguru_viramaguru;
    sub \bhaguru \viramaguru \raguru  by \bhaguru_raguru_viramaguru;
} vatuVattuVariantslookup6;

lookup pstsPostBaseSubstitutionslookup {
  lookupflag 0;
    @cc6_match_1 = [\uraguru ];
    @cc6_match_2 = [\bindiguru \addakguru ];
    @cc6_match_3 = [\eeguru ];
    @cc6_back_1 = [\uraguru ];
    @cc6_back_2 = [\bindiguru \addakguru ];
    @cc6_back_3 = [\eeguru ];
    @cc6_ahead_1 = [\uraguru ];
    @cc6_ahead_2 = [\bindiguru \addakguru ];
    @cc6_ahead_3 = [\eeguru ];
    sub @cc6_back_1 @cc6_match_2' @cc6_ahead_3  by [\bindiguru.alt \addakguru.alt ] ;
} pstsPostBaseSubstitutionslookup;

feature nukt {

  script gur2;
     language dflt ;
      lookup nuktNuktaFormslookup0;

  script guru;
     language dflt ;
      lookup nuktNuktaFormslookup0;
} nukt;

feature blwf {

  script gur2;
     language dflt ;
      lookup blwfBelowBaseFormslookup1;

  script guru;
     language dflt ;
      lookup blwfBelowBaseFormslookup1;
} blwf;

feature abvs {

  script gur2;
     language dflt ;
      lookup abvsAboveBaseSubstitutionslooku;

  script guru;
     language dflt ;
      lookup abvsAboveBaseSubstitutionslooku;
} abvs;

feature blws {

  script gur2;
     language dflt ;
      lookup blwsBelowBaseSubstitutionslooku;

  script guru;
     language dflt ;
      lookup blwsBelowBaseSubstitutionslooku;
} blws;

feature pstf {

  script gur2;
     language dflt ;
      lookup pstfPostBaseFormslookup7;

  script guru;
     language dflt ;
      lookup pstfPostBaseFormslookup7;
} pstf;

feature vatu {

  script gur2;
     language dflt ;
      lookup vatuVattuVariantslookup6;

  script guru;
     language dflt ;
      lookup vatuVattuVariantslookup6;
} vatu;

feature psts {

  script gur2;
     language dflt ;
      lookup pstsPostBaseSubstitutionslookup;

  script guru;
     language dflt ;
      lookup pstsPostBaseSubstitutionslookup;
} psts;

# GPOS 


lookup blwmBelowBaseMarklookup2 {
  lookupflag 0;
  markClass [\uvowelguru \uuvowelguru ] <anchor -262 0> @GRAnchor2;
  markClass [\viramaguru ] <anchor 59 0> @GRAnchor2;
  markClass [\udaatguru ] <anchor -47 0> @GRAnchor2;
  markClass [\yakashguru ] <anchor -150 4> @GRAnchor2;
  pos base [\ttaguru ] <anchor 213 -2> mark @GRAnchor2;
  pos base [\tthaguru ] <anchor 254 -2> mark @GRAnchor2;
  pos base [\naguru ] <anchor 247 -1> mark @GRAnchor2;
  pos base [\dottedcircle ] <anchor 361 -2> mark @GRAnchor2;
  pos base [\kaguru_raguru_viramaguru ] <anchor 238 -235> mark @GRAnchor2;
  pos base [\ddaguru_raguru_viramaguru ] <anchor 237 -192> mark @GRAnchor2;
  pos base [\taguru_raguru_viramaguru \bhaguru_raguru_viramaguru ] <anchor 233 -234> mark @GRAnchor2;
  pos base [\daguru_raguru_viramaguru ] <anchor 254 -234> mark @GRAnchor2;
} blwmBelowBaseMarklookup2;

lookup abvmAboveBaseMarkinGurmukhilook {
  lookupflag 0;
  markClass [\adakbindiguru ] <anchor -360 506> @GRAnchor1;
  markClass [\bindiguru ] <anchor -110 532> @GRAnchor1;
  markClass [\eevowelguru ] <anchor -114 508> @GRAnchor1;
  markClass [\aivowelguru ] <anchor -104 508> @GRAnchor1;
  markClass [\oovowelguru ] <anchor -116 568> @GRAnchor1;
  markClass [\auvowelguru \eevowelguru_bindiguru \eevowelguru_addakguru \eevowelguru_tippiguru ] <anchor -112 508> @GRAnchor1;
  markClass [\tippiguru ] <anchor -114 490> @GRAnchor1;
  markClass [\raguru_viramaguru ] <anchor -186 478> @GRAnchor1;
  markClass [\oovowelguru_bindiguru ] <anchor -114 576> @GRAnchor1;
  markClass [\aivowelguru_addakguru \aivowelguru_tippiguru ] <anchor -150 496> @GRAnchor1;
  markClass [\oovowelguru_addakguru ] <anchor -114 586> @GRAnchor1;
  markClass [\oovowelguru_tippiguru ] <anchor -114 566> @GRAnchor1;
  pos base [\tthaguru ] <anchor 238 474> mark @GRAnchor1;
  pos base [\naguru ] <anchor 232 474> mark @GRAnchor1;
} abvmAboveBaseMarkinGurmukhilook;

lookup pos_mark2base_abvmgur2_0 {
  lookupflag 0;
  markClass [\adakbindiguru ] <anchor -354 506> @GRAnchor0;
  markClass [\bindiguru ] <anchor -116 526> @GRAnchor0;
  markClass [\addakguru ] <anchor -146 432> @GRAnchor0;
  pos base [\aaguru ] <anchor 738 486> mark @GRAnchor0;
  pos base [\iguru ] <anchor 434 480> mark @GRAnchor0;
  pos base [\iiguru ] <anchor 664 480> mark @GRAnchor0;
  pos base [\uguru ] <anchor 558 480> mark @GRAnchor0;
  pos base [\uuguru ] <anchor 528 480> mark @GRAnchor0;
  pos base [\eeguru ] <anchor 400 480> mark @GRAnchor0;
  pos base [\aiguru ] <anchor 536 480> mark @GRAnchor0;
  pos base [\ooguru ] <anchor 480 480> mark @GRAnchor0;
  pos base [\auguru ] <anchor 640 480> mark @GRAnchor0;
} pos_mark2base_abvmgur2_0;

feature blwm {

  script gur2;
     language dflt ;
      lookup blwmBelowBaseMarklookup2;

  script guru;
     language dflt ;
      lookup blwmBelowBaseMarklookup2;
} blwm;

feature abvm {

  script gur2;
     language dflt ;
      lookup abvmAboveBaseMarkinGurmukhilook;
      lookup pos_mark2base_abvmgur2_0;

  script guru;
     language dflt ;
      lookup abvmAboveBaseMarkinGurmukhilook;
      lookup pos_mark2base_abvmgur2_0;
} abvm;
#Mark attachment classes (defined in GDEF, used in lookupflags)

@GDEF_Simple = [\.notdef \nonmarkingreturn \space \exclam \quotedbl \numbersign 
	\dollar \percent \ampersand \quotesingle \parenleft \parenright \asterisk \plus 
	\comma \hyphen \period \slash \zero \one \two \three \four \five \six \seven \eight 
	\nine \colon \semicolon \less \equal \greater \question \at \bracketleft 
	\backslash \bracketright \asciicircum \underscore \grave \braceleft \bar 
	\braceright \asciitilde \multiply \divide \dandaguru \dbldandaguru 
	\visargaguru \aguru \aaguru \iguru \iiguru \uguru \uuguru \eeguru \aiguru \ooguru 
	\auguru \kaguru \khaguru \gaguru \ghaguru \ngaguru \caguru \chaguru \jaguru 
	\jhaguru \nyaguru \ttaguru \tthaguru \ddaguru \ddhaguru \nnaguru \taguru 
	\thaguru \daguru \dhaguru \naguru \paguru \phaguru \baguru \bhaguru \maguru 
	\yaguru \raguru \laguru \llaguru \vaguru \shaguru \saguru \haguru \nuktaguru 
	\aavowelguru \ivowelguru \iivowelguru \khhaguru \ghhaguru \zaguru \rraguru 
	\faguru \zeroguru \oneguru \twoguru \threeguru \fourguru \fiveguru \sixguru 
	\sevenguru \eightguru \nineguru \iriguru \uraguru \ekonkarguru 
	\zerowidthnonjoiner \zerowidthjoiner \endash \emdash \quoteleft \quoteright 
	\quotedblleft \quotedblright \ellipsis \minus \dottedcircle 
	\kaguru_raguru_viramaguru \ddaguru_raguru_viramaguru 
	\taguru_raguru_viramaguru \daguru_raguru_viramaguru 
	\bhaguru_raguru_viramaguru \vaguru_viramaguru \bindiguru.alt \addakguru.alt 
	\viramaguru_yaguru \inr_currency ];
@GDEF_Ligature = [\iivowelguru_tippiguru \iivowelguru_addakguru 
	\auvowelguru_addakguru \auvowelguru_tippiguru ];
@GDEF_Mark = [\adakbindiguru \bindiguru \uvowelguru \uuvowelguru \eevowelguru 
	\aivowelguru \oovowelguru \auvowelguru \viramaguru \tippiguru \addakguru 
	\haguru_viramaguru \raguru_viramaguru \eevowelguru_bindiguru 
	\oovowelguru_bindiguru \auvowelguru_bindiguru \iivowelguru_bindiguru 
	\udaatguru \yakashguru \eevowelguru_addakguru \aivowelguru_addakguru 
	\oovowelguru_addakguru \eevowelguru_tippiguru \aivowelguru_tippiguru 
	\oovowelguru_tippiguru ];

table GDEF {
  GlyphClassDef @GDEF_Simple, @GDEF_Ligature, @GDEF_Mark, ;

} GDEF;