summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf')
-rw-r--r--Master/texmf-dist/tex/xelatex/polyglossia/gloss-arabic.ldf136
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