%% %% This is file `fc-german.def', %% generated with the docstrip utility. %% %% The original source files were: %% %% fmtcount.dtx (with options: `fc-german.def,package') %% %% fmtcount.dtx %% Copyright 2013 Nicola Talbot and Vincent Belaïche %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license of (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Nicola Talbot and Vincent Belaïche. %% %% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fcnumparser.sty, fcprefix.sty, fmtcount.sty, fc-american.def, fc-british.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %%\subsection{Prefixes} %%\label{sec:latin-prefixes} %% %%\begin{definition}[\DescribeMacro{\latinnumeralstring}] %%\cs{latinnumeralstring}\marg{counter}\oarg{prefix options} %%\end{definition} %% %%\begin{definition}[\DescribeMacro{\latinnumeralstringnum}] %%\cs{latinnumeralstringnum}\marg{number}\oarg{prefix options} %%\end{definition} \ProvidesFCLanguage{german}[2013/08/17]% \newcommand{\@ordinalMgerman}[2]{% \edef#2{\number#1\relax.}% }% \global\let\@ordinalMgerman\@ordinalMgerman \newcommand{\@ordinalFgerman}[2]{% \edef#2{\number#1\relax.}% }% \global\let\@ordinalFgerman\@ordinalFgerman \newcommand{\@ordinalNgerman}[2]{% \edef#2{\number#1\relax.}% }% \global\let\@ordinalNgerman\@ordinalNgerman \gdef\@@unitstringgerman#1{% \ifcase#1% null% \or eins% \or zwei% \or drei% \or vier% \or f\"unf% \or sechs% \or sieben% \or acht% \or neun% \fi }% \gdef\@@tenstringgerman#1{% \ifcase#1% \or zehn% \or zwanzig% \or drei{\ss}ig% \or vierzig% \or f\"unfzig% \or sechzig% \or siebzig% \or achtzig% \or neunzig% \or einhundert% \fi }% \providecommand*{\einhundert}{einhundert}% \providecommand*{\eintausend}{eintausend}% \global\let\einhundert\einhundert \global\let\eintausend\eintausend \gdef\@@teenstringgerman#1{% \ifcase#1% zehn% \or elf% \or zw\"olf% \or dreizehn% \or vierzehn% \or f\"unfzehn% \or sechzehn% \or siebzehn% \or achtzehn% \or neunzehn% \fi }% \DeclareRobustCommand{\@numberstringMgerman}[2]{% \let\@unitstring=\@@unitstringgerman \let\@teenstring=\@@teenstringgerman \let\@tenstring=\@@tenstringgerman \@@numberstringgerman{#1}{#2}% }% \global\let\@numberstringMgerman\@numberstringMgerman \global\let\@numberstringFgerman=\@numberstringMgerman \global\let\@numberstringNgerman=\@numberstringMgerman \DeclareRobustCommand{\@NumberstringMgerman}[2]{% \@numberstringMgerman{#1}{\@@num@str}% \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% }% \global\let\@NumberstringMgerman\@NumberstringMgerman \global\let\@NumberstringFgerman=\@NumberstringMgerman \global\let\@NumberstringNgerman=\@NumberstringMgerman \DeclareRobustCommand{\@ordinalstringMgerman}[2]{% \let\@unitthstring=\@@unitthstringMgerman \let\@teenthstring=\@@teenthstringMgerman \let\@tenthstring=\@@tenthstringMgerman \let\@unitstring=\@@unitstringgerman \let\@teenstring=\@@teenstringgerman \let\@tenstring=\@@tenstringgerman \def\@thousandth{tausendster}% \def\@hundredth{hundertster}% \@@ordinalstringgerman{#1}{#2}% }% \global\let\@ordinalstringMgerman\@ordinalstringMgerman \DeclareRobustCommand{\@ordinalstringFgerman}[2]{% \let\@unitthstring=\@@unitthstringFgerman \let\@teenthstring=\@@teenthstringFgerman \let\@tenthstring=\@@tenthstringFgerman \let\@unitstring=\@@unitstringgerman \let\@teenstring=\@@teenstringgerman \let\@tenstring=\@@tenstringgerman \def\@thousandth{tausendste}% \def\@hundredth{hundertste}% \@@ordinalstringgerman{#1}{#2}% }% \global\let\@ordinalstringFgerman\@ordinalstringFgerman \DeclareRobustCommand{\@ordinalstringNgerman}[2]{% \let\@unitthstring=\@@unitthstringNgerman \let\@teenthstring=\@@teenthstringNgerman \let\@tenthstring=\@@tenthstringNgerman \let\@unitstring=\@@unitstringgerman \let\@teenstring=\@@teenstringgerman \let\@tenstring=\@@tenstringgerman \def\@thousandth{tausendstes}% \def\@hundredth{hunderstes}% \@@ordinalstringgerman{#1}{#2}% }% \global\let\@ordinalstringNgerman\@ordinalstringNgerman \DeclareRobustCommand{\@OrdinalstringMgerman}[2]{% \@ordinalstringMgerman{#1}{\@@num@str}% \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% }% \global\let\@OrdinalstringMgerman\@OrdinalstringMgerman \DeclareRobustCommand{\@OrdinalstringFgerman}[2]{% \@ordinalstringFgerman{#1}{\@@num@str}% \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% }% \global\let\@OrdinalstringFgerman\@OrdinalstringFgerman \DeclareRobustCommand{\@OrdinalstringNgerman}[2]{% \@ordinalstringNgerman{#1}{\@@num@str}% \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% }% \global\let\@OrdinalstringNgerman\@OrdinalstringNgerman \gdef\@@unitthstringMgerman#1{% \ifcase#1% nullter% \or erster% \or zweiter% \or dritter% \or vierter% \or f\"unfter% \or sechster% \or siebter% \or achter% \or neunter% \fi }% \gdef\@@tenthstringMgerman#1{% \ifcase#1% \or zehnter% \or zwanzigster% \or drei{\ss}igster% \or vierzigster% \or f\"unfzigster% \or sechzigster% \or siebzigster% \or achtzigster% \or neunzigster% \fi }% \gdef\@@teenthstringMgerman#1{% \ifcase#1% zehnter% \or elfter% \or zw\"olfter% \or dreizehnter% \or vierzehnter% \or f\"unfzehnter% \or sechzehnter% \or siebzehnter% \or achtzehnter% \or neunzehnter% \fi }% \gdef\@@unitthstringFgerman#1{% \ifcase#1% nullte% \or erste% \or zweite% \or dritte% \or vierte% \or f\"unfte% \or sechste% \or siebte% \or achte% \or neunte% \fi }% \gdef\@@tenthstringFgerman#1{% \ifcase#1% \or zehnte% \or zwanzigste% \or drei{\ss}igste% \or vierzigste% \or f\"unfzigste% \or sechzigste% \or siebzigste% \or achtzigste% \or neunzigste% \fi }% \gdef\@@teenthstringFgerman#1{% \ifcase#1% zehnte% \or elfte% \or zw\"olfte% \or dreizehnte% \or vierzehnte% \or f\"unfzehnte% \or sechzehnte% \or siebzehnte% \or achtzehnte% \or neunzehnte% \fi }% \gdef\@@unitthstringNgerman#1{% \ifcase#1% nulltes% \or erstes% \or zweites% \or drittes% \or viertes% \or f\"unftes% \or sechstes% \or siebtes% \or achtes% \or neuntes% \fi }% \gdef\@@tenthstringNgerman#1{% \ifcase#1% \or zehntes% \or zwanzigstes% \or drei{\ss}igstes% \or vierzigstes% \or f\"unfzigstes% \or sechzigstes% \or siebzigstes% \or achtzigstes% \or neunzigstes% \fi }% \gdef\@@teenthstringNgerman#1{% \ifcase#1% zehntes% \or elftes% \or zw\"olftes% \or dreizehntes% \or vierzehntes% \or f\"unfzehntes% \or sechzehntes% \or siebzehntes% \or achtzehntes% \or neunzehntes% \fi }% \gdef\@@numberunderhundredgerman#1#2{% \ifnum#1<10\relax \ifnum#1>0\relax \eappto#2{\@unitstring{#1}}% \fi \else \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{10}% \ifnum#1<20\relax \eappto#2{\@teenstring{\@tmpstrctr}}% \else \ifnum\@tmpstrctr=0\relax \else \eappto#2{\@unitstring{\@tmpstrctr}und}% \fi \@tmpstrctr=#1\relax \divide\@tmpstrctr by 10\relax \eappto#2{\@tenstring{\@tmpstrctr}}% \fi \fi }% \gdef\@@numberstringgerman#1#2{% \ifnum#1>99999\relax \PackageError{fmtcount}{Out of range}% {This macro only works for values less than 100000}% \else \ifnum#1<0\relax \PackageError{fmtcount}{Negative numbers not permitted}% {This macro does not work for negative numbers, however you can try typing "minus" first, and then pass the modulus of this number}% \fi \fi \def#2{}% \@strctr=#1\relax \divide\@strctr by 1000\relax \ifnum\@strctr>1\relax \@@numberunderhundredgerman{\@strctr}{#2}% \appto#2{tausend}% \else \ifnum\@strctr=1\relax \eappto#2{\eintausend}% \fi \fi \@strctr=#1\relax \@modulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>1\relax \eappto#2{\@unitstring{\@strctr}hundert}% \else \ifnum\@strctr=1\relax \ifnum#1>1000\relax \appto#2{einhundert}% \else \eappto#2{\einhundert}% \fi \fi \fi \@strctr=#1\relax \@modulo{\@strctr}{100}% \ifnum#1=0\relax \def#2{null}% \else \ifnum\@strctr=1\relax \appto#2{eins}% \else \@@numberunderhundredgerman{\@strctr}{#2}% \fi \fi }% \gdef\@@numberunderhundredthgerman#1#2{% \ifnum#1<10\relax \eappto#2{\@unitthstring{#1}}% \else \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{10}% \ifnum#1<20\relax \eappto#2{\@teenthstring{\@tmpstrctr}}% \else \ifnum\@tmpstrctr=0\relax \else \eappto#2{\@unitstring{\@tmpstrctr}und}% \fi \@tmpstrctr=#1\relax \divide\@tmpstrctr by 10\relax \eappto#2{\@tenthstring{\@tmpstrctr}}% \fi \fi }% \gdef\@@ordinalstringgerman#1#2{% \ifnum#1>99999\relax \PackageError{fmtcount}{Out of range}% {This macro only works for values less than 100000}% \else \ifnum#1<0\relax \PackageError{fmtcount}{Negative numbers not permitted}% {This macro does not work for negative numbers, however you can try typing "minus" first, and then pass the modulus of this number}% \fi \fi \def#2{}% \@strctr=#1\relax \divide\@strctr by 1000\relax \ifnum\@strctr>1\relax \@@numberunderhundredgerman{\@strctr}{#2}% \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{1000}% \ifnum\@tmpstrctr=0\relax \eappto#2{\@thousandth}% \else \appto#2{tausend}% \fi \else \ifnum\@strctr=1\relax \ifnum#1=1000\relax \eappto#2{\@thousandth}% \else \eappto#2{\eintausend}% \fi \fi \fi \@strctr=#1\relax \@modulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>1\relax \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}% \ifnum\@tmpstrctr=0\relax \ifnum\@strctr=1\relax \eappto#2{\@hundredth}% \else \eappto#2{\@unitstring{\@strctr}\@hundredth}% \fi \else \eappto#2{\@unitstring{\@strctr}hundert}% \fi \else \ifnum\@strctr=1\relax \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}% \ifnum\@tmpstrctr=0\relax \eappto#2{\@hundredth}% \else \ifnum#1>1000\relax \appto#2{einhundert}% \else \eappto#2{\einhundert}% \fi \fi \fi \fi \@strctr=#1\relax \@modulo{\@strctr}{100}% \ifthenelse{\@strctr=0 \and #1>0}{}{% \@@numberunderhundredthgerman{\@strctr}{#2}% }% }% \FCloadlang{germanb}% \endinput %% %% End of file `fc-german.def'.