diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/polyglossia/babel-hebrewalph.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/polyglossia/babel-hebrewalph.def | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglossia/babel-hebrewalph.def b/Master/texmf-dist/tex/latex/polyglossia/babel-hebrewalph.def new file mode 100644 index 00000000000..3158d7c7a35 --- /dev/null +++ b/Master/texmf-dist/tex/latex/polyglossia/babel-hebrewalph.def @@ -0,0 +1,79 @@ +\ProvidesFile{babel-hebrewalph.def} + [2010/03/02 % + Babel definitions for Hebrew numerals^^J + Adapted from hebrew.ldf (2005/03/30 v2.3h)] +\newif\if@gim@apost % whether we print apostrophes (gereshayim) +\newif\if@gim@final % whether we use final or initial letters +\newrobustcmd*{\hebrewnumeral}[1] % no apostrophe, no final letters + {{\@gim@finalfalse\@gim@apostfalse\@hebrew@numeral{#1}}} +\newrobustcmd*{\Hebrewnumeral}[1] % apostrophe, no final letters + {{\@gim@finalfalse\@gim@aposttrue\@hebrew@numeral{#1}}} +\newrobustcmd*{\Hebrewnumeralfinal}[1] % apostrophe, final letters + {{\@gim@finaltrue\@gim@aposttrue\@hebrew@numeral{#1}}} +\newcommand*{\@hebrew@numeral}[1]{% + \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for Hebrew numeral}% + \else + \@tempcnta=#1\@tempcntb=#1\relax + \divide\@tempcntb by 1000 + \ifnum\@tempcntb=0\gim@nomil\@tempcnta\relax + \else{\@gim@apostfalse\@gim@finalfalse\@hebrew@numeral\@tempcntb}׳% + \multiply\@tempcntb by 1000\relax + \advance\@tempcnta by -\@tempcntb\relax + \gim@nomil\@tempcnta\relax + \fi + \fi +} +\def\hebrew@alph@zero{} +\newcommand*{\gim@nomil}[1]{\@tempcnta=#1\@gim@prevfalse + \@tempcntb=\@tempcnta\divide\@tempcntb by 100\relax % hundreds digit + \ifcase\@tempcntb % print nothing if no hundreds + \or\gim@print{100}{ק}% + \or\gim@print{200}{ר}% + \or\gim@print{300}{ש}% + \or\gim@print{400}{ת}% + \or ת\@gim@prevtrue\gim@print{500}{ק}% + \or ת\@gim@prevtrue\gim@print{600}{ר}% + \or ת\@gim@prevtrue\gim@print{700}{ש}% + \or ת\@gim@prevtrue\gim@print{800}{ת}% + \or ת\@gim@prevtrue ת\gim@print{900}{ק}% + \fi + \@tempcntb=\@tempcnta\divide\@tempcntb by 10\relax % tens digit + \ifcase\@tempcntb % print nothing if no tens + \or % number between 10 and 19 + \ifnum\@tempcnta = 16 \gim@print {9}{ט}% tet-zayin + \else\ifnum\@tempcnta = 15 \gim@print {9}{ט}% tet-vav + \else \gim@print{10}{י}% + \fi % \@tempcnta = 15 + \fi % \@tempcnta = 16 + \or\gim@print{20}{\if@gim@final ך\else כ\fi}% + \or\gim@print{30}{ל}% + \or\gim@print{40}{\if@gim@final ם\else מ\fi}% + \or\gim@print{50}{\if@gim@final ן\else נ\fi}% + \or\gim@print{60}{ס}% + \or\gim@print{70}{ע}% + \or\gim@print{80}{\if@gim@final ף\else פ\fi}% + \or\gim@print{90}{\if@gim@final ץ\else צ\fi}% + \fi + \ifcase\@tempcnta + \hebrew@alph@zero% empty but can be defined if desired + \or\gim@print{1}{א}% + \or\gim@print{2}{ב}% + \or\gim@print{3}{ג}% + \or\gim@print{4}{ד}% + \or\gim@print{5}{ה}% + \or\gim@print{6}{ו}% + \or\gim@print{7}{ז}% + \or\gim@print{8}{ח}% + \or\gim@print{9}{ט}% + \fi +} +\newif\if@gim@prev % flag if a previous letter has been typeset +\newcommand*{\gim@print}[2]{% #2 is a letter, #1 is its value. + \advance\@tempcnta by -#1\relax% deduct the value from the remainder + \ifnum\@tempcnta=0% if this is the last letter + \if@gim@prev\if@gim@apost ״\fi#2% + \else#2\if@gim@apost ׳\fi\fi% + \else{\@gim@finalfalse#2}\@gim@prevtrue\fi} +\def\Alphfinal#1{\expandafter\@Alphfinal\csname c@#1\endcsname}% +\providecommand*{\@Alphfinal}[1]{\protect\Hebrewnumeralfinal{\number#1}} +\endinput |