[latex3-commits] [latex3/babel] main: Numerals also in Yiddish. (37c8335)

github at latex-project.org github at latex-project.org
Fri Aug 11 21:39:59 CEST 2023


Repository : https://github.com/latex3/babel
On branch  : main
Link       : https://github.com/latex3/babel/commit/37c8335caad536913cb3b7056daf28268131222d

>---------------------------------------------------------------

commit 37c8335caad536913cb3b7056daf28268131222d
Author: Javier <email at localhost>
Date:   Fri Aug 11 21:39:59 2023 +0200

    Numerals also in Yiddish.


>---------------------------------------------------------------

37c8335caad536913cb3b7056daf28268131222d
 locale/he/babel-he.ini      |   4 +-
 locale/yi/babel-yi.ini      |   5 +-
 locale/yi/babel-yiddish.tex | 122 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 127 insertions(+), 4 deletions(-)

diff --git a/locale/he/babel-he.ini b/locale/he/babel-he.ini
index d2f0851..68ad739 100644
--- a/locale/he/babel-he.ini
+++ b/locale/he/babel-he.ini
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.8
-date = 2023-07-08
+version = 1.9
+date = 2023-09-09
 name.local = עברית
 name.english = Hebrew
 name.babel = hebrew
diff --git a/locale/yi/babel-yi.ini b/locale/yi/babel-yi.ini
index b63b080..4ae822a 100644
--- a/locale/yi/babel-yi.ini
+++ b/locale/yi/babel-yi.ini
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.6
-date = 2023-07-08
+version = 1.7
+date = 2023-09-10
 name.local = ייִדיש
 name.english = Yiddish
 name.babel = yiddish
@@ -24,6 +24,7 @@ script.tag.opentype = hebr
 level = 1
 encodings = LHE H8
 derivate = no
+require.babel = yiddish
 
 [captions]
 preface = 
diff --git a/locale/yi/babel-yiddish.tex b/locale/yi/babel-yiddish.tex
index c5bcb2d..ef56033 100644
--- a/locale/yi/babel-yiddish.tex
+++ b/locale/yi/babel-yiddish.tex
@@ -9,4 +9,126 @@
 \fi
 \BabelBeforeIni{yi}{%
 }
+
+\ifcase\bbl at engine\else
+
+\def\BabelHebrewNumeralMarkerSingle{׳}% Number is a single letter
+\def\BabelHebrewNumeralMarkerFinal{״}%  Before final letter
+
+\@namedef{bbl at cntr@letters.long@\CurrentOption}#1%
+  {\expandafter\@hebrew@@numeral\expandafter{\the\numexpr#1}0}
+
+\@namedef{bbl at cntr@letters.gershayim@\CurrentOption}#1%
+  {\expandafter\@hebrew@@numeral\expandafter{\the\numexpr#1}1}
+
+\@namedef{bbl at cntr@letters.final@\CurrentOption}#1%
+  {\expandafter\@hebrew@@numeral\expandafter{\the\numexpr#1}2}
+
+\def\hebrew at num@trunc#1#2{%
+  \ifnum\numexpr #1-#2*\numexpr #1/#2\relax<0
+    \the\numexpr #1/#2-1\relax
+  \else
+    \the\numexpr #1/#2\relax
+  \fi}
+
+\def\@hebrew@@numeral#1#2{%
+  \ifnum#1<\z@\bbl at error{Invalid Hebrew numeral (<0)}{Not supported.}%
+  \else
+    \ifnum#1<1000
+		    \hebrew at num@nomil{#1}{#2}%
+    \else
+      \ifnum#1>999999 % For forward compatibility
+        \bbl at error{Hebrew numeral too large (>999999)}%
+          {Currently this is the limit.}%
+        #1%
+      \else
+        \expandafter\@hebrew@@numeral\expandafter
+          {\the\numexpr\hebrew at num@trunc{#1}{1000}}0%
+        \BabelHebrewNumeralMarkerSingle
+        \expandafter\hebrew at num@nomil\expandafter
+          {\the\numexpr #1-1000*\hebrew at num@trunc{#1}{1000}}{#2}%
+      \fi
+    \fi
+  \fi}
+
+\def\hebrew at alph@zero{}
+\def\hebrew at num@nomil#1#2{%
+  \ifcase\hebrew at num@trunc{#1}{100}%    print nothing if no hundreds
+    \or ק\ifnum#2>0 \ifnum#1=100 \BabelHebrewNumeralMarkerSingle\fi\fi
+    \or ר\ifnum#2>0 \ifnum#1=200 \BabelHebrewNumeralMarkerSingle\fi\fi
+    \or ש\ifnum#2>0 \ifnum#1=300 \BabelHebrewNumeralMarkerSingle\fi\fi
+    \or ת\ifnum#2>0 \ifnum#1=400 \BabelHebrewNumeralMarkerSingle\fi\fi
+    \or ת\ifnum#2>0 \ifnum#1=500 \BabelHebrewNumeralMarkerFinal\fi\fi ק%
+    \or ת\ifnum#2>0 \ifnum#1=600 \BabelHebrewNumeralMarkerFinal\fi\fi ר%
+    \or ת\ifnum#2>0 \ifnum#1=700 \BabelHebrewNumeralMarkerFinal\fi\fi ש%
+    \or ת\ifnum#2>0 \ifnum#1=800 \BabelHebrewNumeralMarkerFinal\fi\fi ת%
+    \or תת\ifnum#2>0 \ifnum#1=900 \BabelHebrewNumeralMarkerFinal\fi\fi ק%
+  \fi
+  \ifnum\the\numexpr #1-100*\hebrew at num@trunc{#1}{100} = 16
+    \ifnum#2>0 ט\BabelHebrewNumeralMarkerFinal ז\else טז\fi  % tet-zayin
+  \else\ifnum\the\numexpr #1 - 100*\hebrew at num@trunc{#1}{100} = 15
+    \ifnum#2>0 ט\BabelHebrewNumeralMarkerFinal ו\else טו\fi  % tet-vav
+  \else  % print nothing if no tens:
+  \ifcase\expandafter\hebrew at num@trunc\expandafter
+      {\the\numexpr#1-100*\hebrew at num@trunc{#1}{100}}{10}% 
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 י\else
+        \ifnum#2>0 \ifnum#1=10 י\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal י\fi\else י\fi
+      \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 כ\else
+         \ifnum#2>0 \ifnum#1>20 \BabelHebrewNumeralMarkerFinal\fi\fi
+         \if #22ך\else כ\fi\ifnum#2>0 \ifnum#1=20 \BabelHebrewNumeralMarkerSingle\fi\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 ל\else
+         \ifnum#2>0 \ifnum#1=30 ל\BabelHebrewNumeralMarkerSingle
+         \else\BabelHebrewNumeralMarkerFinal ל\fi\else ל\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 מ\else
+         \ifnum#2>0 \ifnum#1>40 \BabelHebrewNumeralMarkerFinal\fi\fi
+         \if #22ם\else מ\fi\ifnum#2>0 \ifnum#1=40 \BabelHebrewNumeralMarkerSingle\fi\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 נ\else
+         \ifnum#2>0 \ifnum#1>50 \BabelHebrewNumeralMarkerFinal\fi\fi
+         \if #22ן\else נ\fi\ifnum#2>0 \ifnum#1=50 \BabelHebrewNumeralMarkerSingle\fi\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 ס\else
+         \ifnum#2>0 \ifnum#1=60 ס\BabelHebrewNumeralMarkerSingle
+         \else\BabelHebrewNumeralMarkerFinal ס\fi\else ס\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 ע\else
+         \ifnum#2>0 \ifnum#1=70 ע\BabelHebrewNumeralMarkerSingle
+         \else\BabelHebrewNumeralMarkerFinal ע\fi\else ע\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 פ\else
+         \ifnum#2>0 \ifnum#1>80 \BabelHebrewNumeralMarkerFinal\fi\fi
+         \if #22ף\else פ\fi\ifnum#2>0 \ifnum#1=80 \BabelHebrewNumeralMarkerSingle\fi\fi
+       \fi
+    \or\ifnum\numexpr #1-10*\hebrew at num@trunc{#1}{10}>0 צ\else
+        \ifnum#2>0 \ifnum#1>90 \BabelHebrewNumeralMarkerFinal\fi\fi
+        \if #22ץ\else צ\fi\ifnum#2>0 \ifnum#1=90 \BabelHebrewNumeralMarkerSingle \fi\fi
+      \fi
+  \fi
+  \ifcase\numexpr #1-10*\hebrew at num@trunc{#1}{10}%
+      \hebrew at alph@zero %  empty but can be defined if desired
+      \or\ifnum#2>0 \ifnum#1=1 א\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal א\fi\else א\fi
+      \or\ifnum#2>0 \ifnum#1=2 ב\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ב\fi\else ב\fi
+      \or\ifnum#2>0 \ifnum#1=3 ג\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ג\fi\else ג\fi
+      \or\ifnum#2>0 \ifnum#1=4 ד\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ד\fi\else ד\fi
+      \or\ifnum#2>0 \ifnum#1=5 ה\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ה\fi\else ה\fi
+      \or\ifnum#2>0 \ifnum#1=6 ו\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ו\fi\else ו\fi
+      \or\ifnum#2>0 \ifnum#1=7 ז\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ז\fi\else ז\fi
+      \or\ifnum#2>0 \ifnum#1=8 ח\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ח\fi\else ח\fi
+      \or\ifnum#2>0 \ifnum#1=9 ט\BabelHebrewNumeralMarkerSingle
+        \else\BabelHebrewNumeralMarkerFinal ט\fi\else ט\fi
+  \fi\fi\fi}
+\fi
+
 \endinput
\ No newline at end of file





More information about the latex3-commits mailing list.