diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf | 158 |
1 files changed, 72 insertions, 86 deletions
diff --git a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf index 75556ea167b..6ef01edb1df 100644 --- a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf +++ b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf @@ -1,6 +1,8 @@ \ProvidesFile{gloss-farsi.ldf}[polyglossia: module for farsi] \RequirePackage{bidi} +\RequirePackage{arabicnumbers} \RequirePackage{farsical} +\RequirePackage{hijrical} \makeatletter \ifx\l@farsi\@undefined @@ -13,27 +15,40 @@ \newif\if@western@numerals \def\tmp@western{western} \define@key{farsi}{numerals}[eastern]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@western\@western@numeralstrue\else% - \@western@numeralsfalse% - \fi} + \def\@tmpa{#1}% + \ifx\@tmpa\tmp@western\@western@numeralstrue\else% + \@western@numeralsfalse% + \fi} + +%this is needed for \abjad in arabicnumbers.sty +\def\tmp@true{true} +\define@key{farsi}{abjadjimnotail}[true]{% + \def\@tmpa{#1}% + \ifx\@tmpa\tmp@true\abjad@jim@notailtrue% + \else + \abjad@jim@notailfalse + \fi} -% NOT YET USED +% NOT YET USED \define@key{farsi}{locale}[default]{% - \def\@farsi@locale{#1}} + \def\@farsi@locale{#1}} %TODO add option for CALENDAR \setkeys{farsi}{locale,numerals} \def\farsigregmonth#1{\ifcase#1% - \or ژانویه\or فوریه\or مارس\or آوریل\or مه\or ژوئن\or ژوئیه؛\or ژویه\or اوت\or سپتامبر\or اکتبر\or نوامبر\or دسامبر\fi} + \or ژانویه\or فوریه\or مارس\or آوریل\or مه\or ژوئن\or ژوئیه\or اوت\or سپتامبر\or اکتبر\or نوامبر\or دسامبر\fi} \def\farsimonth#1{\ifcase#1% - \or کانون ثانی\or شباط\or اذار%؛\or ادار + \or کانون ثانی\or شباط\or اذار%%or ادار \or نیسان\or ایار\or حزیران\or تموز\or آب\or ایلول\or تشرین اول\or تشرین ثانی\or کانون اول\fi} +%\Hijritoday is now locale-aware and will format the date with this macro: +\DefineFormatHijriDate{farsi}{\@ensure@RTL{% +\farsinumber{\value{Hijriday}}\space\HijriMonthArabic{\value{Hijrimonth}}\space\farsinumber{\value{Hijriyear}}}} + \def\captionsfarsi{% -\def\prefacename{\@ensure@RTL{پیشگفتار}}% +\def\prefacename{\@ensure@RTL{پیشگفتار}}% \def\refname{\@ensure@RTL{مراجع}}% \def\abstractname{\@ensure@RTL{چکیده}}% \def\bibname{\@ensure@RTL{کتابنامه}}% @@ -46,69 +61,37 @@ \def\figurename{\@ensure@RTL{شكل}}% \def\tablename{\@ensure@RTL{جدول}}% \def\partname{\@ensure@RTL{بخش}}% -%\def\enclname{\@ensure@RTL{}}%<-- Needs translation -%\def\ccname{\@ensure@RTL{}}%<-- Needs translation -%\def\headtoname{\@ensure@RTL{}}%<-- Needs translation +\def\enclname{\@ensure@RTL{پیوست}}% +\def\ccname{\@ensure@RTL{رونوشت}}% +\def\headtoname{\@ensure@RTL{به}}% \def\pagename{\@ensure@RTL{صفحة}}% -%\def\seename{\@ensure@RTL{}}%<-- Needs translation -%\def\alsoname{\@ensure@RTL{}}%<-- Needs translation +\def\seename{\@ensure@RTL{ببینید}}% +\def\alsoname{\@ensure@RTL{نیز ببینید}}% \def\proofname{\@ensure@RTL{برهان}}% -\def\glossaryname{\@ensure@RTL{لغتنامه}}%<-- Needs to be checked +\def\glossaryname{\@ensure@RTL{دانشنامه}}% } \def\datefarsi{% \def\today{\@ensure@RTL{\farsinumber\day\space\farsigregmonth{\month}\space\farsinumber\year}}% } -\def\farsinumber#1{\if@western@numerals\RL{\number#1}\else% -\ifnum\XeTeXcharglyph"06F0 > 0% -{\protect\addfontfeature{Mapping=farsidigits}\number#1}% -\else% -{\protect\addfontfeature{Mapping=arabicdigits}\number#1}% -\fi\fi} +\def\farsinumber#1{% + \if@western@numerals + \number#1% + \else + \ifnum\XeTeXcharglyph"06F0 > 0% + \farsidigits{\number#1}% + %%{\protect\addfontfeature{Mapping=farsidigits}\number#1}% + \else% + \arabicdigits{\number#1}% + %%{\protect\addfontfeature{Mapping=arabicdigits}\number#1}% + \fi + \fi} %\def\farsinum#1{\expandafter\farsinumber\csname c@#1\endcsname} %\def\farsibracenum#1{(\expandafter\farsinumber\csname c@#1\endcsname)} %\def\farsiornatebracenum#1{\char"FD3E\expandafter\farsinumber\csname c@#1\endcsname\char"FD3F} %\def\farsialph#1{\expandafter\@farsialph\csname c@#1\endcsname} -\ifcsdef{abjad}{}{% -\def\abjad#1{% -\ifnum#1>1999 \xpg@warning{Illegal value (#1) for abjad numeral} {#1} -\else - \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for abjad numeral}% - \else - \ifnum#1<10\expandafter\abj@num@i\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\abj@num@i#1{% - \ifcase#1\or ا\or ب\or ج\char"200D\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\farsi@numbers{% \let\@latinalph\@alph% \let\@latinAlph\@Alph% @@ -121,50 +104,53 @@ } \def\farsi@globalnumbers{% - \let\@latinarabic\@arabic% + \let\orig@arabic\@arabic% \let\@arabic\farsinumber% % For some reason \thefootnote needs to be set separately: \renewcommand\thefootnote{\protect\farsinumber{\c@footnote}}% } \def\nofarsi@globalnumbers{ - \let\@arabic\@latinarabic% + \let\@arabic\orig@arabic% \renewcommand\thefootnote{\protect\number{\c@footnote}}% } \def\farsi@language{\language=\l@farsi} \def\farsi@font{% -\font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt -\@ifundefined{farsifont}{% - \@ifundefined{arabicfont}{% - \zf@check@ot@script{arab}% - \if@tempswa% - \addfontfeature{Script=Arabic}% - \else% - \PackageError{polyglossia}{^^J - The current font does not contain the Arabic script!^^J - Please define \string\arabicfont\space or \string\farsifont\space with \newfontfamily}% - \fi% - \zf@check@ot@lang{FAR}% - \if@tempswa\addfontfeature{Language=Farsi}\fi - }% - {\arabicfont% - \zf@check@ot@lang{FAR}% - \if@tempswa\addfontfeature{Language=Farsi}\fi} - }% -{\farsifont}} + \@ifundefined{farsifont}{% + \@ifundefined{arabicfont}{% + \normalfontlatin% + \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 + \PackageError{polyglossia}{^^J + The current font does not contain the Arabic script!^^J + Please define \string\arabicfont\space or \string\farsifont\space with \newfontfamily}% + \fi + \zf@check@ot@lang{FAR}% + \if@tempswa\addfontfeature{Language=Farsi}\fi}% + {\arabicfont% + \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt + \zf@check@ot@lang{FAR}% + \if@tempswa\addfontfeature{Language=Farsi}\fi}% + }% + {\farsifont}% +} + % TODO add setup to define Sans and Mono Arabic fonts if desired \def\farsi@font@sf{% \@ifundefined{farsifontsf}{% % \sffamily% FIXME % \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 \farsi@font% -% \fi% +% \fi }% {\farsifontsf}% } @@ -173,11 +159,11 @@ % \ttfamily% FIXME % \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 \farsi@font% -% \fi% +% \fi }% {\farsifonttt}% } |