diff options
24 files changed, 294 insertions, 63 deletions
diff --git a/Master/texmf-dist/doc/fonts/amiri/Makefile b/Master/texmf-dist/doc/fonts/amiri/Makefile index 189e7a08afe..8a4fa882f39 100644 --- a/Master/texmf-dist/doc/fonts/amiri/Makefile +++ b/Master/texmf-dist/doc/fonts/amiri/Makefile @@ -1,7 +1,7 @@ .PHONY: all clean ttf web pack check NAME=amiri -VERSION=0.102 +VERSION=0.103 TOOLS=tools SRC=sources @@ -26,6 +26,7 @@ PDFS=$(DOC)/$(NAME)-table.pdf CSSS=$(WEB)/$(NAME).css FEAT=$(wildcard $(SRC)/*.fea) TEST=$(wildcard $(TESTS)/*.test) +TEST+=$(wildcard $(TESTS)/*.ptest) DOCFILES=$(DOCS:%=$(DOC)/%.txt) license=OFL.txt OFL-FAQ.txt diff --git a/Master/texmf-dist/doc/fonts/amiri/README b/Master/texmf-dist/doc/fonts/amiri/README.txt index 41dbde9efed..41dbde9efed 100644 --- a/Master/texmf-dist/doc/fonts/amiri/README +++ b/Master/texmf-dist/doc/fonts/amiri/README.txt diff --git a/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS-Arabic.txt b/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS-Arabic.txt index 392443653fd..4206207c872 100644 --- a/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS-Arabic.txt +++ b/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS-Arabic.txt @@ -1,3 +1,12 @@ +أميري 0٫103 (2012-05-31) +------------------------ +* هذه إصدارة صغيرة لإصلاح بعض العلات: + - إصلاح اتآلف السيء بين الأرقام مع علامة نهاية الآية وغيرها من العلامات الضامة. + - إضافة رموز ظاهرة لمحارف التحكم في ثنائية الاتجاه. + - تأليف المزيد من الكافات عبر الفاصلة المجازية. + - إصلاح معالجة ميلان المحارف المشتركة إلى اليمين أو إلى اليسار في الخط المائل + ليصبح أكثر منطقية. + أميري 0٫102 (2012-05-22) ------------------------ * المحارف الجديدة: @@ -28,7 +37,7 @@ - جدول تآلف أحسن أداء يستخدم التموضع السياقي. - تقليل تآلف الدال أو الراء مع الكاف لتفادي التصاق النقاط. - زيادة تباعد الراء عن الياء البادئة. - - جعل التآلف عبر الفاصل المجازي يعمل في محرك ميكروسوفت. + - جعل التآلف عبر الفاصلة المجازية يعمل في محرك ميكروسوفت. * إصلاح العلات: #1347860، #3471042، #3475146، #3509875 diff --git a/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS.txt b/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS.txt index 9e082a8cd0b..2bbfab0fd74 100644 --- a/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS.txt +++ b/Master/texmf-dist/doc/fonts/amiri/documentation/NEWS.txt @@ -1,3 +1,13 @@ +Amiri 0.103 (2012-05-31) +------------------------ +* This is a bug fix release: + - Fix wrong kerning of digits inside end of ayah and other Arabic enclosing + marks. + - Add visible glyphs for BiDi control characters. + - Kern more kaf forms accross ZWNJ. + - Fix handling of right-slanting and left-slanting common characters in the + italic fonts to be more logical. + Amiri 0.102 (2012-05-22) ------------------------ * New glyphs: diff --git a/Master/texmf-dist/doc/fonts/amiri/documentation/amiri-table.pdf b/Master/texmf-dist/doc/fonts/amiri/documentation/amiri-table.pdf Binary files differindex 90e3909acae..4f09ca062ef 100644 --- a/Master/texmf-dist/doc/fonts/amiri/documentation/amiri-table.pdf +++ b/Master/texmf-dist/doc/fonts/amiri/documentation/amiri-table.pdf diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/amiri-bold.sfd b/Master/texmf-dist/doc/fonts/amiri/sources/amiri-bold.sfd index 3f243b6de97..7283fdf2a3e 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/amiri-bold.sfd +++ b/Master/texmf-dist/doc/fonts/amiri/sources/amiri-bold.sfd @@ -20,7 +20,7 @@ OS2Version: 4 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 1 CreationTime: 1273266481 -ModificationTime: 1337663566 +ModificationTime: 1338475036 PfmFamily: 17 TTFWeight: 700 TTFWidth: 5 @@ -18597,6 +18597,14 @@ Encoding: 8204 8204 307 Width: 0 Flags: W LayerCount: 3 +Fore +SplineSet +30 1110 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 1110 l 1,3,-1 + 30 1110 l 1,0,-1 +EndSplineSet EndChar StartChar: uni200D @@ -18604,6 +18612,27 @@ Encoding: 8205 8205 308 Width: 0 Flags: W LayerCount: 3 +Fore +SplineSet +30 970 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 970 l 1,3,-1 + 30 970 l 1,0,-1 +0 1068 m 1,4,-1 + -97 971 l 1,5,-1 + -139 1013 l 1,6,-1 + -42 1110 l 1,7,-1 + -139 1207 l 1,8,-1 + -97 1249 l 1,9,-1 + 0 1152 l 1,10,-1 + 97 1249 l 1,11,-1 + 139 1207 l 1,12,-1 + 42 1110 l 1,13,-1 + 139 1013 l 1,14,-1 + 97 971 l 1,15,-1 + 0 1068 l 1,4,-1 +EndSplineSet EndChar StartChar: uni200E @@ -18611,6 +18640,24 @@ Encoding: 8206 8206 309 Width: 0 Flags: W LayerCount: 3 +Fore +SplineSet +-30 970 m 1,0,-1 + 30 970 l 1,1,-1 + 30 0 l 1,2,-1 + -30 0 l 1,3,-1 + -30 970 l 1,0,-1 +277 1110 m 1,4,-1 + 138 971 l 1,5,-1 + 96 1013 l 1,6,-1 + 163 1080 l 1,7,-1 + -30 1080 l 1,8,-1 + -30 1140 l 1,9,-1 + 162 1140 l 1,10,-1 + 96 1206 l 1,11,-1 + 139 1248 l 1,12,-1 + 277 1110 l 1,4,-1 +EndSplineSet EndChar StartChar: uni200F @@ -18618,6 +18665,8 @@ Encoding: 8207 8207 310 Width: 0 Flags: W LayerCount: 3 +Fore +Refer: 309 8206 N -1 0 0 1 0 0 2 EndChar StartChar: uni202A @@ -18625,6 +18674,17 @@ Encoding: 8234 8234 311 Width: 0 Flags: W LayerCount: 3 +Fore +SplineSet +277 1110 m 1,0,-1 + 139 1248 l 1,1,-1 + 96 1206 l 1,2,-1 + 192 1110 l 1,3,-1 + 96 1013 l 1,4,-1 + 138 971 l 1,5,-1 + 277 1110 l 1,0,-1 +EndSplineSet +Refer: 307 8204 N -1 0 0 1 0 0 2 EndChar StartChar: uni202B @@ -18632,6 +18692,8 @@ Encoding: 8235 8235 312 Width: 0 Flags: W LayerCount: 3 +Fore +Refer: 311 8234 N -1 0 0 1 0 0 2 EndChar StartChar: uni202C @@ -18639,6 +18701,21 @@ Encoding: 8236 8236 313 Width: 0 Flags: W LayerCount: 3 +Fore +SplineSet +30 970 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 970 l 1,3,-1 + 30 970 l 1,0,-1 +139 1055 m 1,4,-1 + 97 1013 l 1,5,-1 + 0 1110 l 1,6,-1 + -97 1013 l 1,7,-1 + -139 1055 l 1,8,-1 + 0 1194 l 1,9,-1 + 139 1055 l 1,4,-1 +EndSplineSet EndChar StartChar: uni202D @@ -18646,6 +18723,24 @@ Encoding: 8237 8237 314 Width: 0 Flags: W LayerCount: 3 +Fore +SplineSet +457 1110 m 1,0,-1 + 319 1248 l 1,1,-1 + 276 1206 l 1,2,-1 + 372 1110 l 1,3,-1 + 276 1013 l 1,4,-1 + 318 971 l 1,5,-1 + 457 1110 l 1,0,-1 +277 1110 m 1,6,-1 + 139 1248 l 1,7,-1 + 96 1206 l 1,8,-1 + 192 1110 l 1,9,-1 + 96 1013 l 1,10,-1 + 138 971 l 1,11,-1 + 277 1110 l 1,6,-1 +EndSplineSet +Refer: 307 8204 N -1 0 0 1 0 0 2 EndChar StartChar: uni202E @@ -18653,6 +18748,8 @@ Encoding: 8238 8238 315 Width: 0 Flags: W LayerCount: 3 +Fore +Refer: 314 8237 N -1 0 0 1 0 0 2 EndChar StartChar: uni2003 diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/amiri-regular.sfd b/Master/texmf-dist/doc/fonts/amiri/sources/amiri-regular.sfd index 48a5dc7d91b..a9710804ed3 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/amiri-regular.sfd +++ b/Master/texmf-dist/doc/fonts/amiri/sources/amiri-regular.sfd @@ -19,7 +19,7 @@ OS2Version: 4 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 1 CreationTime: 1273266481 -ModificationTime: 1337663565 +ModificationTime: 1338475028 PfmFamily: 17 TTFWeight: 400 TTFWidth: 5 @@ -13460,6 +13460,14 @@ Encoding: 8204 8204 307 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +30 1110 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 1110 l 1,3,-1 + 30 1110 l 1,0,-1 +EndSplineSet EndChar StartChar: uni200D @@ -13467,6 +13475,27 @@ Encoding: 8205 8205 308 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +30 970 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 970 l 1,3,-1 + 30 970 l 1,0,-1 +0 1068 m 1,4,-1 + -97 971 l 1,5,-1 + -139 1013 l 1,6,-1 + -42 1110 l 1,7,-1 + -139 1207 l 1,8,-1 + -97 1249 l 1,9,-1 + 0 1152 l 1,10,-1 + 97 1249 l 1,11,-1 + 139 1207 l 1,12,-1 + 42 1110 l 1,13,-1 + 139 1013 l 1,14,-1 + 97 971 l 1,15,-1 + 0 1068 l 1,4,-1 +EndSplineSet EndChar StartChar: uni200E @@ -13474,6 +13503,24 @@ Encoding: 8206 8206 309 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +30 970 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 970 l 1,3,-1 + 30 970 l 1,0,-1 +-277 1110 m 1,4,-1 + -139 1248 l 1,5,-1 + -96 1206 l 1,6,-1 + -162 1140 l 1,7,-1 + 30 1140 l 1,8,-1 + 30 1080 l 1,9,-1 + -163 1080 l 1,10,-1 + -96 1013 l 1,11,-1 + -138 971 l 1,12,-1 + -277 1110 l 1,4,-1 +EndSplineSet EndChar StartChar: uni200F @@ -13481,6 +13528,24 @@ Encoding: 8207 8207 310 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +-30 970 m 1,0,-1 + 30 970 l 1,1,-1 + 30 0 l 1,2,-1 + -30 0 l 1,3,-1 + -30 970 l 1,0,-1 +277 1110 m 1,4,-1 + 138 971 l 1,5,-1 + 96 1013 l 1,6,-1 + 163 1080 l 1,7,-1 + -30 1080 l 1,8,-1 + -30 1140 l 1,9,-1 + 162 1140 l 1,10,-1 + 96 1206 l 1,11,-1 + 139 1248 l 1,12,-1 + 277 1110 l 1,4,-1 +EndSplineSet EndChar StartChar: uni202A @@ -13488,6 +13553,17 @@ Encoding: 8234 8234 311 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +277 1110 m 1,0,-1 + 139 1248 l 1,1,-1 + 96 1206 l 1,2,-1 + 192 1110 l 1,3,-1 + 96 1013 l 1,4,-1 + 138 971 l 1,5,-1 + 277 1110 l 1,0,-1 +EndSplineSet +Refer: 307 8204 N -1 0 0 1 0 0 2 EndChar StartChar: uni202B @@ -13495,6 +13571,8 @@ Encoding: 8235 8235 312 Width: 0 Flags: W LayerCount: 2 +Fore +Refer: 311 8234 N -1 0 0 1 0 0 2 EndChar StartChar: uni202C @@ -13502,6 +13580,21 @@ Encoding: 8236 8236 313 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +30 970 m 1,0,-1 + 30 0 l 1,1,-1 + -30 0 l 1,2,-1 + -30 970 l 1,3,-1 + 30 970 l 1,0,-1 +139 1055 m 1,4,-1 + 97 1013 l 1,5,-1 + 0 1110 l 1,6,-1 + -97 1013 l 1,7,-1 + -139 1055 l 1,8,-1 + 0 1194 l 1,9,-1 + 139 1055 l 1,4,-1 +EndSplineSet EndChar StartChar: uni202D @@ -13509,6 +13602,24 @@ Encoding: 8237 8237 314 Width: 0 Flags: W LayerCount: 2 +Fore +SplineSet +457 1110 m 1,0,-1 + 319 1248 l 1,1,-1 + 276 1206 l 1,2,-1 + 372 1110 l 1,3,-1 + 276 1013 l 1,4,-1 + 318 971 l 1,5,-1 + 457 1110 l 1,0,-1 +277 1110 m 1,6,-1 + 139 1248 l 1,7,-1 + 96 1206 l 1,8,-1 + 192 1110 l 1,9,-1 + 96 1013 l 1,10,-1 + 138 971 l 1,11,-1 + 277 1110 l 1,6,-1 +EndSplineSet +Refer: 307 8204 N -1 0 0 1 0 0 2 EndChar StartChar: uni202E @@ -13516,6 +13627,8 @@ Encoding: 8238 8238 315 Width: 0 Flags: W LayerCount: 2 +Fore +Refer: 314 8237 N -1 0 0 1 0 0 2 EndChar StartChar: uni2003 diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea b/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea index 44770fda354..d653f66130d 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/enclosing.fea @@ -50,11 +50,11 @@ feature kern { } kern; feature kern { - pos @EndOfAyah @Digits.small' -300 @Digits.small; - pos @NumSign @Digits.small' -300 @Digits.small; - pos @YearSign @Digits.medium' -450 @Digits.medium; - pos @FootNote @Digits.small' -300 @Digits.small; - pos @SafhaSign @Digits.small' -300 @Digits.small; + pos @EndOfAyah @Digits.small' <-300 0 0 0> @Digits.small; + pos @NumSign @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; } kern; feature kern { @@ -66,17 +66,17 @@ feature kern { } kern; feature kern { - pos @EndOfAyah @Digits.small' -300 @Digits.small @Digits.small; - pos @NumSign @Digits.small' -300 @Digits.small @Digits.small; - pos @YearSign @Digits.medium' -450 @Digits.medium @Digits.medium; - pos @SafhaSign @Digits.small' -300 @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 @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium; + pos @SafhaSign @Digits.small' <-300 0 0 0> @Digits.small @Digits.small; } kern; feature kern { - pos @Digits.small @EndOfAyah @Digits.small' -300 @Digits.small; - pos @Digits.small @NumSign @Digits.small' -300 @Digits.small; - pos @Digits.medium @YearSign @Digits.medium' -450 @Digits.medium; - pos @Digits.small @SafhaSign @Digits.small' -300 @Digits.small; + 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; } kern; feature kern { @@ -87,15 +87,15 @@ feature kern { } kern; feature kern { - pos @YearSign @Digits.medium' -450 @Digits.medium @Digits.medium @Digits.medium; + pos @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium @Digits.medium; } kern; feature kern { - pos @Digits.medium @Digits.medium @YearSign @Digits.medium' -450 @Digits.medium; + pos @Digits.medium @Digits.medium @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium; } kern; feature kern { - pos @Digits.medium @YearSign @Digits.medium' -450 @Digits.medium @Digits.medium; + pos @Digits.medium @YearSign @Digits.medium' <-450 0 0 0> @Digits.medium @Digits.medium; } kern; feature kern { diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/italic_ltra.fea b/Master/texmf-dist/doc/fonts/amiri/sources/italic_ltra.fea index cd0c8c4b4e5..aca5cf36105 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/italic_ltra.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/italic_ltra.fea @@ -1,8 +1,6 @@ -languagesystem DFLT dflt; -languagesystem latn dflt; -languagesystem latn TRK; +include(lang_latin.fea) -feature ltra { +feature locl { sub exclam by exclam.ltr; sub quotedbl by quotedbl.ltr; sub numbersign by numbersign.ltr; @@ -72,4 +70,4 @@ feature ltra { sub guilsinglright by guilsinglright.ltr; sub fraction by fraction.ltr; sub uni2213 by uni2213.ltr; -} ltra; +} locl; diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/italic_rtla.fea b/Master/texmf-dist/doc/fonts/amiri/sources/italic_rtla.fea index 0b6c25bc796..eb878b7c056 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/italic_rtla.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/italic_rtla.fea @@ -1,14 +1,12 @@ -include(lang.fea) +include(lang_arabic.fea) -feature rtla { +feature locl { sub exclam by exclam.rtl; sub quotedbl by quotedbl.rtl; sub numbersign by numbersign.rtl; sub dollar by dollar.rtl; sub percent by percent.rtl; sub quotesingle by quotesingle.rtl; - sub parenleft by parenleft.rtl; - sub parenright by parenright.rtl; sub asterisk by asterisk.rtl; sub plus by plus.rtl; sub slash by slash.rtl; @@ -29,17 +27,11 @@ feature rtla { sub greater by greater.rtl; sub question by question.rtl; sub at by at.rtl; - sub bracketleft by bracketleft.rtl; sub backslash by backslash.rtl; - sub bracketright by bracketright.rtl; sub asciicircum by asciicircum.rtl; - sub braceleft by braceleft.rtl; - sub bar by bar.rtl; - sub braceright by braceright.rtl; sub brokenbar by brokenbar.rtl; sub section by section.rtl; sub copyright by copyright.rtl; - sub guillemotleft by guillemotleft.rtl; sub logicalnot by logicalnot.rtl; sub registered by registered.rtl; sub plusminus by plusminus.rtl; @@ -48,7 +40,6 @@ feature rtla { sub paragraph by paragraph.rtl; sub uni00B9 by uni00B9.rtl; sub ordmasculine by ordmasculine.rtl; - sub guillemotright by guillemotright.rtl; sub onequarter by onequarter.rtl; sub onehalf by onehalf.rtl; sub threequarters by threequarters.rtl; @@ -71,4 +62,4 @@ feature rtla { sub fraction by fraction.rtl; sub uni2213 by uni2213.rtl; sub uni061F by uni061F.rtl; -} rtla; +} locl; diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/kerning.fea b/Master/texmf-dist/doc/fonts/amiri/sources/kerning.fea index cfd5df910b7..c55b1c3913b 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/kerning.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/kerning.fea @@ -42,7 +42,7 @@ 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 uni200C @1st_4 @Kaf_1' -500; - pos space @1st_4 @Kaf_1' -500; # Uniscribe replace ZWNJ with space - pos @1st_4 @Kaf_1' -500; # some applications might just remove it + pos uni200C @1st_4 [@Kaf_1 @Kaf_2 @Kaf_3]' -500; + pos space @1st_4 [@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; diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/lang.fea b/Master/texmf-dist/doc/fonts/amiri/sources/lang.fea index 3b4d90be86a..88d2e7efc1a 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/lang.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/lang.fea @@ -1,7 +1,3 @@ languagesystem DFLT dflt; -languagesystem latn dflt; -languagesystem latn TRK; -languagesystem arab dflt; -languagesystem arab ARA; -languagesystem arab URD; -languagesystem arab SND; +include(lang_arabic.fea) +include(lang_latin.fea) diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/lang_arabic.fea b/Master/texmf-dist/doc/fonts/amiri/sources/lang_arabic.fea new file mode 100644 index 00000000000..6ff01fd31e0 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/amiri/sources/lang_arabic.fea @@ -0,0 +1,4 @@ +languagesystem arab dflt; +languagesystem arab ARA; +languagesystem arab URD; +languagesystem arab SND; diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/lang_latin.fea b/Master/texmf-dist/doc/fonts/amiri/sources/lang_latin.fea new file mode 100644 index 00000000000..bf9635273df --- /dev/null +++ b/Master/texmf-dist/doc/fonts/amiri/sources/lang_latin.fea @@ -0,0 +1,2 @@ +languagesystem latn dflt; +languagesystem latn TRK; diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/latin_gsub.fea b/Master/texmf-dist/doc/fonts/amiri/sources/latin_gsub.fea index 4438a7d853c..10c46ce66f0 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/latin_gsub.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/latin_gsub.fea @@ -1,6 +1,5 @@ languagesystem DFLT dflt; -languagesystem latn dflt; -languagesystem latn TRK; +include(lang_latin.fea) feature locl { script latn; diff --git a/Master/texmf-dist/doc/fonts/amiri/sources/local.fea b/Master/texmf-dist/doc/fonts/amiri/sources/local.fea index c924d96d819..a317739cd01 100644 --- a/Master/texmf-dist/doc/fonts/amiri/sources/local.fea +++ b/Master/texmf-dist/doc/fonts/amiri/sources/local.fea @@ -7,7 +7,7 @@ lookup loclPunct { sub braceright by braceright.ara; sub bracketleft by bracketleft.ara; sub bracketright by bracketright.ara; - sub parenleft by parenleft.ara; + sub parenleft by parenleft.ara; sub parenright by parenright.ara; } loclPunct; diff --git a/Master/texmf-dist/doc/fonts/amiri/test-suite/enclosing.ptest b/Master/texmf-dist/doc/fonts/amiri/test-suite/enclosing.ptest new file mode 100644 index 00000000000..5735695bce5 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/amiri/test-suite/enclosing.ptest @@ -0,0 +1,6 @@ +ltr;;;;\u06DD\u0661;[uni06DD+2620|uni0661.small@-1610] +ltr;;;;\u06DD\u0661\u0661;[uni06DD+2620|uni0661.small@-1910|uni0661.small@-1310] +ltr;;;;\u06DD\u0661\u0661\u0661;[uni06DD+2620|uni0661.small@-2210|uni0661.small@-1610|uni0661.small@-1010] +ltr;;;;\u06DD\u0031;[uni06DD+2620|one.small@-1610] +ltr;;;;\u06DD\u0031\u0031;[uni06DD+2620|one.small@-1910|one.small@-1310] +ltr;;;;\u06DD\u0031\u0031\u0031;[uni06DD+2620|one.small@-2210|one.small@-1610|one.small@-1010] diff --git a/Master/texmf-dist/doc/fonts/amiri/test-suite/enclosing.test b/Master/texmf-dist/doc/fonts/amiri/test-suite/enclosing.test deleted file mode 100644 index 8c336afa47f..00000000000 --- a/Master/texmf-dist/doc/fonts/amiri/test-suite/enclosing.test +++ /dev/null @@ -1,6 +0,0 @@ -rtl;arab;;;\u06DD\u0661;[uni0661.small|uni06DD] -rtl;arab;;;\u06DD\u0661\u0661;[uni0661.small|uni0661.small|uni06DD] -rtl;arab;;;\u06DD\u0661\u0661\u0661;[uni0661.small|uni0661.small|uni0661.small|uni06DD] -ltr;latn;;;\u06DD\u0661;[uni06DD|uni0661.small] -ltr;latn;;;\u06DD\u0661\u0661;[uni06DD|uni0661.small|uni0661.small] -ltr;latn;;;\u06DD\u0661\u0661\u0661;[uni06DD|uni0661.small|uni0661.small|uni0661.small] diff --git a/Master/texmf-dist/doc/fonts/amiri/tools/build.py b/Master/texmf-dist/doc/fonts/amiri/tools/build.py index 77ca98604e9..72e9993d768 100755 --- a/Master/texmf-dist/doc/fonts/amiri/tools/build.py +++ b/Master/texmf-dist/doc/fonts/amiri/tools/build.py @@ -314,6 +314,11 @@ def mergeLatin(font, italic=False): latinfont = fontforge.open("sources/crimson/sources/%s" %latinfile) latinfont.em = 2048 + # convert to quadratic splines then simplify + latinfont.is_quadratic = True + for glyph in latinfont.glyphs(): + glyph.simplify() + validateGlyphs(latinfont) # to flatten nested refs mainly # collect latin glyphs we want to keep @@ -419,9 +424,10 @@ def mergeLatin(font, italic=False): latinfont.selection.select(name) latinfont.paste() - rtl = latinfont.createChar(-1, name + ".rtl") - rtl.addReference(name, italic) - rtl.useRefsMetrics(name) + if not name + ".ara" in font: + rtl = latinfont.createChar(-1, name + ".rtl") + rtl.addReference(name, italic) + rtl.useRefsMetrics(name) # copy kerning classes kern_lookups = {} diff --git a/Master/texmf-dist/doc/fonts/amiri/tools/runtest.py b/Master/texmf-dist/doc/fonts/amiri/tools/runtest.py index 3b4f24f6e18..d2f6e2c888f 100755 --- a/Master/texmf-dist/doc/fonts/amiri/tools/runtest.py +++ b/Master/texmf-dist/doc/fonts/amiri/tools/runtest.py @@ -5,8 +5,8 @@ import os import csv import subprocess -def runHB(row, font): - args = ["hb-shape", "--no-clusters", "--no-positions", +def runHB(row, font, positions=False): + args = ["hb-shape", "--no-clusters", positions and "--debug" or "--no-positions", "--font-file=%s" %font, "--direction=%s" %row[0], "--script=%s" %row[1], @@ -16,7 +16,7 @@ def runHB(row, font): process = subprocess.Popen(args, stdout=subprocess.PIPE) return process.communicate()[0].strip() -def runTest(test, font): +def runTest(test, font, positions): count = 0 failed = {} passed = [] @@ -25,7 +25,7 @@ def runTest(test, font): row[4] = ('\\' in row[4]) and row[4].decode('unicode-escape') or row[4] text = row[4] reference = row[5] - result = runHB(row, font) + result = runHB(row, font, positions) if reference == result: passed.append(count) else: @@ -45,6 +45,7 @@ def initTest(test, font): if __name__ == '__main__': init = False + positions = False args = sys.argv[1:] if len (sys.argv) > 2 and sys.argv[1] == "-i": @@ -54,6 +55,10 @@ if __name__ == '__main__': for arg in args: testname = arg + ext = os.path.splitext(testname)[1] + if ext == '.ptest': + positions = True + reader = csv.reader(open(testname), delimiter=';') test = [] @@ -70,7 +75,7 @@ if __name__ == '__main__': for style in ('regular', 'bold', 'slanted', 'boldslanted'): fontname = 'amiri-%s.ttf' % style - passed, failed = runTest(test, fontname) + passed, failed = runTest(test, fontname, positions) message = "%s: font '%s', %d passed, %d failed" %(os.path.basename(testname), fontname, len(passed), len(failed)) diff --git a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-bold.ttf b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-bold.ttf Binary files differindex 8234b0c0cf4..8a8751c1ad3 100644 --- a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-bold.ttf +++ b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-bold.ttf diff --git a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-boldslanted.ttf b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-boldslanted.ttf Binary files differindex 3d278090fad..846d02856e6 100644 --- a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-boldslanted.ttf +++ b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-boldslanted.ttf diff --git a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-regular.ttf b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-regular.ttf Binary files differindex 841af5c0224..fd38428d5c2 100644 --- a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-regular.ttf +++ b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-regular.ttf diff --git a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-slanted.ttf b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-slanted.ttf Binary files differindex 2849cc56ad3..b10638f18e0 100644 --- a/Master/texmf-dist/fonts/truetype/public/amiri/amiri-slanted.ttf +++ b/Master/texmf-dist/fonts/truetype/public/amiri/amiri-slanted.ttf |