blob: 7afabad8c686eafec43887cd17c79b1757a4da1a (
plain)
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
|
@Dal_1 = [@aDal.fina @aDal.fina_BaaDalIsol
@aDal.fina_KafDal @aDal.fina_LamDal];
@Dal_2 = [@aDal.isol];
@1st_3 = [@aRaa.fina_MemRaaIsol];
@1st_4 = [@aHeh.isol @aHeh.fina @aHeh.fina_KafHeh @aHeh.fina_LamHeh];
# final alef with no hamza above
@Alf_1 = [uni0627.fina_LamAlfFina uni0625.fina_LamAlfFina];
@Kaf_1 = [@aKaf.init_KafHeh
@aKaf.init_KafMemInit @aKaf.init_KafYaaIsol
@aKaf.init_KafMemIsol
@aKaf.init_KafRaaIsol];
@Kaf_2 = [@aKaf.init_KafBaaInit @aKaf.init_KafMemAlf];
@Kaf_3 = [@aKaf.init @aKaf.init_KafLam];
@2nd_3 = [@aSen.init_SenHaaInit @aSad.init_SadHaaInit @aLam.init_LamHaaHaaInit];
@2nd_4 = [@aSad.init_AboveHaaIsol @aSen.init_AboveHaaIsol @aHeh.init_AboveHaaIsol
@aHaa.init_AboveHaaIsol @aMem.init_AboveHaaIsol @aKaf.init_AboveHaaIsol
@aAyn.init_AboveHaaIsol];
feature kern {
lookupflag IgnoreMarks;
pos [@RaaWaw @Dal_1]' <-600 0 -600 0> @Kaf_1;
pos [@RaaWaw @Dal_1]' <-300 0 -300 0> [@Kaf_2 @Kaf_3];
pos @RaaWaw' <-100 0 -100 0> @2nd_3;
pos @Dal_2' <-200 0 -200 0> @Kaf_3;
pos @1st_3' <-400 0 -400 0> [@Kaf_2 @Kaf_3];
pos @1st_3' <-800 0 -800 0> @Kaf_1;
pos @1st_3' <-200 0 -200 0> @2nd_3;
pos @1st_3' <-400 0 -400 0> @2nd_4;
# +ve kern so that the tail of raa/waw does not touch the dot of baa
pos @RaaWaw' <170 0 170 0> @aBaaDotBelow;
} kern;
# we don't want to ignore marks here
feature kern {
pos @Alf_1' <-500 0 -500 0> @Kaf_1;
pos @Alf_1' <-200 0 -200 0> @Kaf_2;
pos @Alf_1' <-250 0 -250 0> @Kaf_3;
} kern;
feature kern {
lookupflag IgnoreMarks;
pos @RaaWaw' <80 0 80 0> @aYaa.init;
} kern;
feature kern {
lookupflag IgnoreMarks;
# kern heh isol/final followed by kaf, does not happen in Arabic but can be
# seen in Kurdish or Persian using ZWNJ between them.
pos @1st_4 uni200C [@Kaf_1 @Kaf_2 @Kaf_3]' -500;
pos @1st_4 space [@Kaf_1 @Kaf_2 @Kaf_3]' -500; # Uniscribe replace ZWNJ with space
pos @1st_4 [@Kaf_1 @Kaf_2 @Kaf_3]' -500; # some applications might just remove it
} kern;
# proportional digits
feature kern {
pos uni0661.prop uni0662.prop -100;
pos uni0661.prop uni0663.prop -100;
pos uni0661.prop uni0666.prop -200;
pos uni0661.prop uni0669.prop -100;
pos uni0662.prop uni0667.prop 100;
pos uni0662.prop uni0668.prop -50;
pos uni0663.prop uni0667.prop 100;
pos uni0664.prop uni0661.prop -50;
pos uni0664.prop uni0668.prop 50;
pos uni0666.prop uni0661.prop -50;
pos uni0667.prop uni0661.prop -50;
pos uni0667.prop uni0668.prop -50;
pos uni0668.prop uni0661.prop -100;
pos uni0668.prop uni0662.prop -100;
pos uni0668.prop uni0663.prop -100;
pos uni0668.prop uni0666.prop -100;
pos uni0668.prop uni0667.prop -100;
pos uni0669.prop uni0668.prop 50;
pos uni0669.prop uni0660.prop 50;
pos uni0660.prop uni0667.prop 50;
pos uni0660.prop uni0668.prop 50;
} kern;
|