summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea')
-rw-r--r--Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea202
1 files changed, 168 insertions, 34 deletions
diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea b/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea
index d653f66130d..37e7facd5f7 100644
--- a/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea
+++ b/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea
@@ -11,14 +11,25 @@
@FootNote = [uni0602];
@SafhaSign = [uni0603];
+@NumSignW = [uni0600.alt];
+
lookup digit2small {
sub @Digits by @Digits.small;
} digit2small;
+lookup NumSignW {
+ sub @NumSign by @NumSignW;
+} NumSignW;
+
+feature calt {
+ sub [@EndOfAyah @NumSign @SafhaSign @FootNote] @Digits' lookup digit2small;
+ sub [@EndOfAyah @NumSign @SafhaSign @FootNote] @Digits.small @Digits' lookup digit2small;
+ sub [@EndOfAyah @NumSign @SafhaSign ] @Digits.small @Digits.small @Digits' lookup digit2small;
+ sub @NumSign @Digits.small @Digits.small @Digits.small @Digits' lookup digit2small;
+} calt;
+
feature calt {
- sub [@EndOfAyah @NumSign @FootNote @SafhaSign] @Digits' lookup digit2small;
- sub @Digits.small [@EndOfAyah @NumSign @FootNote @SafhaSign] @Digits' lookup digit2small;
- sub @Digits.small @Digits.small [@EndOfAyah @NumSign @SafhaSign] @Digits' lookup digit2small;
+ sub @NumSign' lookup NumSignW @Digits.small @Digits.small @Digits.small @Digits.small;
} calt;
lookup digit2medium {
@@ -26,10 +37,10 @@ lookup digit2medium {
} digit2medium;
feature calt {
- sub @YearSign @Digits' lookup digit2medium;
- sub @Digits.medium @YearSign @Digits' lookup digit2medium;
- sub @Digits.medium @Digits.medium @YearSign @Digits' lookup digit2medium;
- sub @Digits.medium @Digits.medium @Digits.medium @YearSign @Digits' lookup digit2medium;
+ sub @YearSign @Digits' lookup digit2medium;
+ sub @YearSign @Digits.medium @Digits' lookup digit2medium;
+ sub @YearSign @Digits.medium @Digits.medium @Digits' lookup digit2medium;
+ sub @YearSign @Digits.medium @Digits.medium @Digits.medium @Digits' lookup digit2medium;
} calt;
# now we contextually kern the sign with the digits:
@@ -42,62 +53,185 @@ feature calt {
# dw = digit width, sw = sign width
feature kern {
- pos @EndOfAyah @Digits.small' <-1610 0 -600 0>;
- pos @NumSign @Digits.small' <-1522 0 -600 0>;
+ pos @EndOfAyah @Digits.small' <-1610 0 -600 0>;
+ pos @NumSign @Digits.small' <-1622 0 -600 0>;
+ pos @NumSignW @Digits.small' <-1922 0 -600 0>;
pos @YearSign @Digits.medium' <-2275 0 -900 0>;
- pos @FootNote @Digits.small' <-1090 0 -600 0>;
- pos @SafhaSign @Digits.small' <-1722 0 -600 0>;
+ pos @FootNote @Digits.small' <-1090 0 -600 0>;
+ pos @SafhaSign @Digits.small' <-1722 0 -600 0>;
} kern;
feature kern {
- pos @EndOfAyah @Digits.small' <-300 0 0 0> @Digits.small;
- pos @NumSign @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @EndOfAyah @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @NumSign @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @NumSignW @Digits.small' <-300 0 0 0> @Digits.small;
pos @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium;
- pos @FootNote @Digits.small' <-300 0 0 0> @Digits.small;
- pos @SafhaSign @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @FootNote @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @SafhaSign @Digits.small' <-300 0 0 0> @Digits.small;
} kern;
feature kern {
- pos @Digits.small @EndOfAyah @Digits.small' <-1310 0 -600 0>;
- pos @Digits.small @NumSign @Digits.small' <-1222 0 -600 0>;
- pos @Digits.medium @YearSign @Digits.medium' <-1825 0 -900 0>;
- pos @Digits.small @FootNote @Digits.small' <-790 0 -600 0>;
- pos @Digits.small @SafhaSign @Digits.small' <-1422 0 -600 0>;
+ pos @EndOfAyah @Digits.small @Digits.small' <-1310 0 -600 0>;
+ pos @NumSign @Digits.small @Digits.small' <-1322 0 -600 0>;
+ pos @NumSignW @Digits.small @Digits.small' <-1622 0 -600 0>;
+ pos @YearSign @Digits.medium @Digits.medium' <-1825 0 -900 0>;
+ pos @FootNote @Digits.small @Digits.small' <-790 0 -600 0>;
+ pos @SafhaSign @Digits.small @Digits.small' <-1422 0 -600 0>;
} kern;
feature kern {
- pos @EndOfAyah @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
- pos @NumSign @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
+ pos @EndOfAyah @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
+ pos @NumSign @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
+ pos @NumSignW @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
pos @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium;
- pos @SafhaSign @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
+ pos @SafhaSign @Digits.small' <-300 0 0 0> @Digits.small @Digits.small;
} kern;
feature kern {
- pos @Digits.small @EndOfAyah @Digits.small' <-300 0 0 0> @Digits.small;
- pos @Digits.small @NumSign @Digits.small' <-300 0 0 0> @Digits.small;
- pos @Digits.medium @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium;
- pos @Digits.small @SafhaSign @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @EndOfAyah @Digits.small @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @NumSign @Digits.small @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @NumSignW @Digits.small @Digits.small' <-300 0 0 0> @Digits.small;
+ pos @YearSign @Digits.medium @Digits.medium' <-450 0 0 0> @Digits.medium;
+ pos @SafhaSign @Digits.small @Digits.small' <-300 0 0 0> @Digits.small;
} kern;
feature kern {
- pos @Digits.small @Digits.small @EndOfAyah @Digits.small' <-1010 0 -600 0>;
- pos @Digits.small @Digits.small @NumSign @Digits.small' <-922 0 -600 0>;
- pos @Digits.medium @Digits.medium @YearSign @Digits.medium' <-1375 0 -900 0>;
- pos @Digits.small @Digits.small @SafhaSign @Digits.small' <-1122 0 -600 0>;
+ pos @EndOfAyah @Digits.small @Digits.small @Digits.small' <-1010 0 -600 0>;
+ pos @NumSign @Digits.small @Digits.small @Digits.small' <-1022 0 -600 0>;
+ pos @NumSignW @Digits.small @Digits.small @Digits.small' <-1322 0 -600 0>;
+ pos @YearSign @Digits.medium @Digits.medium @Digits.medium' <-1375 0 -900 0>;
+ pos @SafhaSign @Digits.small @Digits.small @Digits.small' <-1122 0 -600 0>;
} kern;
feature kern {
pos @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium @Digits.medium;
+ pos @NumSignW @Digits.small' <-300 0 0 0> @Digits.small @Digits.small @Digits.small ;
+} kern;
+
+feature kern {
+ pos @YearSign @Digits.medium @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium;
+ pos @NumSignW @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @Digits.small ;
+} kern;
+
+feature kern {
+ pos @YearSign @Digits.medium @Digits.medium @Digits.medium' <-450 0 0 0> @Digits.medium;
+ pos @NumSignW @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @Digits.small ;
+} kern;
+
+feature kern {
+ pos @YearSign @Digits.medium @Digits.medium @Digits.medium @Digits.medium' <-925 0 -900 0>;
+ pos @NumSignW @Digits.small @Digits.small @Digits.small @Digits.small' <-1022 0 -600 0>;
+} kern;
+
+##############
+# HarfBuzz flips LTR Arabic runs before applying OpenType, but this is not what
+# other engines does, so the above code does not work as it expects the digits
+# and the sign in LTR order, so we do it for RTL order below until this is
+# changed in HarfBuzz.
+feature calt {
+ sub @Digits' lookup digit2small [@EndOfAyah @NumSign @SafhaSign @FootNote];
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2small @Digits.small [@EndOfAyah @NumSign @SafhaSign @FootNote];
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2small @Digits.small @Digits.small [@EndOfAyah @NumSign @SafhaSign ];
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2small @Digits.small @Digits.small @Digits.small @NumSign;
+} calt;
+
+feature calt {
+ sub @Digits.small @Digits.small @Digits.small @Digits.small @NumSign' lookup NumSignW;
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2medium @YearSign;
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2medium @Digits.medium @YearSign;
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2medium @Digits.medium @Digits.medium @YearSign;
+} calt;
+
+feature calt {
+ sub @Digits' lookup digit2medium @Digits.medium @Digits.medium @Digits.medium @YearSign;
+} calt;
+
+feature kern {
+ pos @Digits.small' <-1610 0 -600 0> @EndOfAyah;
+ pos @Digits.small' <-1622 0 -600 0> @NumSign ;
+ pos @Digits.small' <-1922 0 -600 0> @NumSignW ;
+ pos @Digits.medium' <-2275 0 -900 0> @YearSign ;
+ pos @Digits.small' <-1090 0 -600 0> @FootNote ;
+ pos @Digits.small' <-1722 0 -600 0> @SafhaSign;
+} kern;
+
+feature kern {
+ pos @Digits.small @Digits.small' <-300 0 0 0> @EndOfAyah;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @NumSign ;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @NumSignW ;
+ pos @Digits.medium @Digits.medium' <-450 0 0 0> @YearSign ;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @FootNote ;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @SafhaSign;
+} kern;
+
+feature kern {
+ pos @Digits.small' <-1310 0 -600 0> @Digits.small @EndOfAyah;
+ pos @Digits.small' <-1322 0 -600 0> @Digits.small @NumSign ;
+ pos @Digits.small' <-1622 0 -600 0> @Digits.small @NumSignW ;
+ pos @Digits.medium' <-1825 0 -900 0> @Digits.medium @YearSign ;
+ pos @Digits.small' <-790 0 -600 0> @Digits.small @FootNote ;
+ pos @Digits.small' <-1422 0 -600 0> @Digits.small @SafhaSign;
+} kern;
+
+feature kern {
+ pos @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @EndOfAyah;
+ pos @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @NumSign ;
+ pos @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @NumSignW ;
+ pos @Digits.medium @Digits.medium @Digits.medium' <-450 0 0 0> @YearSign ;
+ pos @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @SafhaSign;
+} kern;
+
+feature kern {
+ pos @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @EndOfAyah;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @NumSign ;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @NumSignW ;
+ pos @Digits.medium @Digits.medium' <-450 0 0 0> @Digits.medium @YearSign ;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @SafhaSign;
+} kern;
+
+feature kern {
+ pos @Digits.small' <-1010 0 -600 0> @Digits.small @Digits.small @EndOfAyah;
+ pos @Digits.small' <-1022 0 -600 0> @Digits.small @Digits.small @NumSign ;
+ pos @Digits.small' <-1322 0 -600 0> @Digits.small @Digits.small @NumSignW ;
+ pos @Digits.medium' <-1375 0 -900 0> @Digits.medium @Digits.medium @YearSign ;
+ pos @Digits.small' <-1122 0 -600 0> @Digits.small @Digits.small @SafhaSign;
+} kern;
+
+feature kern {
+ pos @Digits.medium @Digits.medium @Digits.medium @Digits.medium' <-450 0 0 0> @YearSign;
+ pos @Digits.small @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @NumSignW;
} kern;
feature kern {
- pos @Digits.medium @Digits.medium @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium;
+ pos @Digits.medium @Digits.medium @Digits.medium' <-450 0 0 0> @Digits.medium @YearSign;
+ pos @Digits.small @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @NumSignW;
} kern;
feature kern {
- pos @Digits.medium @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium;
+ pos @Digits.medium @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium @YearSign;
+ pos @Digits.small @Digits.small' <-300 0 0 0> @Digits.small @Digits.small @NumSignW;
} kern;
feature kern {
- pos @Digits.medium @Digits.medium @Digits.medium @YearSign @Digits.medium' <-925 0 -900 0>;
+ pos @Digits.medium' <-925 0 -900 0> @Digits.medium @Digits.medium @Digits.medium @YearSign;
+ pos @Digits.small' <-1022 0 -600 0> @Digits.small @Digits.small @Digits.small @NumSignW;
} kern;
+##############