From 6e2ea14ca772d266538573661eee95e46db0001d Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Wed, 13 Mar 2024 00:21:12 +0200 Subject: [PATCH] Use rlig feature instead of calt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This should’ve been the tag used all along since these replacement are required for the proper rendering of the font, and some Adobe apps disable calt by default. --- fonts/Amiri-Bold.ttf | Bin 587096 -> 587080 bytes fonts/Amiri-BoldItalic.ttf | Bin 583336 -> 583320 bytes fonts/Amiri-Italic.ttf | Bin 603564 -> 603548 bytes fonts/Amiri-Regular.ttf | Bin 606240 -> 606224 bytes fonts/AmiriQuran.ttf | Bin 164376 -> 164364 bytes fonts/AmiriQuranColored.ttf | Bin 198140 -> 198128 bytes sources/contextuals.fea | 180 ++++++++++++++++++------------------ sources/enclosing.fea | 4 +- sources/lellah.fea | 18 ++-- sources/quran.fea | 12 +-- 10 files changed, 107 insertions(+), 107 deletions(-) diff --git a/fonts/Amiri-Bold.ttf b/fonts/Amiri-Bold.ttf index 7c1f75727132e9da45022107ee2b6f3153017dc6..8922ef3c6ea7e54740747f231c3b5d21639bd8d0 100644 GIT binary patch delta 666 zcmccdO8LYqGH_%nFfjCJOtd+{!m|CoUNZ+{I|m~OGXXI(5VHU=D-g2* zG5dB7Mh^Lm`d!SQ7?@q$d_ovR5{nX(7$kBMOY#`K7}OXT7?c=T9fKSd82r40Jro$K ze0?Gn7*+)PxhODP3k`BnU}Rxn`2U|l7^sqwfr){cfrWvafro*Yfsa9eL6AWRC?mok z${@xd&LF`ciCt|yP%%Fa#Ue-svl28KSv4Ecs_Q|nW+z%XNHr&3)m#jWAwk{>3>IMj zB0Gu;o4$IK;6YZ-flWDFwN!F)ZUMu*l)U_0hBaxKd5H|0GV?M^7fncTg33K07x=vX3=BOM6Kzhg=++ClG;=Vvb1;H16A&{4F$)m00x=s9 zvv22MpSd^H=Ad!<;lE)avpvJ(!pv1uH804tH5a1o`p}l3NKurAooMSo<3h6H&lFj#>di|QI4B&Aqg!-b@vUW!3F zIWeb%VF`$2re$gXvK@9LdwGvpG_@S;3AJU=U;w+P*7?qpt%1E+%>= diff --git a/fonts/Amiri-BoldItalic.ttf b/fonts/Amiri-BoldItalic.ttf index 8a750bc181b2955460e941b5f7ac7fa8bf3bd6f3..66ae9401410569906b353dce7460fbdb529e7952 100644 GIT binary patch delta 556 zcmZ2+R(Zx*1V1I|m~OGXXI(5VHU=D-g2* zG5dB7Mh@f1&|S=*7?@q$d_ovR5{nX(7$kBMOY#`K7}OXT7?c=T9fKSd82r40Jro$K ze0?Gn7*+)PxhODP3k`BnU}Rxn`2U|l7^sqwfr){cfrWvafro*Yfp7YRC=O9q9Fh$D z41x?oKy4xnq6}gT;tUcDl3;^GkPKo)F-j6-6tXlMerb06(wr#L%3KVLAwk{>3>Fx! z;6hP|;R+69X|c5AA{Hf82zmN4wd$xKgV*q4)^oWpPgOr8Rh z7r^8-FnJG5KFLii%4T?#o0^iz@FA}>w}|0e0gz(&Qv@`EkqJx|P0xwpu$-PB%aOuu i1`2Bi0Z?#G=ZWQr7u>;A=3=BOb6KzhgSWmVIZ{}cZ=U@b3CLm@8Viq7~1!6WJ zX5Y@i$YC5AdWwaKf!W2)Cxk&Hu_!T#K_VxyB#$wSL5+cdL5YFYG00JYA;3G>LxG{r z*C$eeVO_AFivq*F&>$BDMm`3H|Nj|87#JCVW-zcYurjbQ@G|f*@K2u*#UUyw1(jyN zDlH9>7Dds`j-(%}0uDk7I0-4>MpB?E#lXeD7!u^Iz+eS-EUIgGkd$I|4HuGvdMO6! zqLQ3k#s|g428N8!fTYp% rv=|OeM#Jg~+c_9Pmg@6KNkgtYoS3d3XCia4FCT#2m@6zGB7bPGq5mlGw?9*GVo1zSji#kibIlt zpFxm82&hejL6kv^L7YK?K@x0`2$DgpC`L(wj6#-X!!ON_Uz!s|TA7Q1F(k-afx!a9 z689wBd<`yx0D*#dqe~N%cFfxJ3qUkcLIV`8kui;4H jHUot9c8le~Gm delta 566 zcmbR9T4l{^l?etslajvOVc=Ntgn^;w*hHHXESEn%FK^~xZ0BGEVJ0AE24WTvSm1%?3cU=Ia` zI$xhi1%`FOel7|O_d#w*rF|*s-Xt;XzW0)iqp53hJd8 zq>~eKN*I=aNJg&YegmC<0j+!~JL>GrERQn*>cjuc=JWDwe3w}wNm69AS+fSdpT diff --git a/fonts/Amiri-Regular.ttf b/fonts/Amiri-Regular.ttf index e07350e7b9b37bdd8ff11f50d29194de09d95bc4..29f1c5cd69c5e08749e8238363a5442738fa0c96 100644 GIT binary patch delta 666 zcmZ3`pgIAF40u969_V1;*xbRu(9<^2<^)Sm#__CX4#sv4Mi6EKVrC#_0b*7lW&>jO z?Hr68?VIX%F@IuUc5(9wVGv0yN=#yq$Vn{8WAtKBV_;xVVqkR)a#UdO^A7e*7{5TYgAQ{X`&}d}UY(%TB2f3P^XyqW)oOo4pF))S%c`Gnjfc=Z? zC@yUJ>QRCRSvdzb<#5$f$;r6|4D(X*@^cy1q-EwMGHlAs%Pe8ok&~I8$gnRbKRJit z2$(ztCNF@=Yhdyon0%6(Sd`5m|0*{%C6nPpUTJO-!?yw;#qg&HXa*w_m@JxpU@M2^ k^uyaYQn<|!F*`kB8%Mn04u(Cz7&1i_PTp?1o#S-}04jWS5C8xG delta 558 zcmbQxpt_(zb%FuU!9KOG3>=#~7#Mn{O|&_|vQ__ALo)|sI|m~OGXXI(5VHU=D-g2* zG5dB7MvnGPp{H1w7?@q$d_ovR5{nX(7$kBMOY#`Q7}OXT7?c=T9fKSd7y`V5Jro$~ ze0?Gn7}f>*xhOE)3k`BnVB}+9`2U|lgn^L(Xa)ld11kd?11|#~1OK$G9HNp^P+10S zveFP)Q53!G2;EraIS9ye5|HOc$g4^*a4|531bHhkSb^P%>JlD=N~|v7Lde%kF-RvT z=9Dlj0g;Sc$;r6|jCm<}`MHcWX_{6#yy5Getln7%vr-Yc4OMXoN diff --git a/fonts/AmiriQuran.ttf b/fonts/AmiriQuran.ttf index 23dabc78de9d7be60bc3cdb3d058357db555fc19..4c0f8926cc7cd09d7eb273b184b772c01fb2971a 100644 GIT binary patch delta 403 zcmbQy!qwBlHNk+V`tS5g1|~Nh1_tW~6Kzhgd{E+;+RVY&&cVpIor94{%e9{23sVmR zvx}Qg2*atwqQoQyk(|VmJcd&YyBJsEC8CV!N8Mqj@fqY&DJ_ddU0kAAD1JHP|EGrIqko{lvYO8`~mO%(tD diff --git a/fonts/AmiriQuranColored.ttf b/fonts/AmiriQuranColored.ttf index 32bf9d4fc37dd5913beffc9ad4dc90be893e95f7..683e1339ecb546242ee41d989b126cf85211d5bf 100644 GIT binary patch delta 403 zcmey<&GVs~XF>o^_22203{0m47#OS{OpH0fGP5XXb+ZOzy9OiUb`3_RcPHu@zA*JL zFuS<?l5Gl1(K6<3mB5pGV>A{ax(KwGD{eWa`KaN7%ISI9hhtZlU=!qMcE7!a#K?> y8KxEGWTrFB0g;SM)1yu^DNZ*$!(_#6i17FHn$t|t+yV?^ delta 413 zcmey+&GV<5XF>qa!qc|x3{0m47#OVIOpH0f;(MK~xmkm;U4xNvy9OiEyA$<{3`{c^ zm|fg_LKvl3NKkPz(WqQKA)8U!R4 zFfjc8&%ndLz`(@7%)r9H$-u?H4dnAO@G] preceded by a letter +# The first feature substitutes any [] preceded by a letter # that is known not to be part of any of the allowed words by a regular non # special form. The next block will then substitute the allowed context, given # it meets a certain criteria. @@ -40,13 +40,13 @@ lookup LamMediLellah { # This a stripped down version of the above for use in Amiri Quran, # because here we can safely assume the [] sequence always # mean the name of Allah. -feature calt { +feature rlig { lookupflag IgnoreMarks; # لله sub lam-ar.init' lookup LamInitLellah lam-ar.medi' lookup LamMediLellah @Hf' lookup HehFinaLellah; # فلله sub [feh-ar.init]' lam-ar.medi' lookup LamMediFaLellah lam-ar.medi' lookup LamMediLellah @Hf' lookup HehFinaLellah; -} calt; +} rlig; #else lookup LamLamInitX { @@ -58,7 +58,7 @@ lookup LamLamInitX { @aBaa_init = [beh-ar.init teh-ar.init]; @aBaa_medi = [beh-ar.medi teh-ar.medi]; @Ignore = [@aAyn.fina @aAyn.isol @aAlf.isol @aAlf.fina @aBaa.fina @aBaa.isol @aDal.fina @aDal.isol @aFaa.fina @aFaa.isol @aHaa.fina @aHaa.isol @aHeh.fina @aHeh.isol @aKaf.fina @aKaf.isol @aLam.fina @aLam.isol @aMem.fina @aMem.isol @aNon.fina @aNon.isol @aQaf.fina @aQaf.isol @aRaa.fina @aRaa.isol @aSad.fina @aSad.isol @aSen.fina @aSen.isol @aTaa.fina @aTaa.isol @aWaw.fina @aWaw.isol @aYaa.fina @aYaa.isol]; -feature calt { +feature rlig { lookupflag IgnoreMarks; # Allow الله/ولله/ـالله ignore sub [@Ai @Af waw-ar] lam-ar.init' lam-ar.medi' @Hf; @@ -76,9 +76,9 @@ feature calt { ignore sub [@aBaa_init kaf-ar.init feh-ar.init] @Af' lam-ar.init' lam-ar.medi' @Hf; # Supress any remaining *ـالله sub @Af' lam-ar.init' lookup LamLamInitX lam-ar.medi' lookup LamLamInitX @Hf; -} calt; +} rlig; -feature calt { +feature rlig { # لله sub lam-ar.init' lookup LamInitLellah lam-ar.medi' lookup LamMediLellah @Hf' lookup HehFinaLellah; sub lam-ar.init' lookup LamInitLellah lam-ar.medi' lookup LamMediLellah shadda-ar' @Hf' lookup HehFinaLellah; @@ -117,12 +117,12 @@ feature calt { sub feh-ar.init' fatha-ar' lam-ar.medi' lookup LamMediFaLellah kasra-ar' lam-ar.medi' lookup LamMediLellah @Hf' lookup HehFinaLellah; sub feh-ar.init' fatha-ar' lam-ar.medi' lookup LamMediFaLellah kasra-ar' lam-ar.medi' lookup LamMediLellah shadda-ar' @Hf' lookup HehFinaLellah; sub feh-ar.init' fatha-ar' lam-ar.medi' lookup LamMediFaLellah kasra-ar' lam-ar.medi' lookup LamMediLellah shadda-ar' @xF' @Hf' lookup HehFinaLellah; -} calt; +} rlig; # Now put shadda+dagger alef above the medial lam if there are no marks on it. -feature calt { +feature rlig { sub lam-ar.medi.Lellah' heh-ar.fina.Lellah by lam-ar.medi.Lellah2; -} calt; +} rlig; # This stylistic set removes them. feature ss06 { diff --git a/sources/quran.fea b/sources/quran.fea index 54e887f609..079cd801a4 100644 --- a/sources/quran.fea +++ b/sources/quran.fea @@ -71,7 +71,7 @@ lookup LamAlefFina { sub alef-ar by alef-ar.fina.LamAlfFina; } LamAlefFina; -feature calt { +feature rlig { lookupflag IgnoreMarks; # hamza between lam and alef needs special treatment as it should not have # a connecting stroke to avoid breaking lam-alef. @@ -79,7 +79,7 @@ feature calt { sub lam-ar.fina' lookup LamAlefFina hamza-ar' lookup FloatingHamza alef-ar' lookup LamAlefFina; # Medial hamza. sub @before' lookup Before hamza-ar' lookup MedialHamza @after' lookup After; -} calt; +} rlig; # This is the Unicode-sanctioned way of lam-alef with medial hamza. feature ccmp { @@ -106,18 +106,18 @@ lookup hamzakasra { sub wawHamzaabove-ar by waw-ar hamzabelow-ar; } hamzakasra; -feature calt { +feature rlig { # lookupflag IgnoreMarks; sub [yehHamzaabove-ar yehHamzaabove-ar.init yehHamzaabove-ar.medi yehHamzaabove-ar.fina wawHamzaabove-ar wawHamzaabove-ar.fina]' lookup hamzakasra [kasra-ar kasratan-ar openkasratan-ar]; -} calt; +} rlig; #endif # small waw after isolated/final heh is lower than usual, so we use an # alternate glyph for that -feature calt { +feature rlig { lookupflag IgnoreMarks; sub [@aHeh.isol @aHeh.fina] [wawSmall-ar]' by [wawSmall-ar.low]; -} calt; +} rlig; # some glyphs need more room to accommodate madda mark, so we change the advance # width on fly.