summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/amiri/sources/kerning.fea
blob: 1aef18ada0ad3db2fcb84a9f0e398e734dd4eaca (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
@1st_2 = [@aDal.fina @aDal.isol @aDal.fina_BaaDalIsol
          @aDal.fina_KafDal @aDal.fina_LamDal];
@1st_3 = [@aRaa.fina_MemRaaIsol]; # XXX @aRaa.fina.alt2
@1st_4 = [@aHeh.isol @aHeh.fina @aHeh.fina_KafHeh @aHeh.fina_LamHeh];

@2nd_1 = [@aKaf.init @aKaf.init_KafHeh
          @aKaf.init_KafMemInit @aKaf.init_KafYaaIsol
          @aKaf.init_KafMemIsol @aKaf.init_KafLam
          @aKaf.init_KafRaaIsol];
@2nd_2 = [@aKaf.init_KafBaaInit @aKaf.init_KafMemAlf];
@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, RightToLeft;
    enum pos @RaaWaw @2nd_1 <-600 0 -600 0>;
    enum pos @1st_2 @2nd_1 <-600 0 -600 0>;
    enum pos @1st_3 @2nd_1 <-800 0 -800 0>;

    enum pos @RaaWaw @2nd_2 <-300 0 -300 0>;
    enum pos @1st_2 @2nd_2 <-300 0 -300 0>;
    enum pos @1st_3 @2nd_2 <-400 0 -400 0>;

    enum pos @RaaWaw @2nd_3 <-100 0 -100 0>;

    enum pos @1st_3 @2nd_3 <-200 0 -200 0>;
    enum pos @1st_3 @2nd_4 <-400 0 -400 0>;

    # +ve kern so that the tail of raa/waw does not touch the dot of baa
    enum pos @RaaWaw @aBaaDotBelow <170 0 170 0>;
} kern;

feature kern {
  lookupflag IgnoreMarks, RightToLeft;
    # this baa requires an extra +ve kern than the ones above
    # XXX: we only need a subset of @aBaa.init_High
    enum pos @RaaWaw @aBaa.init_High <80 0 80 0>;
} kern;

lookup pos_500 {
  pos @2nd_1 -500;
} pos_500;

feature kern {
  lookupflag IgnoreMarks, RightToLeft;
    # kern heh isol/final followed by kaf, does not happen in Arabic but can be
    # seen in Kurdish or Persian using ZWNJ between them, so we double the rule
    # w/o ZWNJ as someapplications remove it after shaping.
    pos         @1st_4 @2nd_1' lookup pos_500;
    pos uni200C @1st_4 @2nd_1' lookup pos_500;
} kern;