diff options
author | Karl Berry <karl@freefriends.org> | 2015-09-05 22:01:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-09-05 22:01:10 +0000 |
commit | 412a3bd77bd76014472d93aa65ce8d7b75809ebb (patch) | |
tree | 693f23e713a7e26b3e55b5e946da81d9825f67c4 /Master/texmf-dist/source/xelatex/arabxetex | |
parent | 72347356254cf3c4b88615a8c0fcf696b21e313f (diff) |
arabxetex (4sep15)
git-svn-id: svn://tug.org/texlive/trunk@38299 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex/arabxetex')
5 files changed, 189 insertions, 1645 deletions
diff --git a/Master/texmf-dist/source/xelatex/arabxetex/arabtex-kurdish.maps b/Master/texmf-dist/source/xelatex/arabxetex/arabtex-kurdish.maps deleted file mode 100644 index 75e4da0ebd0..00000000000 --- a/Master/texmf-dist/source/xelatex/arabxetex/arabtex-kurdish.maps +++ /dev/null @@ -1,294 +0,0 @@ -LHSName "ArabTeX-Kurdish" -RHSName "UNICODE" - -Define a U+0061 ;a -Define b U+0062 ;b -Define c U+0063 ;c -Define d U+0064 ;d -Define e U+0065 ;e -Define f U+0066 ;f -Define g U+0067 ;g -Define h U+0068 ;h -Define i U+0069 ;i -Define j U+006A ;j -Define k U+006B ;k -Define l U+006C ;l -Define m U+006D ;m -Define n U+006E ;n -Define o U+006F ;o -Define p U+0070 ;p -Define q U+0071 ;q -Define r U+0072 ;r -Define s U+0073 ;s -Define t U+0074 ;t -Define u U+0075 ;u -Define v U+0076 ;v -Define w U+0077 ;w -Define x U+0078 ;x -Define y U+0079 ;y -Define z U+007A ;z -Define A U+0041 ;A -Define B U+0042 ;B -Define E U+0045 ;E -Define G U+0047 ;G -Define I U+0049 ;I -Define N U+004E ;N -Define O U+004F ;O -Define T U+0054 ;T -Define U U+0055 ;U -Define Y U+0059 ;Y -Define C U+005E ;^ << CARET -Define UL U+005F ;_ << UNDERLINE -Define P U+002E ;. << DOT -Define V U+002C ;, << COMMA (_V_irgule) -Define CO U+003A ;: << COLON -Define Ain U+0060 ;` -Define H U+0027 ;' << HAMZA -Define Q U+0022 ;" << QUOTE -Define Z U+002D ;- << HYPHEN -Define BAR U+007C ;| -Define LLAH U+006C U+006C U+005F U+0061 U+0068 - -pass(Unicode) - -Class [Digits] = (U+0030..U+0039) -Class [ArDigits] = (U+0660..U+0669) - - -; special ligatures -;; 1. Standard ArabTeX input -;; WARNING! there are, alas, two classes of Arabic fonts: -;; a) Those that are Unicode-compliant and include the initial alif in glyph U+FDF2 -;; For these the ligature llah can be accessed by the sequence lam-lam-ha -;; b) Those that do not have the initial alif in U+FDF2 -#0 (a|A) l Z LLAH > U+0627 U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' -#1 (a|A) l Z LLAH > U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' -#0 LLAH > U+FDF2 ;; 'll_ah' > U+FDF2 -#1 LLAH > U+0644 U+0644 U+0647 ;; 'll_ah' -> 'l l h' -;; UPPERCASE mnemonics for various ligatures or special glyphs -;; 2a. custom ArabXeTeX input for ligatures not defined in Unicode -U+004C U+004C U+0048 > U+0644 U+0644 U+0647 ;; 'LLH' -> 'l l h' -U+0046 U+0041 U+004C U+0049 U+004C U+004C U+0041 U+0048 > U+0641 U+064E U+0644 U+0650 U+0644 U+0647 ;; 'FALILLAH' : ligature in Adobe Arabic -;; 2b. Ligatures and glyphs defined in Unicode: -#0 U+0041 U+004C U+004C U+0041 U+0048 > U+0627 U+FDF2 ; 'ALLAH' -#1 U+0041 U+004C U+004C U+0041 U+0048 > U+FDF2 ; 'ALLAH' -#0 U+004C U+004C U+0041 U+0048 > U+FDF2 ; 'LLAH' -#1 U+004C U+004C U+0041 U+0048 > U+0644 U+0644 U+0647 ; 'LLAH' - -U+0053 U+004C U+004D > U+FDFA ; 'SLM' : .sallY al-ll_ah `alayhi wa-sallam -U+0028 U+0028 > U+FD3F ;; '((' : ornate right par -U+0029 U+0029 > U+FD3E ;; '))' : ornate left par -U+0052 U+0049 U+0059 U+0041 U+004C > U+FDFC ;; 'RIYAL' : Saudi currency sign -;; most fonts won't have the following ones: -U+0053 U+0041 U+004C U+004C U+0041 U+0053 U+0054 U+004F U+0050 > U+FDF0 ;; 'SALLASTOP' (.sallY with "ye-barree", Quranic stop sign) -U+0051 U+0041 U+004C U+0041 > U+FDF1 ;; 'QALA' : qalY with ye-barree, Quranic stop sign -U+0041 U+004B U+0042 U+0041 U+0052 > U+FDF3 ;; 'AKBAR' -U+004D U+0055 U+0048 U+0041 U+004D U+004D U+0041 U+0044 > U+FDF4 ;; 'MUHAMMAD' -U+0053 U+0041 U+004C U+0041 U+004D > U+FDF5 ;; 'SALAM' -U+0052 U+0041 U+0053 U+004F ? U+0055 U+004C > U+FDF6 ;; 'RASUL' (also unicode 'RASOUL)' -U+0041 U+004C U+0041 U+0059 U+0048 (U+0049|U+0045) > U+FDF7 ;; 'ALAYHI' (also unicode 'ALAYHE)' -U+0057 U+0041 U+0053 U+0041 U+004C U+004C U+0041 U+004D > U+FDF8 ;; 'WASALLAM' -U+0053 U+0041 U+004C U+004C U+0041 > U+FDF9 ;; 'SALLA' -U+004A U+0041 U+004C U+004C U+0041 > U+FDFB ;; 'JALLA' : "jalla jalAluhu" -U+0042 U+0041 U+0053 U+004D U+0041 U+004C U+0041 > U+FDFD ;; 'BASMALA' : very few fonts have this ligature afaik - -U+005E U+0053 U+004C U+0059 > U+06D6 ;; ^SLY -U+005E U+0051 U+004C U+0059 > U+06D7 ;; ^QLY -U+005E U+004D U+0049 U+004D > U+06D8 ;; ^MIM- -U+005E U+004C U+0041 > U+06D9 ;; ^LA -U+005E U+004A U+0049 U+004D > U+06DA ;; ^JIM -U+005E U+0044 U+004F U+0054 U+0053 > U+06DB ;; ^DOTS -U+005E U+0053 U+0049 U+004E > U+06DC ;; ^SIN -U+0048 U+0049 U+005A U+0042 > U+06DE ;; HIZB -U+0043 U+0049 U+0052 U+0043 U+005A U+0045 U+0052 U+004F > U+06DF ;; CIRCZERO -U+0052 U+0045 U+0043 U+0054 U+005A U+0045 U+0052 U+004F > U+06E0 ;; RECTZERO -U+005E U+004A U+0041 U+005A U+004D > U+06E1 ;; ^JAZM -U+005E U+004D U+0049 U+004D > U+06E2 ;; ^MIM -U+005F U+0053 U+0049 U+004E > U+06E3 ;; _SIN -U+005E U+004D U+0041 U+0044 U+0044 U+0041 > U+06E4 ;; ^MADDA -U+0057 U+0041 U+0057 > U+06E5 ;; WAW -U+0059 U+0045 U+0048 > U+06E6 ;; YEH -U+005E U+0059 U+0045 U+0048 > U+06E7 ;; ^YEH -U+005E U+004E U+0055 U+004E > U+06E8 ;; ^NUN -U+0053 U+0041 U+004A U+0044 U+0041 > U+06E9 ;; SAJDA -U+005F U+0053 U+0054 U+004F U+0050 > U+06EA ;; _STOP -U+005E U+0053 U+0054 U+004F U+0050 > U+06EB ;; ^STOP -U+005E U+0052 U+0053 U+0054 U+004F U+0050 > U+06EC ;; ^RSTOP -U+005F U+004D U+0049 U+004D > U+06ED ;; _MIM - -U+0044 U+004F U+0054 U+0053 > U+061E ;; DOTS (also possible by typing "::") - -;; This is to enclose digits within glyph U+06DD, see http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=ArabicFonts -U+005B U+005B ([Digits]+)=dig U+005D U+005D > U+202E U+06DD @dig U+202C ; [[digits]] - - -; vowels - -E / # _ > U+0626 U+06CE -E > U+06CE -e / # _ > U+0626 U+0647 U+200C ; h always final -e > U+0647 U+200C -i / # _ > U+0626 -Q i > U+0650 -i > ; -Q I / # _ > U+0626 U+064A U+0650 -Q I > U+064A U+0650 -I / # _ > U+0626 U+064A -I > U+064A -(a|A) / # _ > U+0626 U+0627 -(a|A) > U+0627 -(o|O) / # _ > U+0626 U+06C6 -(o|O) > U+06C6 -u / # _ > U+0626 U+0648 -u > U+0648 -U / # _ > U+0626 U+0648 U+0648 -U > U+0648 U+0648 -Ain e > U+0639 U+0647 U+200C - - -P z P z > U+0638 U+0651 ;;SHADDA -P z > U+0638 -C z C z > U+0698 U+0651 ;;SHADDA -C z > U+0698 -V z V z > U+0696 U+0651 ;pashto ;;SHADDA -V z > U+0696 ;pashto -z z > U+0632 U+0651 ;;SHADDA -z > U+0632 -Y Y > U+0649 U+0651 ;;SHADDA -Y > U+0649 -w w > U+0648 U+0651 ;;SHADDA -w > U+0648 -y y > U+064A U+0651 ;;SHADDA -y > U+064A -v v > U+06A4 U+0651 ;;SHADDA -v > U+06A4 -V t V t > U+0679 U+0651 ; urdu ;;SHADDA -V t > U+0679 -UL t UL t > U+062B U+0651 ;;SHADDA -UL t > U+062B -P t P t > U+0637 U+0651 ;;SHADDA -P t > U+0637 -t t > U+062A U+0651 ;;SHADDA -t > U+062A -T T > U+0629 U+0651 ;;SHADDA -T > U+0629 -(C|V) s (C|V) s > U+0634 U+0651 ;;SHADDA -(C|V) s > U+0634 -P s P s > U+0635 U+0651 ;;SHADDA -P s > U+0635 -CO s CO s > U+069B U+0651 -CO s > U+069B ; sin with 3 dots below -s s > U+0633 U+0651 ;;SHADDA -s > U+0633 -;; also missing U+0694 : r with dot below -V r V r > U+0694 U+0651 ;Kurdish ;;SHADDA -V r > U+0694 -C r C r > U+0692 U+0651 ;Kurdish ;;SHADDA ; missing in ArabTeX <<< -C r > U+0692 -P r P r > U+0695 U+0651 ;Kurdish ;;SHADDA -P r > U+0695 -r r > U+0631 U+0651 ;;SHADDA -r > U+0631 -P q P q > U+066F U+0651 ;;SHADDA -P q > U+066F -q q > U+0642 U+0651 ;;SHADDA -q > U+0642 -p p > U+067E U+0651 ;;SHADDA -p > U+067E -C n C n > U+06AD U+0651 ;;SHADDA -C n > U+06AD -P n P n > U+06BA U+0651 ; urdu ;;SHADDA -P n > U+06BA ; -V n V n > U+06BC U+0651 ; Pashto -V n > U+06BC ; Pashto -n n > U+0646 U+0651 ;;SHADDA -n > U+0646 -m m > U+0645 U+0651 ;;SHADDA -m > U+0645 -P l P l > U+06B6 U+0651 ; -P l > U+06B6 ; ADDED <<< -C l C l > U+06B5 U+0651 ;kurdish ;;SHADDA -C l > U+06B5 -l l > U+0644 U+0651 ;;SHADDA -l > U+0644 -P k P k > U+06A9 U+0651 ; pashto urdu ;;SHADDA -P k > U+06A9 -UL k UL k > U+063A U+0651 ;;SHADDA -UL k > U+063A -k k > U+0643 U+0651 ;;SHADDA -k > U+0643 -c c > U+062C U+0651 ;;SHADDA -c > U+062C -x x > U+062E U+0651 ;;SHADDA -x > U+062E -j j > U+0698 U+0651 ;;SHADDA -j > U+0698 -UL h UL h > U+062E U+0651 ;;SHADDA -UL h > U+062E -P h P h > U+062D U+0651 ;;SHADDA -P h > U+062D -V h V h > U+06C1 U+0651 -V h > U+06C1 -h h > U+200C U+06BE U+0651 ;;SHADDA -h > U+200C U+06BE ; h always initial form -V g V g > U+06AC U+0651 ;;SHADDA -V g > U+06AC ; kaf with dot above -P (g|x) P (g|x) > U+063A U+0651 ;;SHADDA -P (g|x) > U+063A -C g C g > U+063A U+0651 ;;SHADDA -C g > U+063A -g g > U+06AF U+0651 ;;SHADDA -g > U+06AF -G G > U+06AB U+0651 ;pashto ;;SHADDA -G > U+06AB ;pashto -P f P f > U+06A1 U+0651 ;;SHADDA -P f > U+06A1 -f f > U+0641 U+0651 ;;SHADDA -f > U+0641 -V d V d > U+0688 U+0651 ;urdu ;;SHADDA -V d > U+0688 ;urdu -C d C d > U+06EE ; not defined in ArabTeX U+0651 ;;SHADDA -C d > U+06EE ; not defined in ArabTeX -UL d UL d > U+0630 U+0651 ;;SHADDA -UL d > U+0630 -P d P d > U+0636 U+0651 ;;SHADDA -P d > U+0636 -d d > U+062F U+0651 ;;SHADDA -d > U+062F -(C|V) c (C|V) c > U+0686 U+0651 ;;SHADDA -(C|V) c > U+0686 -P b P b > U+066E U+0651 ;;SHADDA -P b > U+066E -b b > U+0628 U+0651 ;;SHADDA -b > U+0628 -Ain Ain > U+0639 U+0651 ;;SHADDA -Ain > U+0639 -H > U+0626 -U+002C / [Digits] _ [Digits] > U+002C ; comma in numerical context not an Arabic comma -Z Z / [Digits] _ [Digits] > U+2013 ; two hyphens in numerical context -> endash -(Z|U+005D|U+005B|U+0028|U+0029)=xx / [Digits] _ [Digits] > U+202D @xx U+202C ; hyphen or brackets in numerical context: surrounded by LRO & PDF marks -[Digits] > [ArDigits] -Z Z Z / # _ # > U+2014 -Z Z / # _ # > U+2013 -Z Z > U+0640 -B > U+0640 -Z / # _ > U+200D ; -x > force initial form with "zero-width joiner" -Z / _ # > U+200D ; x- > force final form -U+003C U+003C > U+00BB ;<< -U+003E U+003E > U+00AB ;>> -U+00AB > U+00BB -U+00BB > U+00AB -UL > U+0640 ;_ -U+003F > U+061F ;? -U+003B > U+061B ;; -U+003A U+003A > U+061E ;; '::' ligature 'DOTS' also defined above... -U+002C > U+060C ;, -U+005D / . _ . > U+200D U+005D U+200D ; keep shaping when inserting ...[...]... -U+005B / . _ . > U+200D U+005B U+200D ; ... (but of course this screws up contextual analysis, so quoting of hamzas etc may be necessary) -Q > ; -N > ; -C > ;^ -Z > ;- -BAR > ;| - - diff --git a/Master/texmf-dist/source/xelatex/arabxetex/arabtex-uighur.maps b/Master/texmf-dist/source/xelatex/arabxetex/arabtex-uighur.maps deleted file mode 100644 index 27da35ca0d2..00000000000 --- a/Master/texmf-dist/source/xelatex/arabxetex/arabtex-uighur.maps +++ /dev/null @@ -1,281 +0,0 @@ -LHSName "ArabTeX-Uighur" -RHSName "UNICODE" - -Define a U+0061 ;a -Define b U+0062 ;b -Define c U+0063 ;c -Define d U+0064 ;d -Define e U+0065 ;e -Define f U+0066 ;f -Define g U+0067 ;g -Define h U+0068 ;h -Define i U+0069 ;i -Define j U+006A ;j -Define k U+006B ;k -Define l U+006C ;l -Define m U+006D ;m -Define n U+006E ;n -Define o U+006F ;o -Define p U+0070 ;p -Define q U+0071 ;q -Define r U+0072 ;r -Define s U+0073 ;s -Define t U+0074 ;t -Define u U+0075 ;u -Define v U+0076 ;v -Define w U+0077 ;w -Define x U+0078 ;x -Define y U+0079 ;y -Define z U+007A ;z -Define A U+0041 ;A -Define B U+0042 ;B -Define E U+0045 ;E -Define G U+0047 ;G -Define I U+0049 ;I -Define N U+004E ;N -Define O U+004F ;O -Define T U+0054 ;T -Define U U+0055 ;U -Define Y U+0059 ;Y -Define C U+005E ;^ << CARET -Define UL U+005F ;_ << UNDERLINE -Define P U+002E ;. << DOT -Define V U+002C ;, << COMMA (_V_irgule) -Define CO U+003A ;: << COLON -Define Ain U+0060 ;` -Define H U+0027 ;' << HAMZA -Define Q U+0022 ;" << QUOTE -Define Z U+002D ;- << HYPHEN -Define BAR U+007C ;| -Define LLAH U+006C U+006C U+005F U+0061 U+0068 - -pass(Unicode) - -Class [Digits] = (U+0030..U+0039) -Class [ArDigits] = (U+0660..U+0669) - - -; special ligatures -;; 1. Standard ArabTeX input -;; WARNING! there are, alas, two classes of Arabic fonts: -;; a) Those that are Unicode-compliant and include the initial alif in glyph U+FDF2 -;; For these the ligature llah can be accessed by the sequence lam-lam-ha -;; b) Those that do not have the initial alif in U+FDF2 -#0 (a|A) l Z LLAH > U+0627 U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' -#1 (a|A) l Z LLAH > U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' -#0 LLAH > U+FDF2 ;; 'll_ah' > U+FDF2 -#1 LLAH > U+0644 U+0644 U+0647 ;; 'll_ah' -> 'l l h' -;; UPPERCASE mnemonics for various ligatures or special glyphs -;; 2a. custom ArabXeTeX input for ligatures not defined in Unicode -U+004C U+004C U+0048 > U+0644 U+0644 U+0647 ;; 'LLH' -> 'l l h' -U+0046 U+0041 U+004C U+0049 U+004C U+004C U+0041 U+0048 > U+0641 U+064E U+0644 U+0650 U+0644 U+0647 ;; 'FALILLAH' : ligature in Adobe Arabic -;; 2b. Ligatures and glyphs defined in Unicode: -#0 U+0041 U+004C U+004C U+0041 U+0048 > U+0627 U+FDF2 ; 'ALLAH' -#1 U+0041 U+004C U+004C U+0041 U+0048 > U+FDF2 ; 'ALLAH' -#0 U+004C U+004C U+0041 U+0048 > U+FDF2 ; 'LLAH' -#1 U+004C U+004C U+0041 U+0048 > U+0644 U+0644 U+0647 ; 'LLAH' - -U+0053 U+004C U+004D > U+FDFA ; 'SLM' : .sallY al-ll_ah `alayhi wa-sallam -U+0028 U+0028 > U+FD3F ;; '((' : ornate right par -U+0029 U+0029 > U+FD3E ;; '))' : ornate left par -U+0052 U+0049 U+0059 U+0041 U+004C > U+FDFC ;; 'RIYAL' : Saudi currency sign -;; most fonts won't have the following ones: -U+0053 U+0041 U+004C U+004C U+0041 U+0053 U+0054 U+004F U+0050 > U+FDF0 ;; 'SALLASTOP' (.sallY with "ye-barree", Quranic stop sign) -U+0051 U+0041 U+004C U+0041 > U+FDF1 ;; 'QALA' : qalY with ye-barree, Quranic stop sign -U+0041 U+004B U+0042 U+0041 U+0052 > U+FDF3 ;; 'AKBAR' -U+004D U+0055 U+0048 U+0041 U+004D U+004D U+0041 U+0044 > U+FDF4 ;; 'MUHAMMAD' -U+0053 U+0041 U+004C U+0041 U+004D > U+FDF5 ;; 'SALAM' -U+0052 U+0041 U+0053 U+004F ? U+0055 U+004C > U+FDF6 ;; 'RASUL' (also unicode 'RASOUL)' -U+0041 U+004C U+0041 U+0059 U+0048 (U+0049|U+0045) > U+FDF7 ;; 'ALAYHI' (also unicode 'ALAYHE)' -U+0057 U+0041 U+0053 U+0041 U+004C U+004C U+0041 U+004D > U+FDF8 ;; 'WASALLAM' -U+0053 U+0041 U+004C U+004C U+0041 > U+FDF9 ;; 'SALLA' -U+004A U+0041 U+004C U+004C U+0041 > U+FDFB ;; 'JALLA' : "jalla jalAluhu" -U+0042 U+0041 U+0053 U+004D U+0041 U+004C U+0041 > U+FDFD ;; 'BASMALA' : very few fonts have this ligature afaik - -U+005E U+0053 U+004C U+0059 > U+06D6 ;; ^SLY -U+005E U+0051 U+004C U+0059 > U+06D7 ;; ^QLY -U+005E U+004D U+0049 U+004D > U+06D8 ;; ^MIM -U+005E U+004C U+0041 > U+06D9 ;; ^LA -U+005E U+004A U+0049 U+004D > U+06DA ;; ^JIM -U+005E U+0044 U+004F U+0054 U+0053 > U+06DB ;; ^DOTS -U+005E U+0053 U+0049 U+004E > U+06DC ;; ^SIN -U+0048 U+0049 U+005A U+0042 > U+06DE ;; HIZB -U+0043 U+0049 U+0052 U+0043 U+005A U+0045 U+0052 U+004F > U+06DF ;; CIRCZERO -U+0052 U+0045 U+0043 U+0054 U+005A U+0045 U+0052 U+004F > U+06E0 ;; RECTZERO -U+0053 U+0041 U+004A U+0044 U+0041 > U+06E9 ;; SAJDA - -U+0044 U+004F U+0054 U+0053 > U+061E ;; DOTS (also possible by typing "::") - -;; This is to enclose digits within glyph U+06DD, see http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=ArabicFonts -U+005B U+005B ([Digits]+)=dig U+005D U+005D > U+202E U+06DD @dig U+202C ; [[digits]] - - -; vowels - -a / # _ > U+0626 U+0627 -a > U+0627 -(CO a|U+00E4) / # _ > U+0626 U+0647 U+200C -(CO a|U+00E4) > U+0647 U+200C -o / # _ > U+0626 U+0648 ; -o > U+0648 ; -(CO o|U+00F6) / # _ > U+0626 U+06C6 -(CO o|U+00F6) > U+06C6 -i / # _ # > U+0626 U+0649 -i / # _ > U+0626 U+066E -i / _ # > U+0649 -i > U+066E -e / # _ > U+0626 U+06D0 -e > U+06D0 -u / # _ > U+0626 U+06C7 ; -u > U+06C7 ; -(CO u|U+00FC) / # _ > U+0626 U+06C8 ; -(CO u|U+00FC) > U+06C8 ; -l Q a > U+0644 U+064E U+0627 ; -l a > U+0644 U+0627 ; - -P z P z > U+0638 U+0651 ;;SHADDA -P z > U+0638 -C z C z > U+0698 U+0651 ;;SHADDA -C z > U+0698 -V z V z > U+0696 U+0651 ;pashto ;;SHADDA -V z > U+0696 ;pashto -z z > U+0632 U+0651 ;;SHADDA -z > U+0632 -Y Y > U+0649 U+0651 ;;SHADDA -Y > U+0649 -w w > U+06CB U+0651 ;;SHADDA -w > U+06CB -y y > U+064A U+0651 ;;SHADDA -y > U+064A -v v > U+06A4 U+0651 ;;SHADDA -v > U+06A4 -V t V t > U+0679 U+0651 ; urdu ;;SHADDA -V t > U+0679 -UL t UL t > U+062B U+0651 ;;SHADDA -UL t > U+062B -P t P t > U+0637 U+0651 ;;SHADDA -P t > U+0637 -t t > U+062A U+0651 ;;SHADDA -t > U+062A -T T > U+0629 U+0651 ;;SHADDA -T > U+0629 -C s C s > U+0634 U+0651 ;;SHADDA -C s > U+0634 -P s P s > U+0635 U+0651 ;;SHADDA -P s > U+0635 -V s V s > U+069A U+0651 ;Pashto ;;SHADDA -V s > U+069A ;Pashto -CO s > U+069B ; sin with 3 dots below -s s > U+0633 U+0651 ;;SHADDA -s > U+0633 -C r C r > U+0692 U+0651 ;Kurdish ;;SHADDA ; missing in ArabTeX <<< -C r > U+0692 -P r P r > U+0695 U+0651 ;Kurdish ;;SHADDA -P r > U+0695 -V r V r > U+0691 U+0651 ;Urdu ;;SHADDA -V r > U+0691 ;Urdu -r r > U+0631 U+0651 ;;SHADDA -r > U+0631 -P q P q > U+066F U+0651 ;;SHADDA -P q > U+066F -q q > U+0642 U+0651 ;;SHADDA -q > U+0642 -p p > U+067E U+0651 ;;SHADDA -p > U+067E -C n C n > U+06AD U+0651 ;;SHADDA -C n > U+06AD -P n P n > U+06BA U+0651 ; urdu ;;SHADDA -P n > U+06BA ; -V n V n > U+06BC U+0651 ; Pashto -V n > U+06BC ; Pashto -n n > U+0646 U+0651 ;;SHADDA -n > U+0646 -m m > U+0645 U+0651 ;;SHADDA -m > U+0645 -C l C l > U+06B5 U+0651 ;kurdish ;;SHADDA -C l > U+06B5 -l l > U+0644 U+0651 ;;SHADDA -l > U+0644 -P k P k > U+06A9 U+0651 ; pashto urdu ;;SHADDA -P k > U+06A9 -UL k UL k > U+063A U+0651 ;;SHADDA -UL k > U+063A -k k > U+0643 U+0651 ;;SHADDA -k > U+0643 -j j > U+062C U+0651 ;;SHADDA -j > U+062C -x x > U+062E U+0651 ;;SHADDA -x > U+062E -UL h UL h > U+062E U+0651 ;;SHADDA -UL h > U+062E -P h P h > U+062D U+0651 ;;SHADDA -P h > U+062D -V h V h > U+06C1 U+0651 -V h > U+06C1 -h h > U+0647 U+0651 ;;SHADDA -h > U+0647 -V g V g > U+06AC U+0651 ;;SHADDA -V g > U+06AC ; kaf with dot above -P g P g > U+063A U+0651 ;;SHADDA -P g > U+063A -C g C g > U+063A U+0651 ;;SHADDA -C g > U+063A -g g > U+06AF U+0651 ;;SHADDA -g > U+06AF -G G > U+06AB U+0651 ;pashto ;;SHADDA -G > U+06AB ;pashto -P f P f > U+06A1 U+0651 ;;SHADDA -P f > U+06A1 -f f > U+0641 U+0651 ;;SHADDA -f > U+0641 -V d V d > U+0688 U+0651 ;urdu ;;SHADDA -V d > U+0688 ;urdu -C d C d > U+06EE ; not defined in ArabTeX U+0651 ;;SHADDA -C d > U+06EE ; not defined in ArabTeX -UL d UL d > U+0630 U+0651 ;;SHADDA -UL d > U+0630 -P d P d > U+0636 U+0651 ;;SHADDA -P d > U+0636 -d d > U+062F U+0651 ;;SHADDA -d > U+062F -V c V c > U+0685 U+0651 ;pashto ;;SHADDA -V c > U+0685 -C c C c > U+0686 U+0651 ;;SHADDA -C c > U+0686 -c c > U+0681 U+0651 -c > U+0681 ; ح with hamza above -P b P b > U+066E U+0651 ;;SHADDA -P b > U+066E -b b > U+0628 U+0651 ;;SHADDA -b > U+0628 -Ain Ain > U+0639 U+0651 ;;SHADDA -Ain > U+0639 -H > U+0626 -U+002C / [Digits] _ [Digits] > U+002C ; comma in numerical context not an Arabic comma -Z Z / [Digits] _ [Digits] > U+2013 ; two hyphens in numerical context -> endash -(Z|U+005D|U+005B|U+0028|U+0029)=xx / [Digits] _ [Digits] > U+202D @xx U+202C ; hyphen or brackets in numerical context: surrounded by LRO & PDF marks -[Digits] > [ArDigits] -Z Z Z / # _ # > U+2014 -Z Z / # _ # > U+2013 -Z Z > U+0640 -B > U+0640 -Z / # _ > U+200D ; -x > force initial form with "zero-width joiner" -Z / _ # > U+200D ; x- > force final form -U+003C U+003C > U+00BB ;<< -U+003E U+003E > U+00AB ;>> -U+00AB > U+00BB -U+00BB > U+00AB -UL > U+0640 ;_ -U+003F > U+061F ;? -U+003B > U+061B ;; -U+003A U+003A > U+061E ;; '::' ligature 'DOTS' also defined above... -U+002C > U+060C ;, -U+005D / . _ . > U+200D U+005D U+200D ; keep shaping when inserting ...[...]... -U+005B / . _ . > U+200D U+005B U+200D ; ... (but of course this screws up contextual analysis, so quoting of hamzas etc may be necessary) -Q > ; -N > ; -C > ;^ -Z > ;- -BAR > ;| - - diff --git a/Master/texmf-dist/source/xelatex/arabxetex/arabtex.maps b/Master/texmf-dist/source/xelatex/arabxetex/arabtex.maps index cc7dec079ba..ffbbb54846a 100644 --- a/Master/texmf-dist/source/xelatex/arabxetex/arabtex.maps +++ b/Master/texmf-dist/source/xelatex/arabxetex/arabtex.maps @@ -114,7 +114,7 @@ Define Q U+0022 ;" << QUOTE Define Z U+002D ;- << HYPHEN Define BAR U+007C ;| Define AN U+0061 U+004E ; aN -Define LLAH U+006C U+006C U+005F U+0061 U+0068 +Define LLAH U+006C U+006C U+005F U+0061 U+0068 ; ll_ah ;Define NUL U+00A6; Define Ha U+0623 Define Hi U+0625 @@ -151,24 +151,16 @@ Define ENDZ (#|[BRACKETS]|[PUNCT] U+0020|[PUNCT] #|Z) ; special ligatures ;; 1. Standard ArabTeX input -;; WARNING! there are, alas, two classes of Arabic fonts: -;; a) Those that are Unicode-compliant and include the initial alif in glyph U+FDF2 -;; For these the ligature llah can be accessed by the sequence lam-lam-ha -;; b) Those that do not have the initial alif in U+FDF2 +;; FDF2 is just used as temporary holder, and is converted back to ligature lam lam hah later (to be taken care of by the font) +#Af Z (a|A) l Z LLAH > U+0671 U+FDF2 ;; '-al-ll_ah' or '-Al-ll_ah' ;; The BAR is used in the DMG transliteration to suppress the initial A -#0 (a|A) BAR? l Z LLAH > U+0627 U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' -#1 (a|A) BAR? l Z LLAH > U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' -#0 LLAH > U+FDF2 ;; 'll_ah' > U+FDF2 -#1 LLAH > U+0644 U+0644 U+0647 ;; 'll_ah' -> 'l l h' +(a|A) BAR? l Z LLAH > U+0627 U+FDF2 ;; 'al-ll_ah' or 'Al-ll_ah' +LLAH > U+FDF2 ;; 'll_ah' -> 'l l h' ;; UPPERCASE mnemonics for various ligatures or special glyphs -;; 2a. custom ArabXeTeX input for ligatures not defined in Unicode -U+004C U+004C U+0048 > U+0644 U+0644 U+0647 ;; 'LLH' -> 'l l h' -U+0046 U+0041 U+004C U+0049 U+004C U+004C U+0041 U+0048 > U+0641 U+064E U+0644 U+0650 U+0644 U+0647 ;; 'FALILLAH' : ligature in Adobe Arabic -;; 2b. Ligatures and glyphs defined in Unicode: -#0 U+0041 U+004C U+004C U+0041 U+0048 > U+0627 U+FDF2 ; 'ALLAH' -#1 U+0041 U+004C U+004C U+0041 U+0048 > U+FDF2 ; 'ALLAH' -#0 U+004C U+004C U+0041 U+0048 > U+FDF2 ; 'LLAH' -#1 U+004C U+004C U+0041 U+0048 > U+0644 U+0644 U+0647 ; 'LLAH' +U+004C U+004C U+0048 > U+FDF2 ;; 'LLH' -> 'l l h' +U+0046 U+0041 U+004C U+0049 U+004C U+004C U+0041 U+0048 > U+0641 U+064E U+0644 U+0650 U+0644 U+0647 ;; 'FALILLAH' +U+0041 U+004C U+004C U+0041 U+0048 > U+0627 U+0644 U+0644 U+0647 ; 'ALLAH' +U+004C U+004C U+0041 U+0048 > U+0644 U+0644 U+0647 ; 'LLAH' U+0053 U+004C U+004D > U+FDFA ; 'SLM' : .sallY al-ll_ah `alayhi wa-sallam U+0028 U+0028 > U+FD3F ;; '((' : ornate right par @@ -213,8 +205,8 @@ U+005F U+004D U+0049 U+004D > U+06ED ;; _MIM U+0044 U+004F U+0054 U+0053 > U+061E ;; DOTS (also possible by typing "::") -;; This is to enclose digits within glyph U+06DD, see http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=ArabicFonts -U+005B U+005B ([Digits]+)=dig U+005D U+005D > U+202E U+06DD @dig U+202C ; [[digits]] +;; This is to enclose digits within glyph U+06DD +U+005B U+005B ([Digits]+)=dig U+005D U+005D > U+06DD @dig ; [[digits]] ; vowels @@ -715,13 +707,13 @@ UL a > U+0670 #n AN / (A H|Ha) _ > ; #v Q AN / (A H|Ha) _ > ; #v AN / (A H|Ha) _ > U+064B -#n Q AN > U+0627 U+064B +#n Q AN > U+064B U+0627 #n AN > U+0627 #n Q a > U+064E #n Q A > U+064E U+0627 #n A > U+0627 #v Q AN > U+0627 -#v AN > U+0627 U+064B +#v AN > U+064B U+0627 #v Q a > #v a > U+064E #v Q A > U+0627 @@ -781,5 +773,6 @@ BAR > ;| #f U+0627 / # _ U+0644 > U+0627 U+064E ; otherwise initial alif takes fatha #f [CONS]=k1 / _ ([CONS]|#) > @k1 U+0652 ; consonant + (consonant or final) #f ;; [CONS]=k1 / _ # > @k1 U+0652 ; final consonant +U+FDF2 > U+0644 U+0644 U+0647 ; #f Q > ; #v Z > ; diff --git a/Master/texmf-dist/source/xelatex/arabxetex/arabxetex.dtx b/Master/texmf-dist/source/xelatex/arabxetex/arabxetex.dtx index 513dc3081cd..dbcaca303db 100644 --- a/Master/texmf-dist/source/xelatex/arabxetex/arabxetex.dtx +++ b/Master/texmf-dist/source/xelatex/arabxetex/arabxetex.dtx @@ -2,7 +2,7 @@ % %!TEX encoding = UTF-8 Unicode % -% Copyright © 2007-2010 by François Charette <firmicus at gmx dot net> +% Copyright © 2007-2015 by François Charette <firmicus04 at gmail dot com> % % Distributable under the LaTeX Project Public License, % version 1.3c or higher (your choice). The latest version of @@ -24,14 +24,14 @@ ____________________________ The arabxetex package - © 2007–2010 François Charette + © 2007–2015 François Charette License information appended \endpreamble \postamble -Copyright © 2007–2010 by François Charette <firmicus at gmx dot net> +Copyright © 2007–2015 by François Charette <firmicus04 at gmail dot com> Distributable under the LaTeX Project Public License, version 1.3c or higher (your choice). The latest version of @@ -69,7 +69,7 @@ as well as an extensive collection of TECKit files % %<*readme> -------------------------- -THE ARABXETEX PACKAGE v1.1.4 +THE ARABXETEX PACKAGE v1.2.1 This package provides a convenient ArabTeX-like user-interface for typesetting languages using the Arabic script in XeLaTeX, with flexible access to font @@ -84,7 +84,7 @@ The TECkit fontmapping files (*.map and *.tec) should be copied to ------------------------- François Charette -© 2007–2010 +© 2007–2015 %</readme> % % \fi @@ -94,7 +94,7 @@ François Charette % % \GetFileInfo{\jobname.sty} % -% \title{~\hfil {\color{IslamicGreen}\arabxetex \hfil \arabxetexAr}\hfil~\\ +% \title{~\hfil {\color{IslamicGreen}\arabxetex}\hfil~\\ % An \arabtex-like interface for typesetting languages in Arabic script with \XeLaTeX} % \author{François Charette} % \date{\filedate \qquad \fileversion} @@ -119,7 +119,10 @@ François Charette % % \section{Introduction} % -% Since the early 1990s, \TeX\ users who wished to typeset in Arabic script +% +% Since the early 1990s,\footnote{ ^^A +% This introduction reflects the state of things in 2007 when \arabxetex\ was initially released.} +% \TeX\ users who wished to typeset in Arabic script % have relied on Klaus Lagally's excellent \arabtex\ system.\footnote{ ^^A % \url{ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm}. % Version 2.00 was released in April 1992 and version 3.00 in November of @@ -144,18 +147,6 @@ François Charette % (It is only fair to state, however, that Prof.~Lagally has been extremely % responsive to ideas, suggestions and wishes by users in the past). % -% The introduction of Omega in \ca 1996, a \TeX\ extension for multilingual, -% multidirectional typesetting based on Unicode, raised of course many hopes, but -% these have by now completely dissipated since the project has been moribund for -% several years and is now probably defunct. Aleph, a more humble attempt to reach -% some of the goals set by Omega, has been equally unsuccessful.\footnote{ ^^A -% Based on Omega 1.15 and \eTeX, Aleph attempted to provide a usable and -% stable branch. See -% \url{http://www.tug.org/TUGboat/Articles/tb25-1/bilotta.pdf}. -% Unfortunately the project is currently dormant.} -% Both engines suffered of numerous bugs and never reached a stable and usable -% state, \textit{at least according to my own subjective experience}. -% % After completion of the initial alpha version of \arabxetex, I came across the % package \pkg{Arabi} by Youssef Jabri on CTAN.\footnote{ ^^A % \url{http://www.ctan.org/tex-archive/language/arabic/arabi/}} @@ -166,10 +157,9 @@ François Charette % % With the availability of Jonathan Kew's \XeTeX, users can now rely on a very % up-to-date typesetting engine based on the integration of \eTeX, Unicode, and -% modern font-rendering technology (AAT and ICU), without the complex hassle of +% modern font-rendering technology, without the complex hassle of % font installation.\footnote{ ^^A -% \url{http://scripts.sil.org/xetex}. \XeTeX\ was originally developed -% for the Mac~OS~X platform, but Linux and WIN32 ports are now available.} +% \url{http://xetex.sourceforge.net}.} % % \section{Description} % @@ -184,12 +174,7 @@ François Charette % \arabxetex\ introduces several additions, and a few minor modifications, % to \arabtex's conventions. These are documented in tabular form in % Section~\ref{conventiontable}. \arabxetex\ relies on the package \pkg{bidi} -% which contains the macros necessary for bidirectional typesetting -- -% using \eTeX's \cmd{\beginR} \ldots \cmd{\endR}, \cmd{\beginL} \ldots \cmd{\endL} -% primitives. The main code in \pkg{bidi.sty} is essentially borrowed, -% with minor adaptations, from the file \pkg{rlbabel.def} in the Babel -% distribution (where it serves for typesetting Hebrew). Some improvements -% in the beta version were inspired by Youssef Jabri's \pkg{Arabi}. +% which contains the macros necessary for bidirectional typesetting. % % Languages supported at present are the same as in \arabtex, namely: Arabic, % Maghribi Arabic, Farsi (Persian), Urdu, Sindhi, Kashmiri, Ottoman Turkish, @@ -206,14 +191,14 @@ François Charette % can use keymaps or keyboard utilities to achieve the same, so why bother? % An expert in Arabic mathematical linguistic and author of the Perl module % \pkg{Encode::Arabic::ArabTeX}, Otakar Srmž, has this to say about the -% virtues of \arabtex\ \ASCII\ encoding: +% virtues of \arabtex\ \ASCII\ encoding:\footnote{ ^^A +% \url{http://search.cpan.org/~smrz/Encode-Arabic/lib/Encode/Arabic/ArabTeX.pm\#DESCRIPTION}. +% See also \url{http://ufal.mff.cuni.cz/~smrz/ICFP2006/icfp-encode.pdf}.} % \begin{quote} % “ArabTeX is an excellent extension to TeX/LaTeX designed for % typesetting the right-to-left scripts of the Orient. It comes up with % very intuitive and comprehensible lower \ASCII\ transliterations, the -% expressive power of which is even better than that of the scripts.”^^A\footnote{ % -% [Source: \url{http://search.cpan.org/~smrz/Encode-Arabic-1.16/ArabTeX/ArabTeX.pm#DESCRIPTION}. -% See also \url{http://ufal.mff.cuni.cz/~smrz/ICFP2006/icfp-encode.pdf}]^^A} +% expressive power of which is even better than that of the scripts.” % \end{quote} % There are indeed several advantages in using \arabtex\ input convention for % typesetting in the Arabic script, besides ease and legibility. First it is @@ -233,7 +218,7 @@ François Charette % \DescribeMacro{\textarab}\DescribeMacro{\textfarsi}\marginpar{\raggedleft\small etc.} % where ¦<language>¦ is one of the following (alternative names are given in brackets): % \begin{compactitem}[\textbf{·}] -% \item ¦arab¦ (¦Arabic¦),\footnote{ ^^A +% \item ¦arab¦ (¦arabic¦),\footnote{ ^^A % Since the command \cmd\arabic\ is already defined in \LaTeX, we chose % the environment ¦arab¦ and the command \cmd\textarab\ instead, % but the equivalent environment ¦Arabic¦ and the command @@ -276,11 +261,7 @@ François Charette % % Left-to-right insertions in Latin script within an Arabic environment % can be made by means of the \DescribeMacro{\textLR} -% command \cmd\textLR¦{…}¦.\new{1.1.2}\footnote{ % -% In version 1.0 this was called \cmd\textlatin, which was renamed \cmd\textroman -% in version 1.1. But the former conflicted with \pkg{Babel}, -% and the latter with \pkg{Beamer}. Hopefully \cmd\textLR\ -% won't be as short-lived!} +% command \cmd\textLR¦{…}¦. % Emphasis in Arabic is traditionally indicated by % overlining the text, and this can be achieved with the command % \DescribeMacro{\aemph} @@ -316,15 +297,17 @@ François Charette % \newfontfamily\arabicfont[Script=Arabic]{<fontname>} % \end{Verbatim} % If not, then a warning is issued and \arabxetex\ will attempt to load -% the font \textbf{Scheherazade} (designed by Bob Halissy and -% Jonathan Kew of SIL International).\footnote{ -% Available from \url{http://scripts.sil.org/ArabicFonts}. For +% the font \textbf{Amiri} (by Khaled Hosny).\footnote{ +% Available from \url{http://www.amirifont.org}. +% Prior to version 1.2.0, the default font was \textbf{Scheherazade} (designed by Bob Halissy and +% Jonathan Kew of SIL International), +% available from \url{http://scripts.sil.org/ArabicFonts}. For % typesetting Sindhi and Kashmiri, the font \textbf{Lateef}, available at % the same place, is also recommended.} -% You can also define specific fonts \new{1.1} for all other languages, by similarly defining +% You can also define specific fonts for all other languages, by similarly defining % ¦\<language>font¦, such as for example: % \begin{Verbatim}[gobble=2,fontsize=\normalsize] -% \newfontfamily\urdufont[Script=Arabic]{Nafees Pakistani Naskh} +% \newfontfamily\urdufont[Script=Arabic]{Hussaini Nastaleeq} % \end{Verbatim} % So for example if the \cmd\texturdu\ command or the ¦urdu¦ environment is used, % \arabxetex\ will use the \cmd\urdufont\ if it is defined, @@ -350,7 +333,7 @@ François Charette % ^say'uN, ^say'iN, ^say'aN, sA'ala, mas'alaTuN, saw'aTuN, _ha.tI'aTuN, % jA'a, ridA'uN, ridA'aN, jI'a, radI'iN, sU'uN, .daw'uN, qay'iN, .zim'aN % , yatasA'alUna, 'a`dA'akum, 'a`dA'ikum, 'a`dA'ukum maqrU'aT, mU'ibAt, -% taw'am, yas'alu, 'a.sdiq^A$\;$'uh_u, ya^g^I'u, s^U'ila +% taw'am, yas'alu, 'a.sdiq^A'uh_u, ya^g^I'u, s^U'ila % \end{arab} % \end{Verbatim} % @@ -361,7 +344,7 @@ François Charette % ^say'uN, ^say'iN, ^say'aN, sA'ala, mas'alaTuN, saw'aTuN, _ha.tI'aTuN, % jA'a, ridA'uN, ridA'aN, jI'a, radI'iN, sU'uN, .daw'uN, qay'iN, .zim'aN % , yatasA'alUna, 'a`dA'akum, 'a`dA'ikum, 'a`dA'ukum maqrU'aT, mU'ibAt, -% taw'am, yas'alu, 'a.sdiq^A$\;$'uh_u, ya^g^I'u, s^U'ila +% taw'am, yas'alu, 'a.sdiq^A'uh_u, ya^g^I'u, s^U'ila % \end{arab} % % \subsubsection{Special orthographies} @@ -386,7 +369,7 @@ François Charette % \bigskip % % \textbf{NB}: For the time being only \textit{miʾa} is supported, but more irregular -% constructs should be added in later versions. +% constructs may be added in later versions. % % \subsubsection{Typesetting the Holy Qurʾān} % @@ -395,62 +378,64 @@ François Charette % typesetters. Nevertheless, with Open Type fonts that cover the full Unicode range % for the Arabic script, it is possible to achieve pretty decent results. % The following examples represent my attempt to reproduce, with the font -% Scheherazade, the various typographic features of a typical printed edition -% from Saudi Arabia. +% Amiri, the various typographic features of a typical printed edition (disregarding those that cannot be achieved +% by means of Unicode, such as putting the \textit{hamza} directly over the baseline).\footnote{ ^^A +% In the previous version of the manual, I attempted to mimic that behaviour with a \TeX\ macro \cmd\hamzaB, which happened to work more or less well with the font Scheherazade. With Amiri it does not and I have reverted to standard spellings.} % -% In printed Qurʾāns, one frequently encounters typographical oddities that are -% not taken into account by Unicode, such as the \textit{hamza} placed directly over -% the baseline instead as over the \textit{alif}. -% But with a \TeX\ macro it is possible to emulate this rather well: +% ^^AIn printed Qurʾāns, one frequently encounters typographical oddities that are +% ^^Anot taken into account by Unicode, such as the \textit{hamza} placed directly over +% ^^Athe baseline instead as over the \textit{alif}. +% ^^ABut with a \TeX\ macro it is possible to emulate this rather well: % % \begin{Verbatim}[gobble=2,fontsize=\small] -% \newcommand{\hamzaB}{\char"200D\char"0640\raise-.95ex\hbox{\char"0654}\char"200D} -% % \begin{arab}[fullvoc] -% mina 'l-qur'Ani 'l-karImi, sUraTu 'l-ssajdaTi 15--16: +% sUraTu 'l-ssajdaTi, 15--16: % -% 'innamA yu'minu bi-\hamzaB a|"Ay___atinA 'lla_dIna 'i_dA _dukkirUA bihA +% 'innamA yu'minu bi-'AyAtinA 'lla_dIna 'i_dA _dukkirUA bihA % _harrUA sujjadaN wa-sabba.hUA bi-.hamdi rabbihim wa-hum lA yastakbirUna % SAJDA [[15]] tatajAfY_a junUbuhum `ani 'l-ma.dAji`i yad`Una rabbahum % _hawfaN wa-.tama`aN wa-mimmA razaqn_ahum yunfiqUna [[16]] % \end{arab} % % \begin{arab}[fullvoc] -% sUraTu 'l-baqaraTi 71--72: +% sUraTu 'l-baqaraTi, 71--72: % % qAla 'innahu, yaqUlu 'innahA baqaraTuN llA _dalUluN tu_tIru 'l-'ar.da wa-lA -% tasq.I 'l-.har_ta musallamaTuN llA ^siyaTa fIhA|^JIM qAluW" 'l-\hamzaB a___ana +% tasq.I 'l-.har_ta musallamaTuN llA ^siyaTa fIhA|^JIM qAluW" 'l-'Ana % ji'ta bi-'l-.haqqi|^JIM fa_daba.hUhA wa-mA kAdduW" yaf`alUna [[71]] wa-'i_d -% qataltum nafsaN fa-udda$\,$_ara|'|_i"tum fIhA|^SLY wa-al-ll_ahu mu_hrijuN mmA +% qataltum nafsaN fa-udda_ara|'|_i"tum fIhA|^SLY wa-al-ll_ahu mu_hrijuN mmA % kun"tum taktumUna [[72]] % \end{arab} % \end{Verbatim} -% +% ^^A\let\stdarabicfont\arabicfont +% ^^A\let\arabicfont\amiriquran % \begin{arab}[fullvoc] -% mina 'l-qur'Ani 'l-karImi, sUraTu 'l-ssajdaTi 15--16: +% sUraTu 'l-ssajdaTi, 15--16: % -% 'innamA yu'minu bi-\hamzaB a|"Ay___atinA 'lla_dIna 'i_dA _dukkirUA bihA _harrUA -% sujjadaN wa-sabba.hUA bi-.hamdi rabbihim wa-hum lA yastakbirUna SAJDA [[15]] -% tatajAfY_a junUbuhum `ani 'l-ma.dAji`i yad`Una rabbahum _hawfaN wa-.tama`aN -% wa-mimmA razaqn_ahum yunfiqUna [[16]] +% 'innamA yu'minu bi-'AyAtinA 'lla_dIna 'i_dA _dukkirUA bihA +% _harrUA sujjadaN wa-sabba.hUA bi-.hamdi rabbihim wa-hum lA yastakbirUna +% SAJDA [[15]] tatajAfY_a junUbuhum `ani 'l-ma.dAji`i yad`Una rabbahum +% _hawfaN wa-.tama`aN wa-mimmA razaqn_ahum yunfiqUna [[16]] % \end{arab} -% +% +% \bigskip % \begin{arab}[fullvoc] -% sUraTu 'l-baqaraTi 71--72: +% sUraTu 'l-baqaraTi, 71--72: % % qAla 'innahu, yaqUlu 'innahA baqaraTuN llA _dalUluN tu_tIru 'l-'ar.da wa-lA -% tasq.I 'l-.har_ta musallamaTuN llA ^siyaTa fIhA|^JIM qAluW" 'l-\hamzaB a___ana +% tasq.I 'l-.har_ta musallamaTuN llA ^siyaTa fIhA|^JIM qAluW" 'l-'Ana % ji'ta bi-'l-.haqqi|^JIM fa_daba.hUhA wa-mA kAdduW" yaf`alUna [[71]] wa-'i_d -% qataltum nafsaN fa-udda$\,$_ara|'|_i"tum fIhA|^SLY wa-al-ll_ahu mu_hrijuN mmA +% qataltum nafsaN fa-udda_ara|'|_i"tum fIhA|^SLY wa-al-ll_ahu mu_hrijuN mmA % kun"tum taktumUna [[72]] % \end{arab} -% +% ^^A\let\arabicfont\stdarabicfont % \subsubsection{Farsi} % % These are some of the Persian examples in the \arabtex\ documentation, -% typeset with the font Simple Farsi Bold: +% typeset with the font IranNastaliq:\footnote{ ^^A +% \url{http://www.scict.ir/portal/File/ShowFile.aspx?ID=29bc4b98-bfd0-428d-b56b-63e36de8c9b5}} % \begin{Verbatim}[gobble=2,fontsize=\normalsize] -% \begin{farsi}[voc] +% \begin{farsi}[novoc] % _hwAb, xwI^s, _hwod, ^ceH, naH, yal_aH, _hAneH, _hAneHhA, _hAneH-hA, % ketAb-e, U, rAh-e, t_U, nAmeH-i, man, bInI-e, An, mard, pA-i, In, % zan, bAzU-i, In, zan, dAr-_i, man, _hU-_i, t_U, nAmeH-_i, sormeH-_i, @@ -461,7 +446,7 @@ François Charette % \end{farsi} % \end{Verbatim} % -% \begin{farsi}[voc] +% \begin{farsi}[novoc] % _hwAb, xwI^s, _hwod, ^ceH, naH, yal_aH, _hAneH, _hAneHhA, _hAneH-hA, % ketAb-e, U, rAh-e, t_U, nAmeH-i, man, bInI-e, An, mard, pA-i, In, % zan, bAzU-i, In, zan, dAr-_i, man, _hU-_i, t_U, nAmeH-_i, sormeH-_i, @@ -473,8 +458,9 @@ François Charette % % \subsubsection{Urdu} % -% An Urdu example, typeset with Nafees Pakistani Naskh:\footnote{ ^^A -% The example is borrowed from +% An Urdu example, typeset with Hussaini Nastaleeq:\footnote{ ^^A +% \url{https://github.com/khaledhosny/hussaini-nastaleeq}. +% The example is borrowed from % \url{http://tabish.freeshell.org/u-trans/urducode.html}} % \begin{Verbatim}[gobble=2,fontsize=\normalsize] % \begin{urdu}[novoc] @@ -501,127 +487,12 @@ François Charette % \renewcommand{\urdufont}{\arabicfont} % \renewcommand{\farsifont}{\arabicfont} % -% \subsection{Special considerations} -% \parindenton -% \subsubsection{The name of God} \label{allahliga} -% -% The glyph \textsf{FDF2}, defined as ‘\textsc{arabic ligature allah isolated form}’ -% by the Unicode Consortium, is a source of great confusion. -% It is displayed in the Unicode Book with an initial alif and thus represents the -% name of God, Allāh, which in Arabic is always written as a special ligature -% (\ie {\tradarabic اﷲ} and not {\arabicfont الله}).\footnote{ ^^A -% The glyph {\tradarabic اﷲ} is taken from the font Traditional Arabic. -% In Scheherazade its design is rather suboptimal: {\arabicfont\char"FDF2}.} -% -% However, a substantial portion of real-world fonts rather represent that -% ligature \textit{without} the initial alif.\footnote{ ^^A -% My research on Arabic fonts available or known to me yields the following picture: -% The fonts that do not display the initial alif in the ligature \textsf{FDF2} -% include those provided by \href{http://www.linotype.com/2517/arabicfonts.html}{Linotype}; -% the great majority of those licensed to or developed by -% \href{http://www.microsoft.com/typography/links/FontPortal.aspx?PID=8}{Microsoft} -% (I could verify it for Times New Roman, Arial, Courier New, Microsoft Sans Serif, -% Arabic Transparent, Simplified Arabic, Simplified Arabic Fixed, -% WinSoft Serif Pro, Traditional Arabic, Andalus, Old Antic Bold, -% Old Antic Decorated and Farsi Simple Bold); the fonts distributed by -% \href{http://www.arabeyes.org}{Arabeyes.org}; -% \href{http://scripts.sil.org/ArabicFonts}{SIL}'s Lateef; -% and the fonts developed by \href{www.crulp.org}{CRULP} in Pakistan. -% The Unicode-conformant fonts, on the other hand, are: -% \href{http://scripts.sil.org/ArabicFonts}{SIL}'s Scheherazade, -% \href{http://www.tdc.org/news/2006Results/AdobeArabic.html}{Adobe Arabic} -% (distributed with the \href{http://www.adobe.com/ceea/}{Middle-Eastern version} -% of the latest \href{http://www.adobe.com/products/acrobat/readermain.html}{Adobe Reader 7}), -% Arial Unicode MS, and \href{http://sakkal.com/type/typesetting.html}{Arabic Typesetting} -% (distributed with \href{http://www.microsoft.com/typography/VOLT.mspx}{VOLT} -% and with \href{http://www.microsoft.com/office/editions/prodinfo/language/proofingtools.mspx}{Microsoft Office Proofing Tools 2003}).} -% The confusion probably has to do with Unicode’s omission to include the ALLAH -% ligature without the initial alif, which is imperatively required for typesetting -% expressions like \textit{al-ḥamdu li-llāh} \RL{\tradarabic الحمد ﷲ}. -% Many fonts code the ligature {\tradarabic ﷲ} in the Private Use Area -% and make it accessible as a default ligature for the sequence \textit{lām-lām-hāʾ}. -% In such a case it can be generated from the input ¦\textarab{l|lh}¦ -% (the vertical bar here tells \arabxetex\ not to interpret the sequence ¦ll¦ -% as \textit{lām} with \textit{shadda}).\footnote{ ^^A -% This currently does not work with Scheharazade, but the -% developers are aware of the issue.} -% Besides not being a standard \arabtex\ input sequence, the trouble is that -% there is no way to know a priori whether the font provides the glyph {\tradarabic ﷲ} -% at all, and whether it is defined as a default ligature from the above input. -% -% To solve this problem with \arabxetex, we had no choice but provide two classes of -% font mappings, one for each of the above two categories of Arabic fonts.\footnote{ ^^A -% This has the unfortunate consequence of doubling the number of mappings shipped -% with \arabxetex. But since their size is small, it is more an esthetic annoyance -% than a practical one.} -% By default we assume the canonical situation where \textsf{U+FDF2} corresponds to -% {\tradarabic اﷲ}, but the user can change this by choosing one of the package options -% ¦fdf2alif¦ or ¦fdf2noalif¦; it can also be changed locally by means of the commands -% \DescribeMacro{\SetAllahWithAlif} -% \DescribeMacro{\SetAllahWithoutAlif} -% \cmd\SetAllahWithAlif\ and \cmd\SetAllahWithoutAlif\ \textit{before} making use of -% \cmd\arabicfont. In a future version we might perhaps implement a database of Arabic fonts -% within \arabxetex, so that this would work automatically in the most common cases. -% -% The font Adobe Arabic has in addition the ligature \textit{fa-li-llāh}: -% \textit{fā fatḥa lām kasra lām hāʾ} $\rightarrow$ {\adobearabic فَلِله}, which can be -% entered in \arabtex\ notation as ¦\textarab{falilh}¦. In this particular case we also -% provide the input convention ¦FALILLAH¦. -% -% -% ^^ATEST Scheherazade: \textarab{l|lh} -% ^^A -% ^^A\renewcommand{\arabicfont}{\tradarabic} -% ^^ATEST Trad Arabic: \textarab{l|lh} -% -% ^^ALinotype: \\ -% ^^ALotus Linotype {\lotusfont\char"FDF2} --- -% ^^AAlHarfAlJadid Linotype One {\fontspec[Scale=1.5]{AlHarfAlJadid Linotype One}\char"FDF2} --- -% ^^AAlHarfAlJadid Linotype Two {\fontspec[Scale=1.5]{AlHarfAlJadid Linotype Two}\char"FDF2} --- -% ^^AMariam Linotype {\fontspec[Scale=1.5]{Mariam Linotype}\char"FDF2} --- -% ^^AQadi Linotype {\fontspec[Scale=1.5]{Qadi Linotype}\char"FDF2} -% ^^A -% ^^AFonts from or licensed to Microsoft: \\ -% ^^ATimes New Roman {\fontspec[Scale=1.5]{Times New Roman}\char"FDF2} --- -% ^^AArial {\fontspec[Scale=1.5]{Arial}\char"FDF2} --- -% ^^ACourier New {\fontspec[Scale=1.5]{Courier New}\char"FDF2} --- -% ^^AMicrosoft Sans Serif {\fontspec[Scale=1.5]{Microsoft Sans Serif}\char"FDF2} --- -% ^^AArial Unicode MS {\arialuni\char"FDF2} --- -% ^^AArabic Transparent {\fontspec[Scale=1.5]{Arabic Transparent}\char"FDF2} --- -% ^^ASimplified Arabic {\fontspec[Scale=1.5]{Simplified Arabic}\char"FDF2} --- -% ^^ASimplified Arabic Fixed {\fontspec[Scale=1.5]{Simplified Arabic Fixed}\char"FDF2} --- -% ^^AWinSoft Serif Pro {\fontspec[Scale=1.5]{WinSoft Serif Pro}\char"FDF2} --- -% ^^ATraditional Arabic {\fontspec[Scale=1.5]{Traditional Arabic}\char"FDF2} --- -% ^^AArabic Typesetting {\arabtype\char"FDF2} --- -% ^^AAndalus {\fontspec[Scale=1.5]{Andalus}\char"FDF2} --- -% ^^AOld Antic Bold {\fontspec[Scale=1.5]{Old Antic Bold}\char"FDF2} --- -% ^^AFarsi Simple Bold {\fontspec[Scale=1.5]{Farsi Simple Bold}\char"FDF2} -% ^^A -% ^^A -% ^^AAdobe:\\ -% ^^AAdobe Arabic {\adobearabic\char"FDF2} --- -% ^^A -% ^^ASIL: \\ -% ^^AScheherazade {\arabicfont\char"FDF2} --- -% ^^ALateef {\fontspec{Lateef}\char"FDF2} -% ^^A -% ^^A%CRULP:\\ -% ^^A%Nafees Nastaleeq {\fontspec{Nafees Nastaleeq}\char"FDF2} --- -% ^^A%{\fontspec{Nafees Pakistani Naskh}\char"FDF2} -% ^^A -% ^^AArabeyes:\\ -% ^^AKacstBook {\fontspec{KacstBook}\char"FDF2} -% ^^AKacstFarsi {\fontspec{KacstFarsi}\char"FDF2} -% -% -% -% % \subsection{Transliteration} % % At the moment transliteration mappings are provided for Arabic, Persian, Urdu, % Sindhi and Pashto. The rest may be provided in a future version. % As a rule the default conventions provided are those of the Library of Congress. -% \new{1.1.2}For Arabic the alternative transliteration of the +% For Arabic the alternative transliteration of the % \href{http://www.orientasia.info/download/arab_trans.pdf}{Deutsche Morgenländische Gesellschaft} % is also available (but should be still considered experimental). % You can set it with the command \DescribeMacro{\SetTranslitConvention} @@ -648,10 +519,7 @@ François Charette % \end{arab} % Note that the article \textit{al-} is automatically skipped. % Note also that since the transliteration is coded in Unicode at the level of -% the font-mapping, it is necessary that the font contains all required glyphs.\footnote{ ^^A -% See Appendix~\ref{latinextfonts} for a list of recommended Unicode fonts that cover the -% full \textsc{latin extended additional} plane.} -% +% the font-mapping, it is necessary that the font contains all required glyphs. % ^^AIf your default roman font does not have the required % ^^Adiacritics, you can declare for instance % ^^A¦\SetTranslitStyle{\fontspec{Gentium}\itshape}¦. @@ -939,7 +807,7 @@ François Charette % ^^A06BC -> 0646 0631 % ^^A0689 -> 0688 % ^^A -% +% \newpage % \section{Unicode-Encoding concordance} % \parindent 0pt % \let\oldbaselineskip=\baselineskip @@ -1217,134 +1085,32 @@ François Charette % \textsf{076A} \> {\arabicfont\char"076A} \\ % \textsf{076B} \> {\arabicfont\char"076B} \\ % \textsf{076C} \> {\arabicfont\char"076C} \\ -% \textsf{076D} \> {\arabicfont\char"076D} \\ -% \textbf{Presentation Forms} * \\ +% \textsf{076D} \> {\arabicfont\char"076D} \\ +% ~~~ \> ~~~ \\ +% \textbf{Presentation Forms} \\ % \textsf{FD3E} \> {\arabicfont\char"FD3E} \> ¦))¦ \\ % \textsf{FD3F} \> {\arabicfont\char"FD3F} \> ¦((¦ \\ -% \textsf{FDF0} \> {\arialuni\char"FDF0} \> ¦SALLASTOP¦ \\ -% \textsf{FDF1} \> {\arialuni\char"FDF1} \> ¦QALA¦ \\ -% \textsf{FDF2} \> {\arabicfont\char"FDF2} \> ¦al-ll_ah¦ or ¦ALLAH¦ ** \\ -% \textsf{FDF3} \> {\arialuni\char"FDF3} \> ¦AKBAR¦ \\ -% \textsf{FDF4} \> {\arialuni\char"FDF4} \> ¦MUHAMMAD¦ \\ -% \textsf{FDF5} \> {\arialuni\char"FDF5} \> ¦SALAM¦ \\ -% \textsf{FDF6} \> {\arialuni\char"FDF6} \> ¦RASUL¦ or ¦RASOUL¦ \\ -% \textsf{FDF7} \> {\arialuni\char"FDF7} \> ¦ALAYHI¦ or ¦ALAYHE¦ \\ -% \textsf{FDF8} \> {\arialuni\char"FDF8} \> ¦WASALLAM¦ \\ -% \textsf{FDF9} \> {\arialuni\char"FDF9} \> ¦SALLA¦ \\ -% \textsf{FDFA} \> {\adobearabic\char"FDFA} \> ¦SLM¦ \\ -% \textsf{FDFB} \> {\arialuni\char"FDFB} \> ¦JALLA¦ \\ +% \textsf{FDF0} \> {\arabicfont\char"FDF0} \> ¦SALLASTOP¦ \\ +% \textsf{FDF1} \> {\arabicfont\char"FDF1} \> ¦QALA¦ \\ +% \textsf{FDF3} \> {\arabicfont\char"FDF3} \> ¦AKBAR¦ \\ +% \textsf{FDF4} \> {\arabicfont\char"FDF4} \> ¦MUHAMMAD¦ \\ +% \textsf{FDF5} \> {\arabicfont\char"FDF5} \> ¦SALAM¦ \\ +% \textsf{FDF6} \> {\arabicfont\char"FDF6} \> ¦RASUL¦ or ¦RASOUL¦ \\ +% \textsf{FDF7} \> {\arabicfont\char"FDF7} \> ¦ALAYHI¦ or ¦ALAYHE¦ \\ +% \textsf{FDF8} \> {\arabicfont\char"FDF8} \> ¦WASALLAM¦ \\ +% \textsf{FDF9} \> {\arabicfont\char"FDF9} \> ¦SALLA¦ \\ +% \textsf{FDFA} \> {\arabicfont\char"FDFA} \> ¦SLM¦ \\ +% \textsf{FDFB} \> {\arialuni\char"FDFB} \> ¦JALLA¦ \\ ^^A fixme not available in Amiri % \textsf{FDFC} \> {\arabicfont\char"FDFC} \> ¦RIYAL¦ \\ -% \textsf{FDFD} \> {\Huge\arabesque\char"F050} \> ¦BASMALA¦ \\ -% \textbf{Non-Unicode Ligatures} \\ -% \> {\tradarabic\char"FDF2} \> ¦ll_ah¦ or ¦LLAH¦ ** \\ -% \> {\adobearabic فَلِله} \> ¦FALILLAH¦ *** +% \textsf{FDFD} \> {\arabicfont\char"FDFD} \>\hspace*{100pt} ¦BASMALA¦ \\ +% \textbf{Special Combinations} \\ +% \> {\arabicfont الله} \> ¦al-ll_ah¦ or ¦ALLAH¦ \\ +% \> {\arabicfont لله} \> ¦ll_ah¦ or ¦LLAH¦ or ¦LLH¦ \\ +% \> {\arabicfont فَلِله} \> ¦FALILLAH¦ % \end{tabbing} % \end{multicols} % \parindentoff % -% \baselineskip 14pt -% \textit{Notes}\\ -% * Since most of these glyphs are not present in Scheherazade -% (and, with a few exceptions, are very rarely featured in other fonts), -% for illustration purposes we have taken \textsf{FDF0}, \textsf{FDF1}, -% \textsf{FDF3}--\textsf{FDF9} and \textsf{FDFB} from Arial Unicode MS, -% \textsf{FDFA} from Adobe Arabic, and \textsf{FDFD} from AGA Arabesque. -% -% ** See §~\ref{allahliga} -% -% *** Specific to the font Adobe Arabic -% -% \newpage -% \appendix -% \small -% \section{Notes on available free and commercial fonts for the Perso-Arabic script} -% \label{arabicfont} -% -% \textcolor{red}{NB: This list is incomplete and has not been updated since 2007.} -% -% ^^AThere are few free good quality fonts that support the Arabic script. -% \begin{compactitem}[\textbf{·}] -% \item ‘Scheherazade’ and ‘Lateef’ from SIL -% -% \item ‘Adobe Arabic’ -% -% \item Free fonts from \href{http://www.arabeyes.org}{Arabeyes.org} -% -% \item \ldots -% -% ^^AAdobe Arabic, dlig: (discretionary ligatures) -% ^^A -% ^^Aﻓ َ ﻠ ِ ﻠ ﻪ falilh > uni0641064E0644065006440647 -% ^^A -% ^^Aﻟ ﻠ ﻪ l-l-h > uni064406440647 -% ^^A -% ^^AA-l-l-h > FDF2 -% -% \item Arabic fonts on Mac~OS~X: ‘Geeza Pro’, ‘DecoType Naskh’, \ldots more? -% -% \item ‘Arabic Typesetting’ and other Arabic fonts licensed to Microsoft -% -% \item Commercial fonts by vendors: -% \begin{compactitem}[\textbf{--}] -% \item Linotype GmbH: \ldots -% \item AGFA Monotype: \ldots -% \item ParaType: \ldots -% \item \ldots -% \end{compactitem} -% \end{compactitem} -% -% -% -% \section{Recommended Unicode fonts for transliterating Oriental languages} -% \label{latinextfonts} -% -% Here follows a list of open source and freeware fonts with full -% \textsc{Latin Extended Additional} coverage.\footnote{ ^^A -% See this \href{http://www.alanwood.net/unicode/fonts.html\#general}{webpage} for more details.} -% \textcolor{red}{NB: This list has not been updated since 2007.} -% \begin{compactitem}[\textbf{·}] -% \item Gentium, Doulos, Charis: \url{http://scripts.sil.org/FontDownloads} -% -% \item Junicode: \url{http://junicode.sourceforge.net/} -% -% \item Libertine: \url{http://linuxlibertine.sourceforge.net/} -% -% \item DejaVu Serif / Sans / Sans Mono: \url{http://dejavu.sourceforge.net/wiki/index.php/Main_Page} -% -% \item Lucida Grande: Mac~OS~X -% -% \item TITUS Cyberbit Basic: \url{http://titus.fkidg1.uni-frankfurt.de/unicode/tituut.asp} -% -% \item Thryomanes: \url{ftp://ftp.io.com/pub/usr/hmiller/fonts/Thryomanes12.zip} -% -% \item jGaramond: \url{http://www.janthor.de/jGaramond/} -% -% \item Everson Mono Unicode (shareware): \url{http://www.evertype.com/emono/} -% -% \item Arial Unicode MS: Windows -% -% \item Microsoft Sans Serif: Windows -% -% \item FreeSerif / FreeSans / FreeMono: \url{http://savannah.nongnu.org/projects/freefont/} -% -% \item Roman Unicode: \url{http://everywitchway.net/linguistics/fonts/roman.html} -% -% \item Chrisanthi Unicode: \url{http://everywitchway.net/linguistics/fonts/chrysuni.html} -% -% \item HindSight Unicode (not very nice): \url{http://dartcanada.tripod.com/Objets/Zips/HindUnic.zip} -% -% \item AbRoman: \url{http://www.languagegeek.com/font/fontdownload.html} -% -% \item Garava: \url{http://www.aimwell.org/Fonts/fonts.html} -% -% \item Verajja (based on Bitstream Vera Sans, so very similar to DejaVu Sans): -% \url{http://www.aimwell.org/Fonts/fonts.html} -% -% \item Legendum: \url{http://home.kabelfoon.nl/~slam/fonts/fonts.html} -% -% \item Code2000 (shareware): \url{http://www.code2000.net} -% \end{compactitem} -% % % \section{Implementation} %\iffalse @@ -1353,18 +1119,18 @@ François Charette % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{arabxetex} - [2010/03/04 v1.1.4 ArabTeX-like interface for XeLaTeX] + [2015/09/04 v1.2.1 ArabTeX-like interface for XeLaTeX] % \DeclareOption{fullvoc}{\def\ax@mode{fullvoc}} \DeclareOption{voc}{\def\ax@mode{voc}} \DeclareOption{novoc}{\def\ax@mode{novoc}} \DeclareOption{trans}{\def\ax@mode{trans}} \DeclareOption{utf}{\def\ax@mode{utf}} -\DeclareOption{fdf2alif}{\def\ax@font@allah{fdf2alif}} -\DeclareOption{fdf2noalif}{\def\ax@font@allah{fdf2noalif}} +\DeclareOption{fdf2alif}{} % deprecated +\DeclareOption{fdf2noalif}{} % deprecated \newif\ifmirror@punct\mirror@punctfalse \DeclareOption{mirrorpunct}{\mirror@puncttrue} -\ExecuteOptions{novoc,fdf2alif} +\ExecuteOptions{novoc} \ProcessOptions \def\ax@mode@fullvoc{fullvoc} \def\ax@mode@voc{voc} @@ -1383,14 +1149,14 @@ François Charette \RequirePackage{fontspec} \RequirePackage{bidi} \AtBeginDocument{\ifdefined\arabicfont\relax\else - \PackageWarning{arabxetex}{\string\arabicfont\ is not defined!^^JI will try to load Scheherazade (scaled 1.5)}% - \newfontfamily\arabicfont[Script=Arabic,Scale=1.5]{Scheherazade}\fi}% + \PackageWarning{arabxetex}{\string\arabicfont\ is not defined!^^JI will try to load Amiri}% + \newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}% \def\ax@trans@style{\itshape}% \newcommand{\SetTranslitStyle}[1]{\def\ax@trans@style{#1}} \newcommand{\SetTranslitConvention}[1]{\def\ax@trans@convention{#1}} \def\ax@trans@convention{loc}% Library of Congress is default -\newcommand{\SetAllahWithAlif}{\def\ax@font@allah{fdf2alif}} -\newcommand{\SetAllahWithoutAlif}{\def\ax@font@allah{fdf2noalif}} +\newcommand{\SetAllahWithAlif}{} % deprecated +\newcommand{\SetAllahWithoutAlif}{} % deprecated \def\utf@fontfeature{\ifmirror@punct\addfontfeature{Mapping=mirrorpunct}\else\relax\fi} \def\arabtex@codes{\catcode`^=11\relax\catcode`_=11\relax} \def\UC{\char"E000} % This is used to capitalize the following letter (ignoring @@ -1421,12 +1187,12 @@ François Charette \par\setRL\arabicfont\utf@fontfeature% \else \par\setRL\arabicfont\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-\@tempa}% + \addfontfeature{Mapping=arabtex-\@tempa}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\arabicfont\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-\ax@mode}% + \addfontfeature{Mapping=arabtex-\ax@mode}% \fi} {\ifx\@tempa\ax@mode@trans\relax\else\unsetRL\fi\par} \let\Arabic=\arab% @@ -1444,12 +1210,12 @@ François Charette \par\setRL\ax@maghribi@font\utf@fontfeature% \else \par\setRL\ax@maghribi@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-maghribi-\@tempa}% + \addfontfeature{Mapping=arabtex-maghribi-\@tempa}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@maghribi@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-maghribi-\ax@mode}% + \addfontfeature{Mapping=arabtex-maghribi-\ax@mode}% \fi} {\ifx\@tempa\ax@mode@trans\relax\else\unsetRL\fi\par} %%% @@ -1466,12 +1232,12 @@ François Charette \par\setRL\ax@farsi@font\utf@fontfeature% \else \par\setRL\ax@farsi@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-farsi-\@tempa}% + \addfontfeature{Mapping=arabtex-farsi-\@tempa}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@farsi@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-farsi-\ax@mode}% + \addfontfeature{Mapping=arabtex-farsi-\ax@mode}% \fi} {\ifx\@tempa\ax@mode@trans\relax\else\unsetRL\fi\par} \let\persian=\farsi @@ -1489,12 +1255,12 @@ François Charette \par\setRL\ax@urdu@font\addfontfeature{Language=Urdu}%Mapping=arabtex-utf}% \else \par\setRL\ax@urdu@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-urdu-\@tempa}% + \addfontfeature{Mapping=arabtex-urdu-\@tempa}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@urdu@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-urdu-\ax@mode}% + \addfontfeature{Mapping=arabtex-urdu-\ax@mode}% \fi} {\ifx\@tempa\ax@mode@trans\relax\else\unsetRL\fi\par} %%% @@ -1511,12 +1277,12 @@ François Charette \par\setRL\ax@pashto@font\utf@fontfeature% \else \par\setRL\ax@pashto@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-pashto-\@tempa}% + \addfontfeature{Mapping=arabtex-pashto-\@tempa}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@pashto@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-pashto-\ax@mode}% + \addfontfeature{Mapping=arabtex-pashto-\ax@mode}% \fi} {\ifx\@tempa\ax@mode@trans\relax\else\unsetRL\fi\par} %%% @@ -1533,12 +1299,12 @@ François Charette \par\setRL\ax@sindhi@font\addfontfeature{Language=Sindhi}%Mapping=arabtex-utf}% \else \par\setRL\ax@sindhi@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-sindhi-\@tempa,Language=Sindhi}% + \addfontfeature{Mapping=arabtex-sindhi-\@tempa,Language=Sindhi}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@sindhi@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-sindhi-\ax@mode,Language=Sindhi}% + \addfontfeature{Mapping=arabtex-sindhi-\ax@mode,Language=Sindhi}% \fi} {\ifx\@tempa\ax@mode@trans\relax\else\unsetRL\fi\par} %%% @@ -1555,12 +1321,12 @@ François Charette \par\setRL\ax@ottoman@font\utf@fontfeature% \else \par\setRL\ax@ottoman@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-turk-\@tempa}% + \addfontfeature{Mapping=arabtex-turk-\@tempa}% \fi%\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@ottoman@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-turk-\ax@mode}% + \addfontfeature{Mapping=arabtex-turk-\ax@mode}% \fi} {%\ifx\@tempa\ax@mode@trans\relax\else \unsetRL%\fi @@ -1578,7 +1344,7 @@ François Charette \par\setRL\ax@kurdish@font\addfontfeature{Language=Kurdish}%Mapping=arabtex-utf}% \else \par\setRL\ax@kurdish@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-kurdish,Language=Kurdish}% + \addfontfeature{Mapping=arabtex-kurdish,Language=Kurdish}% \fi} {%\ifx\@tempa\ax@mode@trans\relax\else \unsetRL%\fi @@ -1591,18 +1357,18 @@ François Charette \ifax@mode@defined% %\ifx\@tempa\ax@mode@trans% % \par\arabtex@codes\ax@trans@style% - % \addfontfeature{Mapping=arabtex-\ax@font@allah-kashmiri-trans-\ax@trans@convention}% + % \addfontfeature{Mapping=arabtex-kashmiri-trans-\ax@trans@convention}% %\else \ifx\@tempa\ax@mode@utf% \par\setRL\ax@kashmiri@font\utf@fontfeature% \else \par\setRL\ax@kashmiri@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-kashmiri-\@tempa}% + \addfontfeature{Mapping=arabtex-kashmiri-\@tempa}% \fi%\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@kashmiri@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-kashmiri-\ax@mode}% + \addfontfeature{Mapping=arabtex-kashmiri-\ax@mode}% \fi} {%\ifx\@tempa\ax@mode@trans\relax\else \unsetRL%\fi @@ -1621,12 +1387,12 @@ François Charette \par\setRL\ax@malay@font\utf@fontfeature% \else \par\setRL\ax@malay@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-malay-\@tempa}% + \addfontfeature{Mapping=arabtex-malay-\@tempa}% \fi%\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% \par\setRL\ax@malay@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-malay-\ax@mode}% + \addfontfeature{Mapping=arabtex-malay-\ax@mode}% \fi} {%\ifx\@tempa\ax@mode@trans\relax\else \unsetRL%\fi @@ -1644,7 +1410,7 @@ François Charette \par\setRL\ax@uighur@font\utf@fontfeature% \else \par\setRL\ax@uighur@font\arabtex@codes% - \addfontfeature{Mapping=arabtex-\ax@font@allah-uighur}% + \addfontfeature{Mapping=arabtex-uighur}% \fi} {%\ifx\@tempa\ax@mode@trans\relax\else \unsetRL%\fi @@ -1671,16 +1437,16 @@ François Charette \ax@ismode@defined{\@tempa}% \ifax@mode@defined% \ifx\@tempa\ax@mode@trans% - {\ax@trans@style\addfontfeature{Mapping=arabtex-trans-\ax@trans@convention}#2}% + {\ax@trans@style\addfontfeature{Mapping=arabtex-trans-\ax@trans@convention}\scantokens{#2\noexpand}}% \else \ifx\@tempa\ax@mode@utf% \RL{\arabicfont\utf@fontfeature #2}% \else - \RL{\arabicfont\addfontfeature{Mapping=arabtex-\ax@font@allah-\@tempa}#2}% + \RL{\arabicfont\addfontfeature{Mapping=arabtex-\@tempa}\scantokens{#2\noexpand}}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\arabicfont\addfontfeature{Mapping=arabtex-\ax@font@allah-\ax@mode}#2}% + \RL{\arabicfont\addfontfeature{Mapping=arabtex-\ax@mode}\scantokens{#2\noexpand}}% \fi\egroup} \newcommand\text@maghribi[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1694,11 +1460,11 @@ François Charette \RL{\ax@maghribi@font\utf@fontfeature #2}% \else \RL{\ax@maghribi@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-maghribi-\@tempa}#2}% + \addfontfeature{Mapping=arabtex-maghribi-\@tempa}#2}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@maghribi@font\addfontfeature{Mapping=arabtex-\ax@font@allah-maghribi-\ax@mode}#2}% + \RL{\ax@maghribi@font\addfontfeature{Mapping=arabtex-maghribi-\ax@mode}#2}% \fi\egroup} \newcommand\text@farsi[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1712,11 +1478,11 @@ François Charette \RL{\ax@farsi@font\utf@fontfeature #2}% \else \RL{\ax@farsi@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-farsi-\@tempa}#2}% + \addfontfeature{Mapping=arabtex-farsi-\@tempa}#2}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@farsi@font\addfontfeature{Mapping=arabtex-\ax@font@allah-farsi-\ax@mode}#2}% + \RL{\ax@farsi@font\addfontfeature{Mapping=arabtex-farsi-\ax@mode}#2}% \fi\egroup} \newcommand\text@urdu[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1730,11 +1496,11 @@ François Charette \RL{\ax@urdu@font\addfontfeature{Language=Urdu}#2}%eventually Mapping=arabtex-utf \else \RL{\ax@urdu@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-urdu-\@tempa,Language=Urdu}#2}% + \addfontfeature{Mapping=arabtex-urdu-\@tempa,Language=Urdu}#2}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@urdu@font\addfontfeature{Mapping=arabtex-\ax@font@allah-urdu-\ax@mode,Language=Urdu}#2}% + \RL{\ax@urdu@font\addfontfeature{Mapping=arabtex-urdu-\ax@mode,Language=Urdu}#2}% \fi\egroup} \newcommand\text@sindhi[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1748,11 +1514,11 @@ François Charette \RL{\ax@sindhi@font\addfontfeature{Language=Sindhi} #2}%eventually Mapping=arabtex-utf \else \RL{\ax@sindhi@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-sindhi-\@tempa,Language=Sindhi}#2}% + \addfontfeature{Mapping=arabtex-sindhi-\@tempa,Language=Sindhi}#2}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@sindhi@font\addfontfeature{Mapping=arabtex-\ax@font@allah-sindhi-\ax@mode,Language=Sindhi}#2}% + \RL{\ax@sindhi@font\addfontfeature{Mapping=arabtex-sindhi-\ax@mode,Language=Sindhi}#2}% \fi\egroup} \newcommand\text@pashto[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1766,11 +1532,11 @@ François Charette \RL{\ax@pashto@font\utf@fontfeature #2}% \else \RL{\ax@pashto@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-pashto-\@tempa}#2}% + \addfontfeature{Mapping=arabtex-pashto-\@tempa}#2}% \fi\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@pashto@font\addfontfeature{Mapping=arabtex-\ax@font@allah-pashto-\ax@mode}#2}% + \RL{\ax@pashto@font\addfontfeature{Mapping=arabtex-pashto-\ax@mode}#2}% \fi\egroup} \newcommand\text@ottoman[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1785,11 +1551,11 @@ François Charette \RL{\ax@ottoman@font\utf@fontfeature #2}% \else \RL{\ax@ottoman@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-turk-\@tempa}#2}% + \addfontfeature{Mapping=arabtex-turk-\@tempa}#2}% \fi%\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@ottoman@font\addfontfeature{Mapping=arabtex-\ax@font@allah-turk-\ax@mode}#2}% + \RL{\ax@ottoman@font\addfontfeature{Mapping=arabtex-turk-\ax@mode}#2}% \fi\egroup} \newcommand\text@kurdish[2][]{% \edef\@tempa{#1}% @@ -1802,7 +1568,7 @@ François Charette \RL{\ax@kurdish@font\utf@fontfeature #2}% \else \RL{\ax@kurdish@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-kurdish,Language=Kurdish}#2}% + \addfontfeature{Mapping=arabtex-kurdish,Language=Kurdish}#2}% \fi%\fi \egroup} \newcommand\text@kashmiri[2][\ax@mode]{% @@ -1818,11 +1584,11 @@ François Charette \RL{\ax@kashmiri@font\utf@fontfeature #2}% \else \RL{\ax@kashmiri@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-kashmiri-\@tempa}#2}% + \addfontfeature{Mapping=arabtex-kashmiri-\@tempa}#2}% \fi%\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \@ax@mode}% - \RL{\ax@kashmiri@font\addfontfeature{Mapping=arabtex-\ax@font@allah-kashmiri-\ax@mode}#2}% + \RL{\ax@kashmiri@font\addfontfeature{Mapping=arabtex-kashmiri-\ax@mode}#2}% \fi\egroup} \newcommand\text@malay[2][\ax@mode]{% \edef\@tempa{#1}% @@ -1837,11 +1603,11 @@ François Charette \RL{\ax@malay@font\utf@fontfeature #2}% \else \RL{\ax@malay@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-malay-\@tempa}#2}% + \addfontfeature{Mapping=arabtex-malay-\@tempa}#2}% \fi%\fi \else \PackageWarning{arabxetex}{Mode \@tempa\ not defined, defaulting to \ax@mode}% - \RL{\ax@malay@font\addfontfeature{Mapping=arabtex-\ax@font@allah-malay-\ax@mode}#2}% + \RL{\ax@malay@font\addfontfeature{Mapping=arabtex-malay-\ax@mode}#2}% \fi\egroup} \newcommand\text@uighur[2][]{% \edef\@tempa{#1}% @@ -1854,12 +1620,12 @@ François Charette \RL{\ax@uighur@font\utf@fontfeature #2}% \else \RL{\ax@uighur@font% - \addfontfeature{Mapping=arabtex-\ax@font@allah-uighur}#2}% + \addfontfeature{Mapping=arabtex-uighur}#2}% \fi%\fi \egroup} % \newcommand{\textLR}[1]{\LR{\rmfamily #1}} -\newcommand{\aemph}[1]{% +\providecommand*{\aemph}[1]{% \edef\@tempb{\expandafter\noexpand\csname text\ax@lang\endcsname}% $\overline{\text{\@tempb{#1}}}$} % \end{macrocode} @@ -1879,8 +1645,6 @@ François Charette % ^^A- hamza directly above baseline (for Qur'an) : 0654 is too high! % ^^A \def\hamzaB{\raisebox[-1ex]{\char"0654} is ok % ^^A -% ^^A- U+FDF2: codify the LLAH ligature as well? -% ^^A Perhaps the FALILLAH ligature could be added as well? % % ^^A\clearpage % ^^A\PrintChanges @@ -1894,16 +1658,16 @@ François Charette %<*dtx-style> % \begin{macrocode} \ProvidesPackage{arabxetex-dtx-style} -\usepackage{fontspec,xltxtra} +\usepackage[silent]{fontspec} +\usepackage{hologo} \usepackage{array,supertabular,xspace,multicol,fancyvrb,paralist} -\usepackage[voc]{arabxetex} -\usepackage[dvipdfm]{color} +\usepackage{color} \definecolor{myblue}{rgb}{0.02,0.04,0.48} \definecolor{myred}{rgb}{0.65,0.04,0.07} \definecolor{darkgray}{gray}{0.3} \definecolor{lightgray}{gray}{0.6} \definecolor{IslamicGreen}{rgb}{0,.43,0} -\usepackage[dvipdfm, +\usepackage[ bookmarks=true, colorlinks=true, linkcolor=myblue, @@ -1912,11 +1676,12 @@ François Charette hyperindex=false, hyperfootnotes=false, pdftitle={The ArabXeTeX package}, - pdfauthor={F Charette <firmicus@gmx.net>}, + pdfauthor={F Charette <firmicus04@gmail.com>}, pdfsubject={An ArabTeX-like interface for typesetting languages in Arabic script with XeLaTeX}, pdfkeywords={ArabTeX, XeTeX, XeLaTeX, Arabic, Maghribi, Persian, Farsi, Urdu, Sindhi, Pashto, Turkish, Ottoman, Kurdish, Kashmiri, Malay, Jawi, Uighur} ]{hyperref} +\usepackage[voc]{arabxetex} % NB some of this preamble is taken or adapted from fontspec-doc-style.sty \newcommand*\pkg[1]{\textsf{#1}} \def\eg{\textit{e.g.,}\xspace} @@ -1925,19 +1690,13 @@ François Charette \def\Eg{\textit{E.g.,}\xspace} \def\Ie{\textit{I.e.,}\xspace} \def\etc{\@ifnextchar.{\textit{etc}}{\textit{etc.}\@\xspace}} - +\def\eTeX{\hologo{eTeX}} \newlength{\oldparindent} \newcommand{\parindentoff}{\setlength{\oldparindent}{\parindent} \setlength{\parindent}{0pt}} \newcommand{\parindenton}{\setlength{\parindent}{\oldparindent}} -%% LOGOS, tuned for Palatino: -\makeatletter -\TeX@logo@spacing{-0.12em}{-0.12em}% - {0.5ex}{-0.3em}{-0.12em}{-0.1em} -\makeatother \def\arabxetex{Arab\XeTeX} \def\arabtex{Arab\TeX} -\def\arabxetexAr{\RL{\fontspec[Script=Arabic,Scale=1.5]{DecoType Thuluth} عرب زيتخ}} \def\MacOSX{Mac~OS~X} \def\ASCII{\textsc{ascii}} % ii small caps does not work with Junicode! @@ -1965,21 +1724,15 @@ François Charette %%% %% fontspec declarations: -\setromanfont[Mapping=tex-text]{Junicode}%{FPL Neu} +\setmainfont[Ligatures=TeX]{Junicode} \defaultfontfeatures{Scale=MatchLowercase} -\setmonofont{Inconsolata}%{Latin Modern Typewriter Proportional}%{Luxi Mono}%{Courier New} +\setmonofont{Consolas}%{Inconsolata} \setsansfont{Lucida Sans Unicode} -\newfontfamily\arabicfont[Script=Arabic,Scale=1.5]{Scheherazade} -\newfontfamily\urdufont[Script=Arabic,Scale=1.2]{Nafees Pakistani Naskh}%Nafees Nastaleeq does not work well -\newfontfamily\farsifont[Script=Arabic,Scale=1.33]{Farsi Simple Bold} -\newfontfamily\lateeffont[Script=Arabic,Scale=1.5]{Lateef} -\newfontfamily\lotusfont[Script=Arabic,Scale=1.5]{Lotus Linotype} -\newfontfamily\arabtype[Script=Arabic,Scale=1.5]{Arabic Typesetting} -\newfontfamily\adobearabic[Script=Arabic,Scale=1.5]{Adobe Arabic} -\newfontfamily\tradarabic[Script=Arabic,Scale=1.5]{Traditional Arabic} -\newfontfamily\arabesque{AGA Arabesque} -\newfontfamily\arialuni{Arial Unicode MS} -\newfontfamily\gentium{Gentium} +\newfontfamily\arabicfont[Script=Arabic,Scale=1]{Amiri} +\newfontfamily\amiriquran[Script=Arabic,Scale=1]{Amiri Quran} +\newfontfamily\arialuni[Script=Arabic,Scale=1]{Arial Unicode MS} +\newfontfamily\urdufont[Script=Arabic,Scale=1.2]{Hussaini Nastaleeq} +\newfontfamily\farsifont[Script=Arabic,Scale=1.33]{IranNastaliq} \linespread{1.05} \frenchspacing diff --git a/Master/texmf-dist/source/xelatex/arabxetex/makemaps.pl b/Master/texmf-dist/source/xelatex/arabxetex/makemaps.pl index 231a6b5c8ea..d93e5c8c300 100755 --- a/Master/texmf-dist/source/xelatex/arabxetex/makemaps.pl +++ b/Master/texmf-dist/source/xelatex/arabxetex/makemaps.pl @@ -11,13 +11,9 @@ mkdir("mappings"); #languages = arab maghribi farsi urdu pashto sindhi kashmiri kurdish turk malay uighur # but kurdish and uighur are coded separately -# First the mappings for fonts that have the glyph U+FDF2 with initial alif - open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-novoc.map"; +open OUTPUT, ">$output-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@An // ; s/^\@.+\n//m ; s/^#[A-Z]*A[A-Z]*n // ; @@ -32,10 +28,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-voc.map"; +open OUTPUT, ">$output-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Av // ; s/^\@v // ; s/^\@.+\n//m ; @@ -51,10 +45,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-fullvoc.map"; +open OUTPUT, ">$output-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Af // ; s/^\@.+\n//m ; s/^#[A-Z]*A[A-Z]*[vf] // ; @@ -71,10 +63,8 @@ close MAPS; ## maghribi open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-maghribi-novoc.map"; +open OUTPUT, ">$output-maghribi-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Bn // ; s/^\@.+\n//m ; s/^#[A-Z]*A[A-Z]*n // ; @@ -91,10 +81,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-maghribi-voc.map"; +open OUTPUT, ">$output-maghribi-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Bv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -112,10 +100,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-maghribi-fullvoc.map"; +open OUTPUT, ">$output-maghribi-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Bf // ; s/^\@.+\n//m ; s/^#[A-Z]*A[A-Z]*[vf] // ; @@ -134,10 +120,8 @@ close MAPS; ### farsi open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-farsi-novoc.map"; +open OUTPUT, ">$output-farsi-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Pn // ; s/^\@.+\n//m ; s/^#[A-Z]*P[A-Z]*n // ; @@ -152,10 +136,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-farsi-voc.map"; +open OUTPUT, ">$output-farsi-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Pv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -171,10 +153,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-farsi-fullvoc.map"; +open OUTPUT, ">$output-farsi-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Pf // ; s/^\@.+\n//m ; s/^#[A-Z]*P[A-Z]*[vf] // ; @@ -191,10 +171,8 @@ close MAPS; ### urdu open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-urdu-novoc.map"; +open OUTPUT, ">$output-urdu-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Un // ; s/^\@.+\n//m ; s/^#[A-Z]*U[A-Z]*n // ; @@ -209,10 +187,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-urdu-voc.map"; +open OUTPUT, ">$output-urdu-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Uv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -228,10 +204,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-urdu-fullvoc.map"; +open OUTPUT, ">$output-urdu-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Uf // ; s/^\@.+\n//m ; s/^#[A-Z]*U[A-Z]*[vf] // ; @@ -248,10 +222,8 @@ close MAPS; ###sindhi open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-sindhi-novoc.map"; +open OUTPUT, ">$output-sindhi-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Sn // ; s/^\@.+\n//m ; s/^#[A-Z]*S[A-Z]*n // ; @@ -266,10 +238,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-sindhi-voc.map"; +open OUTPUT, ">$output-sindhi-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Sv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -285,10 +255,8 @@ close OUTPUT; close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-sindhi-fullvoc.map"; +open OUTPUT, ">$output-sindhi-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Sf // ; s/^\@.+\n//m ; s/^#[A-Z]*S[A-Z]*[vf] // ; @@ -305,10 +273,8 @@ close MAPS; ###pashto open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-pashto-novoc.map"; +open OUTPUT, ">$output-pashto-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Tn // ; s/^\@.+\n//m ; s/^#[A-Z]*T[A-Z]*n // ; @@ -324,10 +290,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-pashto-voc.map"; +open OUTPUT, ">$output-pashto-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Tv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -344,10 +308,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-pashto-fullvoc.map"; +open OUTPUT, ">$output-pashto-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Tf // ; s/^\@.+\n//m ; s/^#[A-Z]*T[A-Z]*[vf] // ; @@ -365,10 +327,8 @@ close MAPS; ###turk open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-turk-novoc.map"; +open OUTPUT, ">$output-turk-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@On // ; s/^\@.+\n//m ; s/^#[A-Z]*O[A-Z]*n // ; @@ -384,10 +344,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-turk-voc.map"; +open OUTPUT, ">$output-turk-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Ov // ; s/^\@v // ; s/^\@.+\n//m ; @@ -404,10 +362,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-turk-fullvoc.map"; +open OUTPUT, ">$output-turk-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Of // ; s/^\@.+\n//m ; s/^#[A-Z]*O[A-Z]*[vf] // ; @@ -424,10 +380,8 @@ close MAPS; ###kashmiri open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-kashmiri-novoc.map"; +open OUTPUT, ">$output-kashmiri-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Kn // ; s/^\@.+\n//m ; s/^#[A-Z]*K[A-Z]*n // ; @@ -443,10 +397,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-kashmiri-voc.map"; +open OUTPUT, ">$output-kashmiri-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Kv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -463,10 +415,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-kashmiri-fullvoc.map"; +open OUTPUT, ">$output-kashmiri-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Kf // ; s/^\@.+\n//m ; s/^#[A-Z]*K[A-Z]*[vf] // ; @@ -483,10 +433,8 @@ close MAPS; ###malay open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-malay-novoc.map"; +open OUTPUT, ">$output-malay-novoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Mn // ; s/^\@.+\n//m ; s/^#[A-Z]*M[A-Z]*n // ; @@ -502,10 +450,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-malay-voc.map"; +open OUTPUT, ">$output-malay-voc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Mv // ; s/^\@v // ; s/^\@.+\n//m ; @@ -522,10 +468,8 @@ close MAPS; open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2alif-malay-fullvoc.map"; +open OUTPUT, ">$output-malay-fullvoc.map"; while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; s/^\@Mf // ; s/^\@.+\n//m ; s/^#[A-Z]*M[A-Z]*[vf] // ; @@ -539,577 +483,6 @@ while (<MAPS>) { close OUTPUT; close MAPS; -## Now the mappings for fonts that do not include the initial alif in U+FDF2 - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@An // ; - s/^\@.+\n//m ; - s/^#[A-Z]*A[A-Z]*n // ; - s/^#[A-Z]*A[A-Z]* // ; - s/^#-[BPUTSKOM]+n // ; - s/^#-[BPUTSKOM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} ; -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Av // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*A[A-Z]*v // ; - s/^#[A-Z]*A[A-Z]* // ; - s/^#-[BPUTSKOM]+v // ; - s/^#-[BPUTSKOM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} ; -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Af // ; - s/^\@.+\n//m ; - s/^#[A-Z]*A[A-Z]*[vf] // ; - s/^#[A-Z]*A[A-Z]* // ; - s/^#-[BPUTSKOM]+[vf] // ; - s/^#-[BPUTSKOM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} ; -close OUTPUT; -close MAPS; - -## maghribi - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-maghribi-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Bn // ; - s/^\@.+\n//m ; - s/^#[A-Z]*A[A-Z]*n // ; - s/^#[A-Z]*A[A-Z]* // ; - s/^#[A-Z]*B[A-Z]*n // ; - s/^#[A-Z]*B[A-Z]* // ; - s/^#-[PUTSKOM]+n // ; - s/^#-[PUTSKOM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} ; -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-maghribi-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Bv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*A[A-Z]*v // ; - s/^#[A-Z]*A[A-Z]* // ; - s/^#[A-Z]*B[A-Z]*v // ; - s/^#[A-Z]*B[A-Z]* // ; - s/^#-[PUTSKOM]+v // ; - s/^#-[PUTSKOM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} ; -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-maghribi-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Bf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*A[A-Z]*[vf] // ; - s/^#[A-Z]*A[A-Z]* // ; - s/^#[A-Z]*B[A-Z]*[vf] // ; - s/^#[A-Z]*B[A-Z]* // ; - s/^#-[PUTSKOM]+[vf] // ; - s/^#-[PUTSKOM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} ; -close OUTPUT; -close MAPS; - -### farsi - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-farsi-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Pn // ; - s/^\@.+\n//m ; - s/^#[A-Z]*P[A-Z]*n // ; - s/^#[A-Z]*P[A-Z]* // ; - s/^#-[ABUTSKOM]+n // ; - s/^#-[ABUTSKOM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-farsi-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Pv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*P[A-Z]*v // ; - s/^#[A-Z]*P[A-Z]* // ; - s/^#-[ABUTSKOM]+v // ; - s/^#-[ABUTSKOM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-farsi-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Pf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*P[A-Z]*[vf] // ; - s/^#[A-Z]*P[A-Z]* // ; - s/^#-[ABUTSKOM]+[vf] // ; - s/^#-[ABUTSKOM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -### urdu - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-urdu-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Un // ; - s/^\@.+\n//m ; - s/^#[A-Z]*U[A-Z]*n // ; - s/^#[A-Z]*U[A-Z]* // ; - s/^#-[ABPTSKOM]+n // ; - s/^#-[ABPTSKOM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-urdu-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Uv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*U[A-Z]*v // ; - s/^#[A-Z]*U[A-Z]* // ; - s/^#-[ABPTSKOM]+v // ; - s/^#-[ABPTSKOM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-urdu-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Uf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*U[A-Z]*[vf] // ; - s/^#[A-Z]*U[A-Z]* // ; - s/^#-[ABPTSKOM]+[vf] // ; - s/^#-[ABPTSKOM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -###sindhi - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-sindhi-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Sn // ; - s/^\@.+\n//m ; - s/^#[A-Z]*S[A-Z]*n // ; - s/^#[A-Z]*S[A-Z]* // ; - s/^#-[ABPUTKOM]+n // ; - s/^#-[ABPUTKOM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-sindhi-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Sv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*S[A-Z]*v // ; - s/^#[A-Z]*S[A-Z]* // ; - s/^#-[ABPUTKOM]+v // ; - s/^#-[ABPUTKOM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-sindhi-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Sf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*S[A-Z]*[vf] // ; - s/^#[A-Z]*S[A-Z]* // ; - s/^#-[ABPUTKOM]+[vf] // ; - s/^#-[ABPUTKOM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -###pashto - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-pashto-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Tn // ; - s/^\@.+\n//m ; - s/^#[A-Z]*T[A-Z]*n // ; - s/^#[A-Z]*T[A-Z]* // ; - s/^#-[ABPUSKOM]+n // ; - s/^#-[ABPUSKOM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-pashto-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Tv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*T[A-Z]*v // ; - s/^#[A-Z]*T[A-Z]* // ; - s/^#-[ABPUSKOM]+v // ; - s/^#-[ABPUSKOM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-pashto-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Tf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*T[A-Z]*[vf] // ; - s/^#[A-Z]*T[A-Z]* // ; - s/^#-[ABPUSKOM]+[vf] // ; - s/^#-[ABPUSKOM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -###turk - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-turk-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@On // ; - s/^\@.+\n//m ; - s/^#[A-Z]*O[A-Z]*n // ; - s/^#[A-Z]*O[A-Z]* // ; - s/^#-[ABPUSKTM]+n // ; - s/^#-[ABPUSKTM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-turk-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Ov // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*O[A-Z]*v // ; - s/^#[A-Z]*O[A-Z]* // ; - s/^#-[ABPUSKTM]+v // ; - s/^#-[ABPUSKTM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-turk-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Of // ; - s/^\@.+\n//m ; - s/^#[A-Z]*O[A-Z]*[vf] // ; - s/^#[A-Z]*O[A-Z]* // ; - s/^#-[ABPUSKTM]+[vf] // ; - s/^#-[ABPUSKTM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -###kashmiri - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-kashmiri-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Kn // ; - s/^\@.+\n//m ; - s/^#[A-Z]*K[A-Z]*n // ; - s/^#[A-Z]*K[A-Z]* // ; - s/^#-[ABPUSOTM]+n // ; - s/^#-[ABPUSOTM]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-kashmiri-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Kv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*K[A-Z]*v // ; - s/^#[A-Z]*K[A-Z]* // ; - s/^#-[ABPUSOTM]+v // ; - s/^#-[ABPUSOTM]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-kashmiri-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Kf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*K[A-Z]*[vf] // ; - s/^#[A-Z]*K[A-Z]* // ; - s/^#-[ABPUSOTM]+[vf] // ; - s/^#-[ABPUSOTM]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -###malay - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-malay-novoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Mn // ; - s/^\@.+\n//m ; - s/^#[A-Z]*M[A-Z]*n // ; - s/^#[A-Z]*M[A-Z]* // ; - s/^#-[ABPUSKOT]+n // ; - s/^#-[ABPUSKOT]+ // ; - s/^#n // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-malay-voc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Mv // ; - s/^\@v // ; - s/^\@.+\n//m ; - s/^#[A-Z]*M[A-Z]*v // ; - s/^#[A-Z]*M[A-Z]* // ; - s/^#-[ABPUSKOT]+v // ; - s/^#-[ABPUSKOT]+ // ; - s/^#v // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - - -open MAPS, "<$master" ; -open OUTPUT, ">$output-fdf2noalif-malay-fullvoc.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - s/^\@Mf // ; - s/^\@.+\n//m ; - s/^#[A-Z]*M[A-Z]*[vf] // ; - s/^#[A-Z]*M[A-Z]* // ; - s/^#-[ABPUSKOT]+[vf] // ; - s/^#-[ABPUSKOT]+ // ; - s/^#[vf] // ; - s/^#.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -# Now Kurdish and Uighur... - -open MAPS, "<arabtex-kurdish.maps" ; -open OUTPUT, ">$output-fdf2noalif-kurdish.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<arabtex-uighur.maps" ; -open OUTPUT, ">$output-fdf2noalif-uighur.map"; -while (<MAPS>) { - s/^#0 // ; - s/^#1.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<arabtex-kurdish.maps" ; -open OUTPUT, ">$output-fdf2alif-kurdish.map"; -while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - -open MAPS, "<arabtex-uighur.maps" ; -open OUTPUT, ">$output-fdf2alif-uighur.map"; -while (<MAPS>) { - s/^#1 // ; - s/^#0.+\n//m ; - print OUTPUT -} -close OUTPUT; -close MAPS; - # Let's compile them now system("cp *.map mappings/"); system("for map in mappings/*.map; do echo \"compiling \$map ...\" && teckit_compile \$map; done"); |