%% %% 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'.