summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/amiri/sources/kashida.fea
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/amiri/sources/kashida.fea')
-rw-r--r--Master/texmf-dist/doc/fonts/amiri/sources/kashida.fea30
1 files changed, 30 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/kashida.fea b/Master/texmf-dist/doc/fonts/amiri/sources/kashida.fea
new file mode 100644
index 00000000000..bb54f142a6c
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/amiri/sources/kashida.fea
@@ -0,0 +1,30 @@
+# Kashida justification as implemented in most, if not all, applications is
+# broken by design; it inserts kashidas *after* doing OT layout which makes it
+# impossible for OT code to interact with those kashidas breaking all sorts of
+# things.
+# To trick LibreOffice/MS Office to not do kashida justification we set the
+# default kashida to a zero width, blank glyph which makes them to think there
+# is no suitable kashida glyph, resorting back to regular justification
+# To get manually inserted kashida working we use an rlig feature to map to the
+# actual kashida glyph(s).
+
+feature rlig {
+ lookupflag IgnoreMarks;
+ sub uni0640 uni0640 uni0640 uni0640 by uni0640.4;
+ sub uni0640 uni0640 uni0640 by uni0640.3;
+ sub uni0640 uni0640 by uni0640.2;
+} rlig;
+
+# should be merged with the bove lookup, FF ignores it for some reason.
+feature rlig {
+ lookupflag IgnoreMarks;
+ sub uni0640 by uni0640.1;
+} rlig;
+
+feature rlig {
+ lookupflag IgnoreMarks;
+ sub uni0640.1 uni0627.fina by uni0627.fina_Tatweel;
+ sub uni0640.2 uni0627.fina by uni0627.fina_Tatweel;
+ sub uni0640.3 uni0627.fina by uni0627.fina_Tatweel;
+ sub uni0640.4 uni0627.fina by uni0627.fina_Tatweel;
+} rlig;