summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/sauerj/zahl2string.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:05:53 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:05:53 +0000
commit41f6accf239ea62e4f979c592c6728a616245d9f (patch)
tree82ddb0e632b70a669169fbeff04a0a83e9604fa5 /Master/texmf-dist/tex/latex/sauerj/zahl2string.sty
parentf5c952da6432767eac2421ed364423601fb9c844 (diff)
sauerj
git-svn-id: svn://tug.org/texlive/trunk@1291 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/sauerj/zahl2string.sty')
-rw-r--r--Master/texmf-dist/tex/latex/sauerj/zahl2string.sty163
1 files changed, 163 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/sauerj/zahl2string.sty b/Master/texmf-dist/tex/latex/sauerj/zahl2string.sty
new file mode 100644
index 00000000000..d01da1afad8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/sauerj/zahl2string.sty
@@ -0,0 +1,163 @@
+%%
+%% This is file `zahl2string.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zahl2string.dtx (with options: `package')
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zahl2string}
+ [2004/11/25 v1.2.1 format a number as german words]
+\newcommand{\numstring}[1]{%
+\expandafter\@numstring\csname c@#1\endcsname%
+}
+\newcommand{\Numstring}[1]{%
+\expandafter\@Numstring\csname c@#1\endcsname%
+}
+\newcommand{\ordstring}[1]{%
+\expandafter\@ordstring\csname c@#1\endcsname%
+}
+\newcommand{\Ordstring}[1]{%
+\expandafter\@Ordstring\csname c@#1\endcsname%
+}
+\newcommand{\@numstring}[1]{%
+\ns@numstr{#1}\ns@neunzehns{null}{}%
+}
+\newcommand\@Numstring[1]{%
+\expandafter\@@Numstring\expandafter{\number#1}%
+}
+\DeclareRobustCommand{\@@Numstring}[1]{%
+\protected@edef\@tempa{\@numstring{#1}}%
+\expandafter\MakeUppercase\@tempa%
+}
+\newcommand{\@ordstring}[1]{%
+\ns@numstr{#1}\ns@neunzehnord{null\-te}{te}%
+}
+\newcommand{\@Ordstring}[1]{%
+\expandafter\@@Ordstring\expandafter{\number#1}%
+}
+\DeclareRobustCommand{\@@Ordstring}[1]{%
+\protected@edef\@tempa{\@ordstring{#1}}%
+\expandafter\MakeUppercase\@tempa%
+}
+\let\numstr\@numstring%
+\let\Numstr\@Numstring%
+\let\ordstr\@ordstring%
+\let\Ordstr\@Ordstring%
+\DeclareOption{publicnumstr}{%
+\PackageWarning{zahl2string}{Option `publicnumstr' is %
+deprecated and will be removed in version 1.3}%
+}
+\def\ns@numoutofrange#1#2{%
+\number#1#2%
+}
+
+\DeclareOption{showrangeerrors}{%
+\def\ns@numoutofrange#1#2{%
+\PackageError{zahl2string}{The number `#1' is too large %
+to be formatted using zahl2string}{The largest possible %
+number is 999,999,999.}
+}%
+}
+\ProcessOptions\relax
+\def\ns@numstr#1#2#3#4{%
+\ifnum\number#1<\@ne%
+#3%
+\else\ifnum\number#1<1000000000 %
+\expandafter\ns@numstring\expandafter{\number#1}#2%
+\else%
+\ns@numoutofrange{#1}{#4}%
+\fi\fi%
+}
+\def\ns@numstring#1#2{%
+\expandafter\ns@@numstring%
+\ifcase%
+\ifnum#1<10 1%
+\else\ifnum#1<100 2%
+\else\ifnum#1<\@m 3%
+\else\ifnum#1<\@M 4%
+\else\ifnum#1<100000 5%
+\else\ifnum#1<1000000 6%
+\else\ifnum#1<10000000 7%
+\else\ifnum#1<100000000 8%
+\else9%
+\fi\fi\fi\fi\fi\fi\fi\fi %
+\or00000000#1% case 1: Add 8 leading zeros
+\or0000000#1% case 2: Add 7 leading zeros
+\or000000#1% case 3: Add 6 leading zeros
+\or00000#1% case 4: Add 5 leading zeros
+\or0000#1% case 5: Add 4 leading zeros
+\or000#1% case 6: Add 3 leading zeros
+\or00#1% case 7: Add 2 leading zeros
+\or0#1% case 8: Add 1 leading zero
+\or#1% case 9: Add no leading zeros
+\or%
+\@nil#2%
+\fi%
+}
+\def\ns@@numstring#1#2#3#4#5#6#7\or#8\@nil#9{%
+\ifnum#1#2#3>\z@
+\ns@million#1#2#3%
+\ifnum#4#5#6>\z@\space\fi%
+\fi%
+\ifnum#4#5#6>\z@%
+\ns@hundred#4#5#6{#1#2#3}{#4#5}\ns@neunzehn%
+\ifnum#4#5#6>\@ne\-\fi%
+tau\-send%
+\ifnum#7>\z@\-\fi%
+\fi%
+\ns@hundred#7{#4#5#6}1#9%
+}
+\def\ns@million#1#2#3{%
+\ifnum#1#2#3=\@ne%
+\ns@hundred#1#2#301\ns@neunzehne%
+\space%
+Mil\-lion%
+\else%
+\ns@hundred#1#2#301\ns@neunzehns%
+\space%
+Mil\-lio\-nen%
+\fi%
+}
+\def\ns@hundred#1#2#3#4#5#6{%
+\ifnum#1>\z@%
+\ifnum#4#1>\@ne\ns@neunzehn#1\-\fi%
+hun\-dert%
+\ifnum#2#3>\z@\-\fi%
+\fi%
+\ifnum#2#3<20 %
+\ifnum#5#2#3>\@ne#6{#2#3}\fi%
+\else%
+\ifnum#3>\z@\ns@neunzehn#3\-und\-\fi%
+\ns@neunzig#2%
+#60%
+\fi%
+}
+\def\ns@neunzehn#1{%
+\ifcase#1\@empty\or ein\or zwei\or drei\or vier\or f\"unf\or sechs\or%
+sie\-ben\or acht\or neun\or zehn\or elf\or zw\"olf\or drei\-zehn\or%
+vier\-zehn\or f\"unf\-zehn\or sech\-zehn\or sieb\-zehn\or%
+acht\-zehn\or neun\-zehn\fi%
+}
+\def\ns@neunzehns#1{%
+\ifcase#1\@empty\or eins\else\ns@neunzehn{#1}\fi%
+}
+\def\ns@neunzehne#1{%
+\ifcase#1\@empty\or ei\-ne\else\ns@neunzehn{#1}\fi%
+}
+\def\ns@neunzehnord#1{%
+\ifcase#1\-ste\or er\-ste\or zwei\-te\or drit\-te\or vier\-te\or%
+f\"unf\-te\or sech\-ste\or sieb\-te\or ach\-te\or neun\-te\or%
+zehn\-te\or elf\-te\or zw\"olf\-te\or drei\-zehn\-te\or%
+vier\-zehn\-te\or f\"unf\-zehn\-te\or sech\-zehn\-te\or%
+sieb\-zehn\-te\or acht\-zehn\-te\or neun\-zehn\-te\fi%
+}
+\def\ns@neunzig#1{%
+\ifcase#1\or\or zwan\-zig\or drei\ss ig\or vier\-zig\or%
+f\"unf\-zig\or sech\-zig\or sieb\-zig\or acht\-zig\or%
+neun\-zig\fi%
+}
+\endinput
+%%
+%% End of file `zahl2string.sty'.