diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf | 136 |
1 files changed, 51 insertions, 85 deletions
diff --git a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf index 7f4f4e35c80..71342bb9512 100644 --- a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf +++ b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf @@ -1,5 +1,6 @@ \ProvidesFile{gloss-arabic.ldf}[polyglossia: module for arabic] -\RequirePackage{bidi}[0.3] +\RequirePackage{bidi} +\RequirePackage{arabicnumbers} \RequirePackage{hijrical} \makeatletter @@ -21,7 +22,7 @@ \ifx\@tmpa\tmp@maghrib\eastern@numeralsfalse\fi% \fi} -\newif\ifabjad@jim@notail +%this is needed for \abjad in arabicnumbers.sty \def\tmp@true{true} \define@key{arabic}{abjadjimnotail}[true]{% \def\@tmpa{#1}% @@ -83,6 +84,10 @@ {\xpg@warning{Option `locale=#1' is not defined for Arabic: using `default' instead}% \arabicgregmonth@default}} +%\Hijritoday is now locale-aware and will format the date with this macro: +\DefineFormatHijriDate{arabic}{\@ensure@RTL{% +\arabicnumber{\value{Hijriday}}\space\HijriMonthArabic{\value{Hijrimonth}}\space\arabicnumber{\value{Hijriyear}}}} + \def\captionsarabic{% \def\prefacename{\@ensure@RTL{مدخل}}% \def\refname{\@ensure@RTL{المراجع}} @@ -124,54 +129,17 @@ \fi}} -\def\arabicnumber#1{\ifeastern@numerals{\addfontfeature{Mapping=arabicdigits}\number#1}\else\RL{\reset@font\number#1}\fi} +\def\arabicnumber#1{% + \ifeastern@numerals + \arabicdigits{\number#1}% + \else + %%\RL{\protect\reset@font\number#1}% + \number#1% + \fi} \def\@ornatebracearabic#1{\RL{\char"FD3F\@arabic#1\char"FD3E}} \def\@ornatebracealph#1{\RL{\char"FD3F\@alph#1\char"FD3E}} -\ifcsdef{abjad}{}{% -\def\abjad#1{% -\ifnum#1>1999\xpg@ill@value{#1}{abjad numeral}% -\else% -\ifnum#1<\z@\space\xpg@ill@value{#1}{abjad numeral}% - \else% - \ifnum#1<10\expandafter\abj@num@i@iso\number#1% - \else% - \ifnum#1<100\expandafter\abj@num@ii\number#1% - \else% - \ifnum#1<\@m\expandafter\abj@num@iii\number#1% - \else% - \ifnum#1<\@M\expandafter\abj@num@iv\number#1%since #1<2000, we must have 1000 - \fi - \fi - \fi - \fi - \fi -\fi -} -\def\abjad@zero{} -\def\abjad@three{ج\ifabjad@jim@notail\char"200D\fi} -\def\abj@num@i@iso#1{% - \ifcase#1\or ا\or ب\or\abjad@three\or د% - \or ه\char"200D\or و\or ز\or ح\or ط\fi% - \ifnum#1=\z@\abjad@zero\fi} -\def\abj@num@i#1{% - \ifcase#1\or ا\or ب\or\abjad@three\or د% - \or ه\or و\or ز\or ح\or ط\fi% - \ifnum#1=\z@\abjad@zero\fi} -\def\abj@num@ii#1{% - \ifcase#1\or ي\or ك\or ل\or م\or ن% - \or س\or ع\or ف\or ص\fi% - \ifnum#1=\z@\fi\abj@num@i} -\def\abj@num@iii#1{% - \ifcase#1\or ق\or ر\or ش\or ت\or ث% - \or خ\or ذ\or ض\or ظ\fi% - \ifnum#1=\z@\fi\abj@num@ii} -\def\abj@num@iv#1{% - \ifcase#1\or غ\fi - \ifnum#1=\z@\fi\abj@num@iii} -} - \def\abjadmaghribi#1{% \ifnum#1>1999\xpg@ill@value{#1}{abjad}% \else @@ -192,7 +160,6 @@ \fi } - %maghribi س -> ص ص -> ض ش -> س ض -> ظ ظ -> غ غ -> ش \def\abj@maghribi@num@ii#1{% \ifcase#1\or ي\or ك\or ل\or م\or ن% @@ -207,90 +174,89 @@ \ifnum#1=\z@\fi\abj@maghribi@num@iii} \def\arabic@numbers{% - \let\@latinalph\@alph% - \let\@latinAlph\@Alph% + \let\@origalph\@alph% + \let\@origAlph\@Alph% \let\@alph\abjad% \let\@Alph\abjad% } \def\noarabic@numbers{% - \let\@alph\@latinalph% - \let\@Alph\@latinAlph% + \let\@alph\@origalph% + \let\@Alph\@origAlph% } \def\arabic@globalnumbers{% - \let\default@arabic\@arabic% - \let\@arabic\arabicnumber% - % For some reason these need to be set separately: - \renewcommand\thefootnote{\protect\arabicnumber{\c@footnote}}% - %%\ifcsundef{thechapter}{}{\renewcommand\thechapter{\protect\arabicnumber{\c@chapter}}}% <<<<<<<<<< - %%\ifcsundef{thesection}{}{\renewcommand\thesection{\protect\arabicnumber{\c@section}}}% <<<<<<<<<< - } + \let\orig@arabic\@arabic% + \let\@arabic\arabicnumber% + \renewcommand\thefootnote{\protect\arabicnumber{\c@footnote}}% + } \def\noarabic@globalnumbers{ - \let\@arabic\default@arabic% + \let\@arabic\orig@arabic% \renewcommand\thefootnote{\protect\number{\c@footnote}}% - %%\ifcsundef{thechapter}{}{\renewcommand\thechapter{\protect\number{\c@chapter}}}% <<<<<<<<<< - %%\ifcsundef{thesection}{}{\renewcommand\thesection{\protect\number{\c@section}}}% <<<<<<<<<< } \def\arabic@language{\language=\l@arabic} \def\arabic@font{% \@ifundefined{arabicfont}{% + \rmfamilylatin% \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt \zf@check@ot@script{arab}% - \if@tempswa% + \if@tempswa \addfontfeature{Script=Arabic}% - \else% + \else \PackageError{polyglossia}{^^J - The current font does not contain the Arabic script!^^J - Please define \string\arabicfont\space with \string\newfontfamily}% - \fi% - }% + The current font does not contain the Arabic script!^^J + Please define \string\arabicfont\space with \string\newfontfamily}% + \fi}% {\arabicfont}% } -% TODO add setup to define Sans and Mono Arabic fonts if desired \def\arabic@font@sf{% \@ifundefined{arabicfontsf}{% -% \sffamily% FIXME +% \sffamilylatin% % \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt -% \zf@check@ot@script{arab}% -% \if@tempswa% -% \addfontfeature{Script=Arabic}% -% \else% - \arabic@font% -% \fi% +% \zf@check@ot@script{arab}% +% \if@tempswa% +% \addfontfeature{Script=Arabic}% +% \else% + \arabic@font% +% \fi% }% {\arabicfontsf}% } \def\arabic@font@tt{% \@ifundefined{arabicfonttt}{% -% \ttfamily% FIXME +% \ttfamilylatin% % \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt -% \zf@check@ot@script{arab}% -% \if@tempswa% -% \addfontfeature{Script=Arabic}% -% \else% - \arabic@font% -% \fi% +% \zf@check@ot@script{arab}% +% \if@tempswa% +% \addfontfeature{Script=Arabic}% +% \else% + \arabic@font% +% \fi% }% {\arabicfonttt}% } \def\selectnormalfontarabic{% + %\edef\@tempa{\if\normalfont\sffamily\noexpand\arabic@font@sf\else + % \if\normalfont\ttfamily\noexpand\arabic@font@tt\else + % \noexpand\arabic@font\fi\fi}% \let\normalfont=\arabic@font% \let\rmfamily=\arabic@font% \let\sffamily=\arabic@font@sf% \let\ttfamily=\arabic@font@tt% - \def\reset@font{\normalfont}} + \def\reset@font{\normalfont}% + %\expand\@tempa% + } \def\blockextras@arabic{% - \let\@@MakeUppercase\MakeUppercase% + \let\orig@MakeUppercase\MakeUppercase% \def\MakeUppercase##1{##1}% % TODO disable \@Roman and \@roman ? } \def\noextras@arabic{% - \let\MakeUppercase\@@MakeUppercase% + \let\MakeUppercase\orig@MakeUppercase% } \endinput |