diff options
author | Karl Berry <karl@freefriends.org> | 2012-09-25 22:58:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-09-25 22:58:08 +0000 |
commit | 5972810af729299af222498461a459998df88906 (patch) | |
tree | f32df205f6b61c129fda672be1edd763854cafc8 /Master/texmf-dist/tex/latex | |
parent | d21e43ac989ba93e0f327fc32fd99f3b1c3f0c6e (diff) |
fmtcount (25sep12)
git-svn-id: svn://tug.org/texlive/trunk@27805 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
18 files changed, 3289 insertions, 2107 deletions
diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-UKenglish.def b/Master/texmf-dist/tex/latex/fmtcount/fc-UKenglish.def index 8ba1ed71ac7..4be8ac95ba1 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-UKenglish.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-UKenglish.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-UKenglish.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,8 +38,18 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-UKenglish}[2007/06/14] -\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{} +%%\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{UKenglish}[2012/06/18] +\FCloadlang{english} \let\@ordinalMUKenglish\@ordinalMenglish \let\@ordinalFUKenglish\@ordinalMenglish \let\@ordinalNUKenglish\@ordinalMenglish diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-USenglish.def b/Master/texmf-dist/tex/latex/fmtcount/fc-USenglish.def index 124ec302585..606655ca0b2 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-USenglish.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-USenglish.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-USenglish.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,8 +38,18 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-USenglish}[2007/06/14] -\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{} +%%\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{USenglish}[2012/06/18] +\FCloadlang{english} \let\@ordinalMUSenglish\@ordinalMenglish \let\@ordinalFUSenglish\@ordinalMenglish \let\@ordinalNUSenglish\@ordinalMenglish diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-american.def b/Master/texmf-dist/tex/latex/fmtcount/fc-american.def new file mode 100644 index 00000000000..d2ee36b0105 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-american.def @@ -0,0 +1,70 @@ +%% +%% This is file `fc-american.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fc-american.def,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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{american}[2012/06/18] +\FCloadlang{USenglish} +\let\@ordinalMamerican\@ordinalMUSenglish +\let\@ordinalFamerican\@ordinalMUSenglish +\let\@ordinalNamerican\@ordinalMUSenglish +\let\@numberstringMamerican\@numberstringMUSenglish +\let\@numberstringFamerican\@numberstringMUSenglish +\let\@numberstringNamerican\@numberstringMUSenglish +\let\@NumberstringMamerican\@NumberstringMUSenglish +\let\@NumberstringFamerican\@NumberstringMUSenglish +\let\@NumberstringNamerican\@NumberstringMUSenglish +\let\@ordinalstringMamerican\@ordinalstringMUSenglish +\let\@ordinalstringFamerican\@ordinalstringMUSenglish +\let\@ordinalstringNamerican\@ordinalstringMUSenglish +\let\@OrdinalstringMamerican\@OrdinalstringMUSenglish +\let\@OrdinalstringFamerican\@OrdinalstringMUSenglish +\let\@OrdinalstringNamerican\@OrdinalstringMUSenglish +\endinput +%% +%% End of file `fc-american.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-british.def b/Master/texmf-dist/tex/latex/fmtcount/fc-british.def index 26985cbf76a..215e90da10a 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-british.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-british.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-british.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,8 +38,18 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-british}[2007/06/14] -\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{} +%%\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{british}[2012/06/18] +\FCloadlang{english} \let\@ordinalMbritish\@ordinalMenglish \let\@ordinalFbritish\@ordinalMenglish \let\@ordinalNbritish\@ordinalMenglish diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-english.def b/Master/texmf-dist/tex/latex/fmtcount/fc-english.def index 1aafbd806fe..1bc3e6f09ea 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-english.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-english.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-english.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,7 +38,17 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-english}[2007/05/26] +%%\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{english}[2012/06/18] \newcommand*{\@ordinalMenglish}[2]{% \def\@fc@ord{}% \@orgargctr=#1\relax diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-francais.def b/Master/texmf-dist/tex/latex/fmtcount/fc-francais.def new file mode 100644 index 00000000000..401ba2d683e --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-francais.def @@ -0,0 +1,71 @@ +%% +%% This is file `fc-francais.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fc-francais.def,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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{francais}[2012/06/18] +\FCloadlang{french} +\let\@ordinalMfrancais=\@ordinalMfrench +\let\@ordinalFfrancais=\@ordinalFfrench +\let\@ordinalNfrancais=\@ordinalNfrench +\let\@numberstringMfrancais=\@numberstringMfrench +\let\@numberstringFfrancais=\@numberstringFfrench +\let\@numberstringNfrancais=\@numberstringNfrench +\let\@NumberstringMfrancais=\@NumberstringMfrench +\let\@NumberstringFfrancais=\@NumberstringFfrench +\let\@NumberstringNfrancais=\@NumberstringNfrench +\let\@ordinalstringMfrancais=\@ordinalstringMfrench +\let\@ordinalstringFfrancais=\@ordinalstringFfrench +\let\@ordinalstringNfrancais=\@ordinalstringNfrench +\let\@OrdinalstringMfrancais=\@OrdinalstringMfrench +\let\@OrdinalstringFfrancais=\@OrdinalstringFfrench +\let\@OrdinalstringNfrancais=\@OrdinalstringNfrench + +\endinput +%% +%% End of file `fc-francais.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-french.def b/Master/texmf-dist/tex/latex/fmtcount/fc-french.def index dedfca9b0c3..2d268659dd4 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-french.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-french.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-french.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,7 +38,156 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-french.def}[2007/05/26] +%%\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{french}[2012/06/18] +\RequirePackage{fcprefix} +\def\fc@french@set@plural#1#2#3#4#5#6{% + \ifthenelse{\equal{#2}{reformed}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{#3}% + }{% + \ifthenelse{\equal{#2}{traditional}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{#4}% + }{% + \ifthenelse{\equal{#2}{reformed o}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{#5}% + }{% + \ifthenelse{\equal{#2}{traditional o}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{#6}% + }{% + \ifthenelse{\equal{#2}{always}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{0}% + }{% + \ifthenelse{\equal{#2}{never}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{1}% + }{% + \ifthenelse{\equal{#2}{multiple}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{2}% + }{% + \ifthenelse{\equal{#2}{multiple g-last}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{3}% + }{% + \ifthenelse{\equal{#2}{multiple l-last}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{4}% + }{% + \ifthenelse{\equal{#2}{multiple lng-last}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{5}% + }{% + \ifthenelse{\equal{#2}{multiple ng-last}}{% + \expandafter\def\csname fc@frenchoptions@#1@plural\endcsname{6}% + }{% + \PackageError{fmtcount}{Unexpected argument}{% + `#2' was unexpected: french option `#1 plural' expects `reformed', `traditional', + `reformed o', `traditional o', `always', `never', `multiple', `multiple g-last', + `multiple l-last', `multiple lng-last', or `multiple ng-last'.% + }}}}}}}}}}}}} +\def\@tempa#1#2#3{% + \define@key{fcfrench}{#1 plural}[reformed]{% + \fc@french@set@plural{#1}{##1}{#2}{#2}{#3}{#3}% + }% +} +\@tempa{vingt}{4}{5} +\@tempa{cent}{4}{5} +\@tempa{mil}{0}{0} +\@tempa{n-illion}{2}{6} +\@tempa{n-illiard}{2}{6} +\define@key{fcfrench}{all plural}[reformed]{% + \csname KV@fcfrench@vingt plural\endcsname{#1}% + \csname KV@fcfrench@cent plural\endcsname{#1}% + \csname KV@fcfrench@mil plural\endcsname{#1}% + \csname KV@fcfrench@n-illion plural\endcsname{#1}% + \csname KV@fcfrench@n-illiard plural\endcsname{#1}% +} +\define@key{fcfrench}{dash or space}[reformed]{% + \ifthenelse{\equal{#1}{traditional}}{% + \let\fc@frenchoptions@supermillion@dos\space% + \let\fc@frenchoptions@submillion@dos\space + }{% + \ifthenelse{\equal{#1}{reformed}\or\equal{#1}{1990}}{% + \let\fc@frenchoptions@supermillion@dos\space + \def\fc@frenchoptions@submillion@dos{-}% + }{% + \ifthenelse{\equal{#1}{always}}{% + \def\fc@frenchoptions@supermillion@dos{-}% + \def\fc@frenchoptions@submillion@dos{-}% + }{% + \PackageError{fmtcount}{Unexpected argument}{% + French option `dash or space' expects `always', `reformed' or `traditional' + } + }% + }% + }% +} +\define@key{fcfrench}{scale}[recursive]{% + \ifthenelse{\equal{#1}{long}}{% + \let\fc@poweroften\fc@@pot@longscalefrench + }{% + \ifthenelse{\equal{#1}{recursive}}{% + \let\fc@poweroften\fc@@pot@recursivefrench + }{% + \ifthenelse{\equal{#1}{short}}{% + \let\fc@poweroften\fc@@pot@shortscalefrench + }{% + \PackageError{fmtcount}{Unexpected argument}{% + French option `scale' expects `long', `recursive' or `short' + } + }% + }% + }% +} +\define@key{fcfrench}{n-illiard upto}[infinity]{% + \ifthenelse{\equal{#1}{infinity}}{% + \def\fc@longscale@nilliard@upto{0}% + }{% + \ifthenelse{\equal{#1}{infty}}{% + \def\fc@longscale@nilliard@upto{0}% + }{% + \if Q\ifnum9<1#1Q\fi\else + \PackageError{fmtcount}{Unexpected argument}{% + French option `milliard threshold' expects `infinity', or equivalently `infty', or a non negative + integer.}% + \fi + \def\fc@longscale@nilliard@upto{#1}% + }}% +} +\def\@tempa#1{% + \define@key{fcfrench}{#1}[]{% + \PackageError{fmtcount}{Unexpected argument}{French option with key `#1' does not take + any value}}% + \expandafter\def\csname KV@fcfrench@#1@default\endcsname{% + \def\fmtcount@french{#1}}% +}% +\@tempa{france}\@tempa{swiss}\@tempa{belgian}% +\define@key{fcfrench}{dialect}[france]{% + \ifthenelse{\equal{#1}{france} + \or\equal{#1}{swiss} + \or\equal{#1}{belgian}}{% + \def\fmtcount@french{#1}}{% + \PackageError{fmtcount}{Invalid value `#1' to french option dialect key} + {Option `french' can only take the values `france', + `belgian' or `swiss'}}} +\define@key{fcfrench}{mil plural mark}[le]{% + \def\fc@frenchoptions@mil@plural@mark{#1}} +\def\fc@UpperCaseFirstLetter#1#2\@nil{% + \uppercase{#1}#2} + +\def\fc@CaseIden#1\@nil{% + #1% +} +\def\fc@UpperCaseAll#1\@nil{% + \uppercase{#1}% +} + +\let\fc@case\fc@CaseIden + \newcommand*{\@ordinalMfrench}[2]{% \iffmtord@abbrv \edef#2{\number#1\relax\noexpand\fmtord{e}}% @@ -53,16 +202,17 @@ \iffmtord@abbrv \edef#2{\number#1\relax\noexpand\fmtord{e}}% \else - \ifnum#1=1\relax - \edef#2{\number#1\relax\noexpand\fmtord{ere}}% + \ifnum#1=1 % + \edef#2{\number#1\relax\noexpand\fmtord{i\`ere}}% \else - \edef#2{\number#1\relax\noexpand\fmtord{eme}}% + \edef#2{\number#1\relax\noexpand\fmtord{i\`eme}}% \fi \fi} \let\@ordinalNfrench\@ordinalMfrench \newcommand*{\@@unitstringfrench}[1]{% -\ifcase#1\relax -zero% +\noexpand\fc@case +\ifcase#1 % +z\'ero% \or un% \or deux% \or trois% @@ -73,947 +223,933 @@ zero% \or huit% \or neuf% \fi -} -\newcommand*{\@@unitstringFfrench}[1]{% -\ifnum#1=1\relax -une% -\else\@@unitstringfrench{#1}% -\fi +\noexpand\@nil } \newcommand*{\@@tenstringfrench}[1]{% -\ifcase#1\relax +\noexpand\fc@case +\ifcase#1 % \or dix% \or vingt% \or trente% \or quarante% \or cinquante% \or soixante% -\or septente% +\or septante% \or huitante% -\or nonente% +\or nonante% \or cent% \fi +\noexpand\@nil } \newcommand*{\@@teenstringfrench}[1]{% -\ifcase#1\relax -dix% +\noexpand\fc@case +\ifcase#1 % + dix% \or onze% \or douze% \or treize% \or quatorze% \or quinze% \or seize% -\or dix-sept% -\or dix-huit% -\or dix-neuf% +\or dix\noexpand\@nil-\noexpand\fc@case sept% +\or dix\noexpand\@nil-\noexpand\fc@case huit% +\or dix\noexpand\@nil-\noexpand\fc@case neuf% \fi +\noexpand\@nil } \newcommand*{\@@seventiesfrench}[1]{% \@tenstring{6}% -\ifnum#1=1\relax -\ \@andname\ +\ifnum#1=1 % +\fc@frenchoptions@submillion@dos\@andname\fc@frenchoptions@submillion@dos \else -% \fi \@teenstring{#1}% } -\newcommand*{\@@eightiesfrench}[1]{% -\@unitstring{4}-\@tenstring{2}% -\ifnum#1>0 --\@unitstring{#1}% +\newcommand*\@@eightiesfrench[1]{% +\fc@case quatre\@nil-\noexpand\fc@case vingt% +\ifnum#1>0 % + \ifnum\fc@frenchoptions@vingt@plural=0 % vingt plural=always + s% + \fi + \noexpand\@nil + -\@unitstring{#1}% \else -s% + \ifcase\fc@frenchoptions@vingt@plural\space + s% 0: always + \or + % 1: never + \or + s% 2: multiple + \or + % 3: multiple g-last + \ifnum\count0=\count6\ifnum\count9=0 s\fi\fi + \or + % 4: multiple l-last + \ifnum\count9=1 % + \else + s% + \fi + \or + % 5: multiple lng-last + \ifnum\count9=1 % + \else + \ifnum\count0>0 % + s% + \fi + \fi + \or + % or 6: multiple ng-last + \ifnum\count0>0 % + s% + \fi + \fi + \noexpand\@nil \fi } \newcommand*{\@@ninetiesfrench}[1]{% -\@unitstring{4}-\@tenstring{2}-\@teenstring{#1}% +\fc@case quatre\@nil-\noexpand\fc@case vingt% +\ifnum\fc@frenchoptions@vingt@plural=0 % vingt plural=always + s% +\fi +\noexpand\@nil +-\@teenstring{#1}% } \newcommand*{\@@seventiesfrenchswiss}[1]{% \@tenstring{7}% \ifnum#1=1\ \@andname\ \fi \ifnum#1>1-\fi -\ifnum#1>0\@unitstring{#1}\fi +\ifnum#1>0 \@unitstring{#1}\fi } \newcommand*{\@@eightiesfrenchswiss}[1]{% \@tenstring{8}% \ifnum#1=1\ \@andname\ \fi \ifnum#1>1-\fi -\ifnum#1>0\@unitstring{#1}\fi +\ifnum#1>0 \@unitstring{#1}\fi } \newcommand*{\@@ninetiesfrenchswiss}[1]{% \@tenstring{9}% \ifnum#1=1\ \@andname\ \fi \ifnum#1>1-\fi -\ifnum#1>0\@unitstring{#1}\fi -} -\newcommand*{\@@Unitstringfrench}[1]{% -\ifcase#1\relax -Zero% -\or Un% -\or Deux% -\or Trois% -\or Quatre% -\or Cinq% -\or Six% -\or Sept% -\or Huit% -\or Neuf% -\fi -} -\newcommand*{\@@UnitstringFfrench}[1]{% -\ifnum#1=1\relax -Une% -\else \@@Unitstringfrench{#1}% -\fi -} -\newcommand*{\@@Tenstringfrench}[1]{% -\ifcase#1\relax -\or Dix% -\or Vingt% -\or Trente% -\or Quarante% -\or Cinquante% -\or Soixante% -\or Septente% -\or Huitante% -\or Nonente% -\or Cent% -\fi +\ifnum#1>0 \@unitstring{#1}\fi } -\newcommand*{\@@Teenstringfrench}[1]{% -\ifcase#1\relax -Dix% -\or Onze% -\or Douze% -\or Treize% -\or Quatorze% -\or Quinze% -\or Seize% -\or Dix-Sept% -\or Dix-Huit% -\or Dix-Neuf% -\fi +\newcommand*\fc@french@common{% + \let\@unitstring=\@@unitstringfrench + \let\@teenstring=\@@teenstringfrench + \let\@tenstring=\@@tenstringfrench + \def\@hundred{cent}% + \def\@andname{et}% } \DeclareRobustCommand{\@numberstringMfrenchswiss}[2]{% -\let\@unitstring=\@@unitstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenstring=\@@tenstringfrench +\let\fc@case\fc@CaseIden +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundred{cent}\def\@thousand{mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\@empty +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@numberstringMfrenchfrance}[2]{% -\let\@unitstring=\@@unitstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenstring=\@@tenstringfrench +\let\fc@case\fc@CaseIden +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{cent}\def\@thousand{mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\@empty +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@numberstringMfrenchbelgian}[2]{% -\let\@unitstring=\@@unitstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenstring=\@@tenstringfrench +\let\fc@case\fc@CaseIden +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{cent}\def\@thousand{mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\@empty +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \let\@numberstringMfrench=\@numberstringMfrenchfrance \DeclareRobustCommand{\@numberstringFfrenchswiss}[2]{% -\let\@unitstring=\@@unitstringFfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenstring=\@@tenstringfrench +\let\fc@case\fc@CaseIden +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundred{cent}\def\@thousand{mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\fc@@nbrstr@Fpreamble +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@numberstringFfrenchfrance}[2]{% -\let\@unitstring=\@@unitstringFfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenstring=\@@tenstringfrench +\let\fc@case\fc@CaseIden +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{cent}\def\@thousand{mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\fc@@nbrstr@Fpreamble +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@numberstringFfrenchbelgian}[2]{% -\let\@unitstring=\@@unitstringFfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenstring=\@@tenstringfrench +\let\fc@case\fc@CaseIden +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{cent}\def\@thousand{mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\fc@@nbrstr@Fpreamble +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \let\@numberstringFfrench=\@numberstringFfrenchfrance \let\@ordinalstringNfrench\@ordinalstringMfrench \DeclareRobustCommand{\@NumberstringMfrenchswiss}[2]{% -\let\@unitstring=\@@Unitstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenstring=\@@Tenstringfrench +\let\fc@case\fc@UpperCaseFirstLetter +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundred{Cent}\def\@thousand{Mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\@empty +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@NumberstringMfrenchfrance}[2]{% -\let\@unitstring=\@@Unitstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenstring=\@@Tenstringfrench +\let\fc@case\fc@UpperCaseFirstLetter +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{Cent}\def\@thousand{Mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\@empty +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@NumberstringMfrenchbelgian}[2]{% -\let\@unitstring=\@@Unitstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenstring=\@@Tenstringfrench +\let\fc@case\fc@UpperCaseFirstLetter +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{Cent}\def\@thousand{Mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\@empty +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \let\@NumberstringMfrench=\@NumberstringMfrenchfrance \DeclareRobustCommand{\@NumberstringFfrenchswiss}[2]{% -\let\@unitstring=\@@UnitstringFfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenstring=\@@Tenstringfrench +\let\fc@case\fc@UpperCaseFirstLetter +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundred{Cent}\def\@thousand{Mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\fc@@nbrstr@Fpreamble +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@NumberstringFfrenchfrance}[2]{% -\let\@unitstring=\@@UnitstringFfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenstring=\@@Tenstringfrench +\let\fc@case\fc@UpperCaseFirstLetter +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{Cent}\def\@thousand{Mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\fc@@nbrstr@Fpreamble +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \DeclareRobustCommand{\@NumberstringFfrenchbelgian}[2]{% -\let\@unitstring=\@@UnitstringFfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenstring=\@@Tenstringfrench +\let\fc@case\fc@UpperCaseFirstLetter +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\def\@hundred{Cent}\def\@thousand{Mille}% -\def\@andname{et}% +\let\fc@nbrstr@preamble\fc@@nbrstr@Fpreamble +\let\fc@nbrstr@postamble\@empty \@@numberstringfrench{#1}{#2}} \let\@NumberstringFfrench=\@NumberstringFfrenchfrance \let\@NumberstringNfrench\@NumberstringMfrench \DeclareRobustCommand{\@ordinalstringMfrenchswiss}[2]{% -\ifnum#1=1\relax -\def#2{premier}% -\else -\let\@unitthstring=\@@unitthstringfrench -\let\@unitstring=\@@unitstringfrench -\let\@teenthstring=\@@teenthstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenthstring=\@@tenthstringfrench -\let\@tenstring=\@@tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrenchswiss -\let\@ninetieths=\@@ninetiethsfrenchswiss +\let\fc@case\fc@CaseIden +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundredth{centi\`eme}\def\@hundred{cent}% -\def\@thousandth{mili\`eme}\def\@thousand{mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} +\newcommand*\fc@@firstfrench{premier} +\newcommand*\fc@@firstFfrench{premi\`ere} \DeclareRobustCommand{\@ordinalstringMfrenchfrance}[2]{% -\ifnum#1=1\relax -\def#2{premier}% -\else -\let\@unitthstring=\@@unitthstringfrench -\let\@unitstring=\@@unitstringfrench -\let\@teenthstring=\@@teenthstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenthstring=\@@tenthstringfrench -\let\@tenstring=\@@tenstringfrench -\let\@seventieths=\@@seventiethsfrench -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@CaseIden +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@teenstringfrench -\def\@hundredth{centi\`eme}\def\@hundred{cent}% -\def\@thousandth{mili\`eme}\def\@thousand{mille}% -\def\@andname{et}% -\@@ordinalstringfrench{#1}{#2}% -\fi} +\@@ordinalstringfrench{#1}{#2}} \DeclareRobustCommand{\@ordinalstringMfrenchbelgian}[2]{% -\ifnum#1=1\relax -\def#2{premier}% -\else -\let\@unitthstring=\@@unitthstringfrench -\let\@unitstring=\@@unitstringfrench -\let\@teenthstring=\@@teenthstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenthstring=\@@tenthstringfrench -\let\@tenstring=\@@tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrenchswiss +\let\fc@case\fc@CaseIden +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@teenstringfrench -\def\@hundredth{centi\`eme}\def\@hundred{cent}% -\def\@thousandth{mili\`eme}\def\@thousand{mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \let\@ordinalstringMfrench=\@ordinalstringMfrenchfrance \DeclareRobustCommand{\@ordinalstringFfrenchswiss}[2]{% -\ifnum#1=1\relax -\def#2{premi\`ere}% -\else -\let\@unitthstring=\@@unitthstringfrench -\let\@unitstring=\@@unitstringFfrench -\let\@teenthstring=\@@teenthstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenthstring=\@@tenthstringfrench -\let\@tenstring=\@@tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrenchswiss -\let\@ninetieths=\@@ninetiethsfrenchswiss +\let\fc@case\fc@CaseIden +\let\fc@first=\fc@@firstFfrench +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundredth{centi\`eme}\def\@hundred{cent}% -\def\@thousandth{mili\`eme}\def\@thousand{mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \DeclareRobustCommand{\@ordinalstringFfrenchfrance}[2]{% -\ifnum#1=1\relax -\def#2{premi\`ere}% -\else -\let\@unitthstring=\@@unitthstringfrench -\let\@unitstring=\@@unitstringFfrench -\let\@teenthstring=\@@teenthstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenthstring=\@@tenthstringfrench -\let\@tenstring=\@@tenstringfrench -\let\@seventieths=\@@seventiethsfrench -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@CaseIden +\let\fc@first=\fc@@firstFfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@teenstringfrench -\def\@hundredth{centi\`eme}\def\@hundred{cent}% -\def\@thousandth{mili\`eme}\def\@thousand{mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \DeclareRobustCommand{\@ordinalstringFfrenchbelgian}[2]{% -\ifnum#1=1\relax -\def#2{premi\`ere}% -\else -\let\@unitthstring=\@@unitthstringfrench -\let\@unitstring=\@@unitstringFfrench -\let\@teenthstring=\@@teenthstringfrench -\let\@teenstring=\@@teenstringfrench -\let\@tenthstring=\@@tenthstringfrench -\let\@tenstring=\@@tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@CaseIden +\let\fc@first=\fc@@firstFfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@teenstringfrench -\def\@hundredth{centi\`eme}\def\@hundred{cent}% -\def\@thousandth{mili\`eme}\def\@thousand{mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \let\@ordinalstringFfrench=\@ordinalstringFfrenchfrance \let\@ordinalstringNfrench\@ordinalstringMfrench \DeclareRobustCommand{\@OrdinalstringMfrenchswiss}[2]{% -\ifnum#1=1\relax -\def#2{Premi\`ere}% -\else -\let\@unitthstring=\@@Unitthstringfrench -\let\@unitstring=\@@Unitstringfrench -\let\@teenthstring=\@@Teenthstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenthstring=\@@Tenthstringfrench -\let\@tenstring=\@@Tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrenchswiss -\let\@ninetieths=\@@ninetiethsfrenchswiss +\let\fc@case\fc@UpperCaseFirstLetter +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundredth{Centi\`eme}\def\@hundred{Cent}% -\def\@thousandth{Mili\`eme}\def\@thousand{Mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \DeclareRobustCommand{\@OrdinalstringMfrenchfrance}[2]{% -\ifnum#1=1\relax -\def#2{Premi\`ere}% -\else -\let\@unitthstring=\@@Unitthstringfrench -\let\@unitstring=\@@Unitstringfrench -\let\@teenthstring=\@@Teenthstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenthstring=\@@Tenthstringfrench -\let\@tenstring=\@@Tenstringfrench -\let\@seventieths=\@@seventiethsfrench -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@UpperCaseFirstLetter +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@Teenstringfrench -\def\@hundredth{Centi\`eme}\def\@hundred{Cent}% -\def\@thousandth{Mili\`eme}\def\@thousand{Mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \DeclareRobustCommand{\@OrdinalstringMfrenchbelgian}[2]{% -\ifnum#1=1\relax -\def#2{Premi\`ere}% -\else -\let\@unitthstring=\@@Unitthstringfrench -\let\@unitstring=\@@Unitstringfrench -\let\@teenthstring=\@@Teenthstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenthstring=\@@Tenthstringfrench -\let\@tenstring=\@@Tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@UpperCaseFirstLetter +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@Teenstringfrench -\def\@hundredth{Centi\`eme}\def\@hundred{Cent}% -\def\@thousandth{Mili\`eme}\def\@thousand{Mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \let\@OrdinalstringMfrench=\@OrdinalstringMfrenchfrance \DeclareRobustCommand{\@OrdinalstringFfrenchswiss}[2]{% -\ifnum#1=1\relax -\def#2{Premi\`ere}% -\else -\let\@unitthstring=\@@Unitthstringfrench -\let\@unitstring=\@@UnitstringFfrench -\let\@teenthstring=\@@Teenthstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenthstring=\@@Tenthstringfrench -\let\@tenstring=\@@Tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrenchswiss -\let\@ninetieths=\@@ninetiethsfrenchswiss +\let\fc@case\fc@UpperCaseFirstLetter +\let\fc@first=\fc@@firstfrench +\fc@french@common \let\@seventies=\@@seventiesfrenchswiss \let\@eighties=\@@eightiesfrenchswiss \let\@nineties=\@@ninetiesfrenchswiss -\def\@hundredth{Centi\`eme}\def\@hundred{Cent}% -\def\@thousandth{Mili\`eme}\def\@thousand{Mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \DeclareRobustCommand{\@OrdinalstringFfrenchfrance}[2]{% -\ifnum#1=1\relax -\def#2{Premi\`ere}% -\else -\let\@unitthstring=\@@Unitthstringfrench -\let\@unitstring=\@@UnitstringFfrench -\let\@teenthstring=\@@Teenthstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenthstring=\@@Tenthstringfrench -\let\@tenstring=\@@Tenstringfrench -\let\@seventieths=\@@seventiethsfrench -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@UpperCaseFirstLetter +\let\fc@first=\fc@@firstFfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@Teenstringfrench -\def\@hundredth{Centi\`eme}\def\@hundred{Cent}% -\def\@thousandth{Mili\`eme}\def\@thousand{Mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \DeclareRobustCommand{\@OrdinalstringFfrenchbelgian}[2]{% -\ifnum#1=1\relax -\def#2{Premi\`ere}% -\else -\let\@unitthstring=\@@Unitthstringfrench -\let\@unitstring=\@@UnitstringFfrench -\let\@teenthstring=\@@Teenthstringfrench -\let\@teenstring=\@@Teenstringfrench -\let\@tenthstring=\@@Tenthstringfrench -\let\@tenstring=\@@Tenstringfrench -\let\@seventieths=\@@seventiethsfrenchswiss -\let\@eightieths=\@@eightiethsfrench -\let\@ninetieths=\@@ninetiethsfrench +\let\fc@case\fc@UpperCaseFirstLetter +\let\fc@first=\fc@@firstFfrench +\fc@french@common \let\@seventies=\@@seventiesfrench \let\@eighties=\@@eightiesfrench \let\@nineties=\@@ninetiesfrench -\let\@teenstring=\@@Teenstringfrench -\def\@hundredth{Centi\`eme}\def\@hundred{Cent}% -\def\@thousandth{Mili\`eme}\def\@thousand{Mille}% -\def\@andname{et}% \@@ordinalstringfrench{#1}{#2}% -\fi} +} \let\@OrdinalstringFfrench=\@OrdinalstringFfrenchfrance \let\@OrdinalstringNfrench\@OrdinalstringMfrench -\newcommand*{\@@unitthstringfrench}[1]{% -\ifcase#1\relax -zero% -\or uni\`eme% -\or deuxi\`eme% -\or troisi\`eme% -\or quatri\`eme% -\or cinqui\`eme% -\or sixi\`eme% -\or septi\`eme% -\or huiti\`eme% -\or neuvi\`eme% -\fi -} -\newcommand*{\@@tenthstringfrench}[1]{% -\ifcase#1\relax -\or dixi\`eme% -\or vingti\`eme% -\or trentri\`eme% -\or quaranti\`eme% -\or cinquanti\`eme% -\or soixanti\`eme% -\or septenti\`eme% -\or huitanti\`eme% -\or nonenti\`eme% -\fi -} -\newcommand*{\@@teenthstringfrench}[1]{% -\ifcase#1\relax -dixi\`eme% -\or onzi\`eme% -\or douzi\`eme% -\or treizi\`eme% -\or quatorzi\`eme% -\or quinzi\`eme% -\or seizi\`eme% -\or dix-septi\`eme% -\or dix-huiti\`eme% -\or dix-neuvi\`eme% -\fi -} -\newcommand*{\@@seventiethsfrenchswiss}[1]{% -\ifcase#1\relax -\@tenthstring{7}% -\or -\@tenstring{7} \@andname\ \@unitthstring{1}% -\else -\@tenstring{7}-\@unitthstring{#1}% -\fi} -\newcommand*{\@@eightiethsfrenchswiss}[1]{% -\ifcase#1\relax -\@tenthstring{8}% -\or -\@tenstring{8} \@andname\ \@unitthstring{1}% -\else -\@tenstring{8}-\@unitthstring{#1}% -\fi} -\newcommand*{\@@ninetiethsfrenchswiss}[1]{% -\ifcase#1\relax -\@tenthstring{9}% -\or -\@tenstring{9} \@andname\ \@unitthstring{1}% -\else -\@tenstring{9}-\@unitthstring{#1}% -\fi} -\newcommand*{\@@seventiethsfrench}[1]{% -\ifnum#1=0\relax -\@tenstring{6}% --% -\else -\@tenstring{6}% -\ \@andname\ -\fi -\@teenthstring{#1}% -} -\newcommand*{\@@eightiethsfrench}[1]{% -\ifnum#1>0\relax -\@unitstring{4}-\@tenstring{2}% --\@unitthstring{#1}% -\else -\@unitstring{4}-\@tenthstring{2}% -\fi -} -\newcommand*{\@@ninetiethsfrench}[1]{% -\@unitstring{4}-\@tenstring{2}-\@teenthstring{#1}% -} -\newcommand*{\@@Unitthstringfrench}[1]{% -\ifcase#1\relax -Zero% -\or Uni\`eme% -\or Deuxi\`eme% -\or Troisi\`eme% -\or Quatri\`eme% -\or Cinqui\`eme% -\or Sixi\`eme% -\or Septi\`eme% -\or Huiti\`eme% -\or Neuvi\`eme% -\fi +\@ifundefined{fc@@do@plural@mark}{}{\PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@@do@plural@mark'}} +\def\fc@@do@plural@mark#1{% + \ifcase\count10 % + #1% 0=always + \or% 1=never + \or% 2=multiple + \ifnum\count1>1 % + #1% + \fi + \or% 3= multiple g-last + \ifnum\count1>1 % + \ifnum\count0=\count6 % + #1% + \fi + \fi + \or% 4= multiple l-last + \ifnum\count1>1 % + \ifnum\count9=1 % + \else + #1% + \fi + \fi + \or% 5= multiple lng-last + \ifnum\count1>1 % + \ifnum\count9=1 % + \else + \if\count0>\count6 % + #1% + \fi + \fi + \fi + \or% 6= multiple ng-last + \ifnum\count1>1 % + \ifnum\count0>\count6 % + #1% + \fi + \fi + \fi } -\newcommand*{\@@Tenthstringfrench}[1]{% -\ifcase#1\relax -\or Dixi\`eme% -\or Vingti\`eme% -\or Trentri\`eme% -\or Quaranti\`eme% -\or Cinquanti\`eme% -\or Soixanti\`eme% -\or Septenti\`eme% -\or Huitanti\`eme% -\or Nonenti\`eme% -\fi +\@ifundefined{fc@@nbrstr@Fpreamble}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@@nbrstr@Fpreamble'}} +\def\fc@@nbrstr@Fpreamble{% + \fc@read@unit{\count1}{0}% + \ifnum\count1=1 % + \let\fc@case@save\fc@case + \def\fc@case{\noexpand\fc@case}% + \def\@nil{\noexpand\@nil}% + \let\fc@nbrstr@postamble\fc@@nbrstr@Fpostamble + \fi } -\newcommand*{\@@Teenthstringfrench}[1]{% -\ifcase#1\relax -Dixi\`eme% -\or Onzi\`eme% -\or Douzi\`eme% -\or Treizi\`eme% -\or Quatorzi\`eme% -\or Quinzi\`eme% -\or Seizi\`eme% -\or Dix-Septi\`eme% -\or Dix-Huiti\`eme% -\or Dix-Neuvi\`eme% -\fi +\def\fc@@nbrstr@Fpostamble{% + \let\fc@case\fc@case@save + \expandafter\fc@get@last@word\expandafter{\@tempa}\@tempb\@tempc + \def\@tempd{un}% + \ifx\@tempc\@tempd + \let\@tempc\@tempa + \edef\@tempa{\@tempb\fc@case une\@nil}% + \fi } -\newcommand*{\@@numberstringfrench}[2]{% -\ifnum#1>99999 -\PackageError{fmtcount}{Out of range}% -{This macro only works for values less than 100000}% -\else -\ifnum#1<0 -\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>9\relax - \@tmpstrctr=\@strctr - \divide\@strctr by 10\relax - \ifnum\@strctr>1\relax - \ifthenelse{\(\@strctr>6\)\and\(\@strctr<10\)}{% - \@modulo{\@tmpstrctr}{10}% - \ifnum\@strctr<8\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@seventies{\@tmpstrctr}}% - \else - \ifnum\@strctr<9\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@eighties{\@tmpstrctr}}% +\@ifundefined{fc@@pot@longscalefrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@@pot@longscalefrench'}} +\def\fc@@pot@longscalefrench#1#2#3{% + {% + \edef\@tempb{\number#1}% + \count1=\@tempb + \count2\count0 % + \divide\count2 by 6 % + \count3\count2 % + \multiply\count3 by 6 % + \count3-\count3 % + \advance\count3 by \count0 % + \ifnum\count0>0 % + \ifnum\count1>0 % + \edef\@temph{% + \ifnum\count2=0 % weight=3 + 1% + \else + \ifnum\count3>2 % + \ifnum\fc@longscale@nilliard@upto=0 % + 2% + \else + \ifnum\count2>\fc@longscale@nilliard@upto + 1% + \else + 2% + \fi + \fi + \else + 2% + \fi + \fi + }% + \ifnum\@temph=1 % + \count10=\fc@frenchoptions@mil@plural\space + \edef\@tempe{% + \noexpand\fc@case + mil% + \fc@@do@plural@mark\fc@frenchoptions@mil@plural@mark + \noexpand\@nil + }% \else - \ifnum\@strctr<10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@nineties{\@tmpstrctr}}% + % weight >= 6 + \expandafter\fc@@latin@cardinal@pefix\expandafter{\the\count2}\@tempg + % now form the xxx-illion(s) or xxx-illiard(s) word + \ifnum\count3>2 % + \toks10{illiard}% + \count10=\csname fc@frenchoptions@n-illiard@plural\endcsname\space + \else + \toks10{illion}% + \count10=\csname fc@frenchoptions@n-illion@plural\endcsname\space \fi + \edef\@tempe{% + \noexpand\fc@case + \@tempg + \the\toks10 % + \fc@@do@plural@mark s% + \noexpand\@nil + }% \fi - \fi - }{% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% - \@strctr=#1\relax - \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@unitstring{\@strctr}}% - \fi - }% - \else - \@strctr=#1\relax - \divide\@strctr by 1000 - \@modulo{\@strctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@thousand}% -\else - \ifnum\@strctr>0\relax - \ifnum\@strctr>1\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ }% - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@thousand}% - \fi -\fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% -\divide\@strctr by 100 -\ifnum\@strctr>0\relax - \ifnum#1>1000\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ }% - \fi - \@tmpstrctr=#1\relax - \@modulo{\@tmpstrctr}{1000}\relax - \ifnum\@tmpstrctr=100\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenstring{10}}% - \else - \ifnum\@strctr>1\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ }% - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@hundred}% - \fi -\fi -\@strctr=#1\relax \@modulo{\@strctr}{100}% -\ifnum#1>100\relax - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ }% - \else - \ifnum\@tmpstrctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr s}% - \fi% - \fi -\fi -\ifnum\@strctr>19\relax - \@tmpstrctr=\@strctr - \divide\@strctr by 10\relax - \ifthenelse{\@strctr>6}{% - \@modulo{\@tmpstrctr}{10}% - \ifnum\@strctr<8\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@seventies{\@tmpstrctr}}% - \else - \ifnum\@strctr<9\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@eighties{\@tmpstrctr}}% \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@nineties{\@tmpstrctr}}% + \let\@tempe\@empty + \def\@temph{0}% \fi + \else + \let\@tempe\@empty + \def\@temph{0}% \fi - }{% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{10}% - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \ifnum\@strctr=1\relax - \edef#2{\@@fc@numstr\ \@andname\ }% + \expandafter\toks\expandafter1\expandafter{\@tempe}% + \toks0{#2}% + \edef\@tempa{\the\toks0 \@temph \def\noexpand#3{\the\toks1}}% + \expandafter + }\@tempa +} +\@ifundefined{fc@@pot@shortscalefrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@@pot@shortscalefrench'}} +\def\fc@@pot@shortscalefrench#1#2#3{% + {% + \edef\@tempb{\number#1}% + \count1=\@tempb + \count2\count0 % + \divide\count2 by 3 % + \advance\count2 by -1 % + \ifnum\count0>0 % If weight>=3, i.e we do have to append thousand or n-illion(s)/n-illiard(s) + \ifnum\count1>0 % we have at least one thousand/n-illion/n-illiard + \ifnum\count2=0 % + \def\@temph{1}% + \count1=\fc@frenchoptions@mil@plural\space + \edef\@tempe{% + mil% + \fc@@do@plural@mark\fc@frenchoptions@mil@plural@mark + }% + \else + \def\@temph{2}% + % weight >= 6 + \expandafter\fc@@latin@cardinal@pefix\expandafter{\the\count2}\@tempg + \count10=\csname fc@frenchoptions@n-illion@plural\endcsname\space + \edef\@tempe{% + \noexpand\fc@case + \@tempg + illion% + \fc@@do@plural@mark s% + \noexpand\@nil + }% + \fi \else - \edef#2{\@@fc@numstr-}% + \def\@temph{0}% + \let\@tempe\@empty \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% + \else + \def\@temph{0}% + \let\@tempe\@empty \fi - }% -\else - \ifnum\@strctr<10\relax - \ifnum\@strctr=0\relax - \ifnum#1<100\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% + \expandafter\toks\expandafter1\expandafter{\@tempe}% + \toks0{#2}% + \edef\@tempa{\the\toks0 \@temph \def\noexpand#3{\the\toks1}}% + \expandafter + }\@tempa +} +\@ifundefined{fc@@pot@recursivefrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@@pot@recursivefrench'}} +\def\fc@@pot@recursivefrench#1#2#3{% + {% + \edef\@tempb{\number#1}% + \let\@tempa\@@tempa + \count1=\@tempb\space + \ifnum\count1>0 % + \count2\count0 % + \divide\count2 by 9 % + \advance\count2 by -1 % + \let\@tempe\@empty + \edef\@tempf{\fc@frenchoptions@supermillion@dos + de\fc@frenchoptions@supermillion@dos\fc@case milliards\@nil}% + \count11\count0 % + \ifnum\count2>0 % + \count3\count2 % + \count3-\count3 % + \multiply\count3 by 9 % + \advance\count11 by \count3 % + \loop + % (\count2, \count3) <- (\count2 div 2, \count2 mod 2) + \count3\count2 % + \divide\count3 by 2 % + \multiply\count3 by 2 % + \count3-\count3 % + \advance\count3 by \count2 % + \divide\count2 by 2 % + \ifnum\count3=1 % + \let\@tempg\@tempe + \edef\@tempe{\@tempg\@tempf}% + \fi + \let\@tempg\@tempf + \edef\@tempf{\@tempg\@tempg}% + \ifnum\count2>0 % + \repeat + \fi + \divide\count11 by 3 % + \ifcase\count11 % 0 .. 5 + % 0 => d milliard(s) (de milliards)* + \def\@temph{2}% + \count10=\csname fc@frenchoptions@n-illiard@plural\endcsname\space + \or % 1 => d mille milliard(s) (de milliards)* + \def\@temph{1}% + \count10=\fc@frenchoptions@mil@plural\space + \or % 2 => d million(s) (de milliards)* + \def\@temph{2}% + \count10=\csname fc@frenchoptions@n-illion@plural\endcsname\space + \or % 3 => d milliard(s) (de milliards)* + \def\@temph{2}% + \count10=\csname fc@frenchoptions@n-illiard@plural\endcsname\space + \or % 4 => d mille milliards (de milliards)* + \def\@temph{1}% + \count10=\fc@frenchoptions@mil@plural\space + \else % 5 => d million(s) (de milliards)* + \def\@temph{2}% + \count10=\csname fc@frenchoptions@n-illion@plural\endcsname\space \fi - \else%(>0,<10) - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% + \let\@tempg\@tempe + \edef\@tempf{% + \ifcase\count11 % 0 .. 5 + \or + mil\fc@@do@plural@mark \fc@frenchoptions@mil@plural@mark + \or + million\fc@@do@plural@mark s% + \or + milliard\fc@@do@plural@mark s% + \or + mil\fc@@do@plural@mark\fc@frenchoptions@mil@plural@mark + \noexpand\@nil\fc@frenchoptions@supermillion@dos + \noexpand\fc@case milliards% 4 + \or + million\fc@@do@plural@mark s% + \noexpand\@nil\fc@frenchoptions@supermillion@dos + de\fc@frenchoptions@supermillion@dos\noexpand\fc@case milliards% 5 + \fi + }% + \edef\@tempe{% + \ifx\@tempf\@empty\else + \expandafter\fc@case\@tempf\@nil + \fi + \@tempg + }% + \else + \def\@temph{0}% + \let\@tempe\@empty \fi - \else%>10 - \@modulo{\@strctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% - \fi -\fi + \expandafter\toks\expandafter1\expandafter{\@tempe}% + \toks0{#2}% + \edef\@tempa{\the\toks0 \@temph \def\noexpand#3{\the\toks1}}% + \expandafter + }\@tempa } -\newcommand*{\@@ordinalstringfrench}[2]{% -\ifnum#1>99999 -\PackageError{fmtcount}{Out of range}% -{This macro only works for values less than 100000}% -\else -\ifnum#1<0 -\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>9 - \@tmpstrctr=\@strctr - \divide\@strctr by 10\relax - \ifnum\@strctr>1\relax - \ifthenelse{\@strctr>6}{% - \@modulo{\@tmpstrctr}{10}% - \ifnum\@strctr=7\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@seventies{\@tmpstrctr}}% +\@ifundefined{fc@muladdfrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@muladdfrench'}} +\def\fc@muladdfrench#1#2#3{% + {% + \edef\@@tempc{#1}% + \edef\@@tempd{#2}% + \edef\@tempf{#3}% + \let\@tempc\@@tempc + \let\@tempd\@@tempd + \ifnum\@tempc=1 % + \ifnum\count9=1 % + \let\@tempd\@empty + \fi + \fi + \edef\@tempg{% + \@tempd + \ifx\@tempd\@empty\else + \ifx\@tempf\@empty\else + \ifcase\count9 % + \or + \fc@frenchoptions@submillion@dos + \or + \fc@frenchoptions@supermillion@dos + \fi + \fi + \fi + \@tempf + }% + \edef\@temph{% + \@tempa + \ifx\@tempa\@empty\else + \ifx\@tempg\@empty\else + \ifcase\count8 % + \or + \fc@frenchoptions@submillion@dos + \or + \fc@frenchoptions@supermillion@dos + \fi + \fi + \fi + \@tempg + }% + \def\@tempb##1{\def\@tempa{\def\@tempa{##1}}}% + \expandafter\@tempb\expandafter{\@temph}% + \expandafter + }\@tempa +}% +\@ifundefined{fc@lthundredstringfrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@lthundredstringfrench'}} +\def\fc@lthundredstringfrench#1{% + {% + \let\@tempc#1% + \fc@read@unit{\count1}{\count0}% + \count3\count0 % + \advance\count3 1 % + \fc@read@unit{\count2}{\count3}% + \edef\@tempa{% + \@tempc + \ifnum\count2>1 % + % 20 .. 99 + \ifnum\count2>6 % + % 70 .. 99 + \ifnum\count2<8 % + % 70 .. 79 + \@seventies{\count1}% + \else + % 80..99 + \ifnum\count2<9 % + % 80 .. 89 + \@eighties{\count1}% + \else + % 90 .. 99 + \@nineties{\count1}% + \fi + \fi + \else + % 20..69 + \@tenstring{\count2}% + \ifnum\count1>0 % + % x1 .. x0 + \ifnum\count1=1 % + % x1 + \fc@frenchoptions@submillion@dos\@andname\fc@frenchoptions@submillion@dos + \else + % x2 .. x9 + -% + \fi + \@unitstring{\count1}% + \fi + \fi \else - \ifnum\@strctr=8\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@eighties{\@tmpstrctr}}% + % 0 .. 19 + \ifnum\count2=0 % when tens = 0 + % 0 .. 9 + \ifnum\count1=0 % when units = 0 + % \count3=1 when #1 = 0, i.e. only for the unit of the top level number + \ifnum\count3=1 % + \ifnum\fc@max@weight=0 % + \@unitstring{0}% + \fi + \fi + \else + % 1 .. 9 + \@unitstring{\count1}% + \fi \else - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@nineties{\@tmpstrctr}}% + % 10 .. 19 + \@teenstring{\count1}% \fi \fi - }{% - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@tenstring{\@strctr}}% - \@strctr=#1\relax - \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% - \ifnum\@strctr=1\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@andname}% - \fi - \ifnum\@strctr>0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@unitstring{\@strctr}}% + }% + \def\@tempb##1{\def\@tempa{\def#1{##1}}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa +} +\@ifundefined{fc@ltthousandstringfrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@ltthousandstringfrench'}} +\def\fc@ltthousandstringfrench#1{% + {% + \count4\count0 % + \advance\count4 by 2 % + \fc@read@unit{\count2 }{\count4 }% + \advance\count4 by -1 % + \count3\count4 % + \advance\count3 by -1 % + \fc@check@nonzeros{\count3 }{\count4 }\@tempa + \edef\@temps{% + \ifcase\fc@frenchoptions@cent@plural\space + % 0 => always + s% + \or + % 1 => never + \or + % 2 => multiple + \ifnum\count2>1s\fi + \or + % 3 => multiple g-last + \ifnum\count2>1 \ifnum\@tempa=0 \ifnum\count0=\count6s\fi\fi\fi + \or + % 4 => multiple l-last + \ifnum\count2>1 \ifnum\@tempa=0 \ifnum\count9=0s\else\ifnum\count9=2s\fi\fi\fi\fi \fi }% - \else - \@strctr=#1\relax - \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@teenstring{\@strctr}}% - \fi - \@strctr=#1\relax \@modulo{\@strctr}{1000}% - \ifnum\@strctr=0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@thousandth}% - \else - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@thousand}% - \fi -\else - \ifnum\@strctr>0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{1000}% - \ifnum\@strctr=0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@thousandth}% - \else - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@thousand}% + % compute spacing after cent(s?) into \@tempb + \expandafter\let\expandafter\@tempb + \ifnum\@tempa>0 \fc@frenchoptions@submillion@dos\else\@empty\fi + % now place into \@tempa the hundreds + \edef\@tempa{% + \ifnum\count2=0 % + \else + \ifnum\count2=1 % + \expandafter\fc@case\@hundred\@nil + \else + \@unitstring{\count2}\fc@frenchoptions@submillion@dos + \noexpand\fc@case\@hundred\@temps\noexpand\@nil + \fi + \@tempb + \fi + }% + % now append to \@tempa the ten and unit + \fc@lthundredstringfrench\@tempa + \def\@tempb##1{\def\@tempa{\def#1{##1}}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa +} +\@ifundefined{@@numberstringfrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `@@numberstringfrench'}} +\def\@@numberstringfrench#1#2{% + {% + \edef\@tempa{#1}% + \expandafter\fc@number@parser\expandafter{\@tempa}% + \ifnum\fc@min@weight<0 % + \PackageError{fmtcount}{Out of range}% + {This macro does not work with fractional numbers}% \fi - \fi -\fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% -\divide\@strctr by 100\relax -\ifnum\@strctr>0\relax - \ifnum#1>1000\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ }% - \fi - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{100}% - \let\@@fc@ordstr#2\relax - \ifnum\@strctr=0\relax - \edef#2{\@@fc@ordstr\ \@hundredth}% - \else - \edef#2{\@@fc@ordstr\ \@hundred}% - \fi -\fi -\@tmpstrctr=\@strctr -\@strctr=#1\relax \@modulo{\@strctr}{100}% -\ifnum#1>100\relax - \ifnum\@strctr>0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@andname\ }% - \fi -\fi -\ifnum\@strctr>19\relax - \@tmpstrctr=\@strctr - \divide\@strctr by 10\relax - \@modulo{\@tmpstrctr}{10}% - \ifthenelse{\@strctr>6}{% - \ifnum\@strctr=7\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@seventieths{\@tmpstrctr}}% - \else - \ifnum\@strctr=8\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@eightieths{\@tmpstrctr}}% + \edef\@tempa{\ifcase\fc@sign@case\space\or\fc@case plus\@nil\or\fc@case moins\@nil\fi}% + \fc@nbrstr@preamble + \fc@@nbrstrfrench@inner + \fc@nbrstr@postamble + \def\@tempb##1{\def\@tempa{\def#2{##1}}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa +} +\def\fc@@nbrstrfrench@inner{% + \count0=\fc@max@weight + \divide\count0 by 3 % + \multiply\count0 by 3 % + \fc@intpart@find@last{\count5 }% + \count6\count5 % + \divide\count6 3 % + \multiply\count6 3 % + \count8=0 % + \loop + \count1\count0 % + \advance\count1 by 2 % + \fc@check@nonzeros{\count0 }{\count1 }\@tempt + \fc@poweroften\@tempt{\count9 }\@tempb + \fc@ltthousandstringfrench\@tempd + \fc@muladdfrench\@tempt\@tempd\@tempb + \count8\count9 % + \advance\count0 by -3 % + \ifnum\count6>\count0 \else + \repeat +} +\@ifundefined{@@ordinalstringfrench}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `@@ordinalstringfrench'}} +\def\@@ordinalstringfrench#1#2{% + {% + \edef\@tempa{#1}% + \expandafter\fc@number@parser\expandafter{\@tempa}% + \ifnum\fc@min@weight<0 % + \PackageError{fmtcount}{Out of range}% + {This macro does not work with fractional numbers}% + \fi + \ifnum\fc@sign@case>0 % + \PackageError{fmtcount}{Out of range}% + {This macro does with negative or explicitly marked as positive numbers}% + \fi + \ifnum\fc@max@weight=0 % + \ifnum\csname fc@digit@0\endcsname=1 % + \count0=1 % \else - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@ninetieths{\@tmpstrctr}}% + \count0=0 % \fi - \fi - }{% - \ifnum\@tmpstrctr=0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@tenthstring{\@strctr}}% \else - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@tenstring{\@strctr}}% + \count0=0 % \fi - \@strctr=#1\relax \@modulo{\@strctr}{10}% - \ifnum\@strctr=1\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@andname}% - \fi - \ifnum\@strctr>0\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\ \@unitthstring{\@strctr}}% - \fi - }% -\else - \ifnum\@strctr<10\relax - \ifnum\@strctr=0\relax - \ifnum#1<100\relax - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}% - \fi + \ifnum\count0=1 % + \edef\@tempa{\expandafter\fc@case\fc@first\@nil}% \else - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}% + \def\@tempa##1{% + \expandafter\edef\csname fc@frenchoptions@##1@plural\endcsname{% + \ifcase\csname fc@frenchoptions@##1@plural\endcsname\space + 0% 0: always => always + \or + 1% 1: never => never + \or + 6% 2: multiple => multiple ng-last + \or + 1% 3: multiple g-last => never + \or + 5% 4: multiple l-last => multiple lng-last + \or + 5% 5: multiple lng-last => multiple lng-last + \or + 6% 6: multiple ng-last => multiple ng-last + \fi + }% + }% + \@tempa{vingt}% + \@tempa{cent}% + \@tempa{mil}% + \@tempa{n-illion}% + \@tempa{n-illiard}% + \let\fc@case@save\fc@case + \def\fc@case{\noexpand\fc@case}% + \def\@nil{\noexpand\@nil}% + \let\@tempa\@empty + \fc@@nbrstrfrench@inner + \let\fc@case\fc@case@save + \expandafter\fc@get@last@word\expandafter{\@tempa}\@tempb\@tempc + \expandafter\fc@get@last@letter\expandafter{\@tempc}\@tempd\@tempe + \def\@tempf{e}% + \ifx\@tempe\@tempf + \edef\@tempa{\@tempb\expandafter\fc@case\@tempd i\`eme\@nil}% + \else + \def\@tempf{q}% + \ifx\@tempe\@tempf + \edef\@tempa{\@tempb\expandafter\fc@case\@tempd qui\`eme\@nil}% + \else + \def\@tempf{f}% + \ifx\@tempe\@tempf + \edef\@tempa{\@tempb\expandafter\fc@case\@tempd vi\`eme\@nil}% + \else + \edef\@tempa{\@tempb\expandafter\fc@case\@tempc i\`eme\@nil}% + \fi + \fi + \fi \fi - \else - \@modulo{\@strctr}{10}% - \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@teenthstring{\@strctr}}% - \fi -\fi + \def\@tempb##1{\def\@tempa{\def#2{##1}}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa +} +\newcommand*\fc@frenchoptions@setdefaults{% + \csname KV@fcfrench@all plural\endcsname{reformed}% + \def\fc@frenchoptions@submillion@dos{-}% + \let\fc@frenchoptions@supermillion@dos\space + \let\fc@u@in@duo\@empty% Could be `u' + % \let\fc@poweroften\fc@@pot@longscalefrench + \let\fc@poweroften\fc@@pot@recursivefrench + \def\fc@longscale@nilliard@upto{0}% infinity + \def\fc@frenchoptions@mil@plural@mark{le}% } +\fc@frenchoptions@setdefaults +\iffalse Local variables: \fi +\iffalse mode: docTeX \fi +\iffalse End: \fi%\iffalse \endinput %% %% End of file `fc-french.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-frenchb.def b/Master/texmf-dist/tex/latex/fmtcount/fc-frenchb.def new file mode 100644 index 00000000000..dc47a303cda --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-frenchb.def @@ -0,0 +1,71 @@ +%% +%% This is file `fc-frenchb.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fc-frenchb.def,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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{frenchb}[2012/06/18] +\FCloadlang{french} +\let\@ordinalMfrenchb=\@ordinalMfrench +\let\@ordinalFfrenchb=\@ordinalFfrench +\let\@ordinalNfrenchb=\@ordinalNfrench +\let\@numberstringMfrenchb=\@numberstringMfrench +\let\@numberstringFfrenchb=\@numberstringFfrench +\let\@numberstringNfrenchb=\@numberstringNfrench +\let\@NumberstringMfrenchb=\@NumberstringMfrench +\let\@NumberstringFfrenchb=\@NumberstringFfrench +\let\@NumberstringNfrenchb=\@NumberstringNfrench +\let\@ordinalstringMfrenchb=\@ordinalstringMfrench +\let\@ordinalstringFfrenchb=\@ordinalstringFfrench +\let\@ordinalstringNfrenchb=\@ordinalstringNfrench +\let\@OrdinalstringMfrenchb=\@OrdinalstringMfrench +\let\@OrdinalstringFfrenchb=\@OrdinalstringFfrench +\let\@OrdinalstringNfrenchb=\@OrdinalstringNfrench + +\endinput +%% +%% End of file `fc-frenchb.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-german.def b/Master/texmf-dist/tex/latex/fmtcount/fc-german.def index 7908ebd398a..c6b43314db5 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-german.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-german.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-german.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,7 +38,17 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-german.def}[2007/06/14] +%%\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}[2012/06/18] \newcommand{\@ordinalMgerman}[2]{% \edef#2{\number#1\relax.}} \newcommand{\@ordinalFgerman}[2]{% @@ -48,7 +58,7 @@ \newcommand{\@@unitstringgerman}[1]{% \ifcase#1% null% -\or ein% +\or eins% \or zwei% \or drei% \or vier% @@ -97,8 +107,9 @@ zehn% \let\@numberstringFgerman=\@numberstringMgerman \let\@numberstringNgerman=\@numberstringMgerman \DeclareRobustCommand{\@NumberstringMgerman}[2]{% -\@numberstringMgerman{#1}{\@@num@str}% -\edef#2{\noexpand\MakeUppercase\@@num@str}} + \@numberstringMgerman{#1}{\@@num@str}% + \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% +} \let\@NumberstringFgerman=\@NumberstringMgerman \let\@NumberstringNgerman=\@NumberstringMgerman \DeclareRobustCommand{\@ordinalstringMgerman}[2]{% @@ -132,14 +143,17 @@ zehn% \def\@hundredth{hunderstes}% \@@ordinalstringgerman{#1}{#2}} \DeclareRobustCommand{\@OrdinalstringMgerman}[2]{% -\@ordinalstringMgerman{#1}{\@@num@str}% -\edef#2{\protect\MakeUppercase\@@num@str}} + \@ordinalstringMgerman{#1}{\@@num@str}% + \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% +} \DeclareRobustCommand{\@OrdinalstringFgerman}[2]{% -\@ordinalstringFgerman{#1}{\@@num@str}% -\edef#2{\protect\MakeUppercase\@@num@str}} + \@ordinalstringFgerman{#1}{\@@num@str}% + \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% +} \DeclareRobustCommand{\@OrdinalstringNgerman}[2]{% -\@ordinalstringNgerman{#1}{\@@num@str}% -\edef#2{\protect\MakeUppercase\@@num@str}} + \@ordinalstringNgerman{#1}{\@@num@str}% + \edef#2{\noexpand\MakeUppercase\expandonce\@@num@str}% +} \newcommand{\@@unitthstringMgerman}[1]{% \ifcase#1% nullter% @@ -147,7 +161,7 @@ nullter% \or zweiter% \or dritter% \or vierter% -\or f\"unter% +\or f\"unfter% \or sechster% \or siebter% \or achter% @@ -229,7 +243,7 @@ nulltes% \or zweites% \or drittes% \or viertes% -\or f\"unte% +\or f\"unftes% \or sechstes% \or siebtes% \or achtes% @@ -266,25 +280,21 @@ zehntes% \newcommand{\@@numberunderhundredgerman}[2]{% \ifnum#1<10\relax \ifnum#1>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{#1}}% + \eappto#2{\@unitstring{#1}}% \fi \else \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{10}% \ifnum#1<20\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@tmpstrctr}}% + \eappto#2{\@teenstring{\@tmpstrctr}}% \else \ifnum\@tmpstrctr=0\relax \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@tmpstrctr}und}% + \eappto#2{\@unitstring{\@tmpstrctr}und}% \fi \@tmpstrctr=#1\relax \divide\@tmpstrctr by 10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenstring{\@tmpstrctr}}% + \eappto#2{\@tenstring{\@tmpstrctr}}% \fi \fi } @@ -303,29 +313,24 @@ zehntes% \def#2{}% \@strctr=#1\relax \divide\@strctr by 1000\relax \ifnum\@strctr>1\relax -\@@numberunderhundredgerman{\@strctr}{#2}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr tausend}% + \@@numberunderhundredgerman{\@strctr}{#2}% + \appto#2{tausend}% \else \ifnum\@strctr=1\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\eintausend}% + \eappto#2{\eintausend}% \fi \fi \@strctr=#1\relax \@modulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>1\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}hundert}% + \eappto#2{\@unitstring{\@strctr}hundert}% \else \ifnum\@strctr=1\relax \ifnum#1>1000\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr einhundert}% + \appto#2{einhundert}% \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\einhundert}% + \eappto#2{\einhundert}% \fi \fi \fi @@ -335,8 +340,7 @@ zehntes% \def#2{null}% \else \ifnum\@strctr=1\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr eins}% + \appto#2{eins}% \else \@@numberunderhundredgerman{\@strctr}{#2}% \fi @@ -344,24 +348,20 @@ zehntes% } \newcommand{\@@numberunderhundredthgerman}[2]{% \ifnum#1<10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitthstring{#1}}% + \eappto#2{\@unitthstring{#1}}% \else \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{10}% \ifnum#1<20\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenthstring{\@tmpstrctr}}% + \eappto#2{\@teenthstring{\@tmpstrctr}}% \else \ifnum\@tmpstrctr=0\relax \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@tmpstrctr}und}% + \eappto#2{\@unitstring{\@tmpstrctr}und}% \fi \@tmpstrctr=#1\relax \divide\@tmpstrctr by 10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenthstring{\@tmpstrctr}}% + \eappto#2{\@tenthstring{\@tmpstrctr}}% \fi \fi } @@ -381,22 +381,18 @@ zehntes% \@strctr=#1\relax \divide\@strctr by 1000\relax \ifnum\@strctr>1\relax \@@numberunderhundredgerman{\@strctr}{#2}% - \let\@@fc@numstr#2\relax - % is that it, or is there more? \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{1000}% \ifnum\@tmpstrctr=0\relax - \edef#2{\@@fc@numstr\@thousandth}% + \eappto#2{\@thousandth}% \else - \edef#2{\@@fc@numstr tausend}% + \appto#2{tausend}% \fi \else \ifnum\@strctr=1\relax \ifnum#1=1000\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@thousandth}% + \eappto#2{\@thousandth}% \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\eintausend}% + \eappto#2{\eintausend}% \fi \fi \fi @@ -404,31 +400,26 @@ zehntes% \@modulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>1\relax - \let\@@fc@numstr#2\relax - % is that it, or is there more? \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}% \ifnum\@tmpstrctr=0\relax \ifnum\@strctr=1\relax - \edef#2{\@@fc@numstr\@hundredth}% + \eappto#2{\@hundredth}% \else - \edef#2{\@@fc@numstr\@unitstring{\@strctr}\@hundredth}% + \eappto#2{\@unitstring{\@strctr}\@hundredth}% \fi \else - \edef#2{\@@fc@numstr\@unitstring{\@strctr}hundert}% + \eappto#2{\@unitstring{\@strctr}hundert}% \fi \else \ifnum\@strctr=1\relax \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}% \ifnum\@tmpstrctr=0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@hundredth}% + \eappto#2{\@hundredth}% \else \ifnum#1>1000\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr einhundert}% + \appto#2{einhundert}% \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\einhundert}% + \eappto#2{\einhundert}% \fi \fi \fi @@ -439,21 +430,8 @@ zehntes% \@@numberunderhundredthgerman{\@strctr}{#2}% }% } -\let\@ordinalMngerman=\@ordinalMgerman -\let\@ordinalFngerman=\@ordinalFgerman -\let\@ordinalNngerman=\@ordinalNgerman -\let\@numberstringMngerman=\@numberstringMgerman -\let\@numberstringFngerman=\@numberstringFgerman -\let\@numberstringNngerman=\@numberstringNgerman -\let\@NumberstringMngerman=\@NumberstringMgerman -\let\@NumberstringFngerman=\@NumberstringFgerman -\let\@NumberstringNngerman=\@NumberstringNgerman -\let\@ordinalstringMngerman=\@ordinalstringMgerman -\let\@ordinalstringFngerman=\@ordinalstringFgerman -\let\@ordinalstringNngerman=\@ordinalstringNgerman -\let\@OrdinalstringMngerman=\@OrdinalstringMgerman -\let\@OrdinalstringFngerman=\@OrdinalstringFgerman -\let\@OrdinalstringNngerman=\@OrdinalstringNgerman +\FCloadlang{germanb} + \endinput %% %% End of file `fc-german.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-germanb.def b/Master/texmf-dist/tex/latex/fmtcount/fc-germanb.def new file mode 100644 index 00000000000..9e1ba635285 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-germanb.def @@ -0,0 +1,71 @@ +%% +%% This is file `fc-germanb.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fc-germanb.def,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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{germanb}[2012/06/18] +\FCloadlang{german} +\let\@ordinalMgermanb=\@ordinalMgerman +\let\@ordinalFgermanb=\@ordinalFgerman +\let\@ordinalNgermanb=\@ordinalNgerman +\let\@numberstringMgermanb=\@numberstringMgerman +\let\@numberstringFgermanb=\@numberstringFgerman +\let\@numberstringNgermanb=\@numberstringNgerman +\let\@NumberstringMgermanb=\@NumberstringMgerman +\let\@NumberstringFgermanb=\@NumberstringFgerman +\let\@NumberstringNgermanb=\@NumberstringNgerman +\let\@ordinalstringMgermanb=\@ordinalstringMgerman +\let\@ordinalstringFgermanb=\@ordinalstringFgerman +\let\@ordinalstringNgermanb=\@ordinalstringNgerman +\let\@OrdinalstringMgermanb=\@OrdinalstringMgerman +\let\@OrdinalstringFgermanb=\@OrdinalstringFgerman +\let\@OrdinalstringNgermanb=\@OrdinalstringNgerman + +\endinput +%% +%% End of file `fc-germanb.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-italian.def b/Master/texmf-dist/tex/latex/fmtcount/fc-italian.def index 0c4bfa7ffda..5b16964e592 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-italian.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-italian.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-italian.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,733 +38,49 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-italian.def}[2009/10/02 Italian support for fmtcount (Edoardo Pasca)] -\newcommand{\@@unitstringitalian}[1]{% -\ifcase#1\relax -zero% -\or uno% -\or due% -\or tre% -\or quattro% -\or cinque% -\or sei% -\or sette% -\or otto% -\or nove% -\fi -} - -\newcommand{\@@unitstringFitalian}[1]{% -\ifcase#1\relax -zero% -\or una% -\or doe% -\or tre% -\or quattro% -\or cinque% -\or sei% -\or sette% -\or otto% -\or nove% -\fi -} - -\newcommand{\@@tenstringitalian}[1]{% -\ifcase#1\relax -\or dieci% -\or venti% -\or trenta% -\or quaranta% -\or cinquanta% -\or sessanta% -\or settanta% -\or ottanta% -\or novanta% -\or cento% -\fi -} - -\newcommand{\@@teenstringitalian}[1]{% -\ifcase#1\relax -dieci% -\or undici% -\or dodici% -\or tredici% -\or quattordici% -\or quindici% -\or sedici% -\or diciassette% -\or diciotto% -\or diciannove% -\fi -} - -\newcommand{\@@twentystringitalian}[1]{% -\ifcase#1\relax -venti% -\or ventuno% -\or ventidue% -\or ventitre% -\or ventiquattro% -\or venticinque% -\or ventisei% -\or ventisette% -\or ventiotto% -\or ventinove% -\fi} - -\newcommand{\@@twentystringFitalian}[1]{% -\ifcase#1\relax -venti% -\or ventuna% -\or ventidue% -\or ventitre% -\or ventiquattro% -\or venticinque% -\or ventisei% -\or ventisette% -\or ventiotto% -\or ventinove% -\fi} - -\newcommand{\@@hundredstringitalian}[1]{% -\ifcase#1\relax -\or cento% -\or duecento% -\or trecento% -\or quattrocento% -\or cinquecento% -\or seicento% -\or settecento% -\or ottocento% -\or novecento% -\fi} - -\newcommand{\@@hundredstringFitalian}[1]{% -\ifcase#1\relax -\or cento% -\or duecento% -\or trecento% -\or quattrocento% -\or cinquecento% -\or seicento% -\or settecento% -\or ottocento% -\or novecento% -\fi} - -\newcommand{\@@Unitstringitalian}[1]{% -\ifcase#1\relax -Zero% -\or Uno% -\or Due% -\or Tre% -\or Quattro% -\or Cinque% -\or Sei% -\or Sette% -\or Otto% -\or Nove% -\fi -} - -\newcommand{\@@UnitstringFitalian}[1]{% -\ifcase#1\relax -Zero% -\or Una% -\or Due% -\or Tre% -\or Quattro% -\or Cinque% -\or Sei% -\or Sette% -\or Otto% -\or Nove% -\fi -} - -\newcommand{\@@Tenstringitalian}[1]{% -\ifcase#1\relax -\or Dieci% -\or Venti% -\or Trenta% -\or Quaranta% -\or Cinquanta% -\or Sessanta% -\or Settanta% -\or Ottanta% -\or Novanta% -\or Cento% -\fi -} - -\newcommand{\@@Teenstringitalian}[1]{% -\ifcase#1\relax -Dieci% -\or Undici% -\or Dodici% -\or Tredici% -\or Quattordici% -\or Quindici% -\or Sedici% -\or Diciassette% -\or Diciotto% -\or Diciannove% -\fi -} - -\newcommand{\@@Twentystringitalian}[1]{% -\ifcase#1\relax -Venti% -\or Ventuno% -\or Ventidue% -\or Ventitre% -\or Ventiquattro% -\or Venticinque% -\or Ventisei% -\or Ventisette% -\or Ventiotto% -\or Ventinove% -\fi} - -\newcommand{\@@TwentystringFitalian}[1]{% -\ifcase#1\relax -Venti% -\or Ventuno% -\or Ventidue% -\or Ventitre% -\or Ventiquattro% -\or Venticinque% -\or Ventisei% -\or Ventisette% -\or Ventiotto% -\or Ventinove% -\fi} - -\newcommand{\@@Hundredstringitalian}[1]{% -\ifcase#1\relax -\or Cento% -\or Duecento% -\or Trecento% -\or Quattrocento% -\or Cinquecento% -\or Seicento% -\or Settecento% -\or Ottocento% -\or Novecento% -\fi} +%%\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{italian}[2012/06/18] -\newcommand{\@@HundredstringFitalian}[1]{% -\ifcase#1\relax -\or Cento% -\or Duecento% -\or Trecento% -\or Quattrocento% -\or Cinquecento% -\or Seicento% -\or Settecento% -\or Ottocento% -\or Novecento% -\fi} +\RequirePackage{itnumpar} \newcommand{\@numberstringMitalian}[2]{% -\let\@unitstring=\@@unitstringitalian -\let\@teenstring=\@@teenstringitalian -\let\@tenstring=\@@tenstringitalian -\let\@twentystring=\@@twentystringitalian -\let\@hundredstring=\@@hundredstringitalian -\def\@hundred{cien}\def\@thousand{mil}% -\def\@andname{y}% -\@@numberstringitalian{#1}{#2}} + \edef#2{\noexpand\printnumeroinparole{#1}}% +} \newcommand{\@numberstringFitalian}[2]{% -\let\@unitstring=\@@unitstringFitalian -\let\@teenstring=\@@teenstringitalian -\let\@tenstring=\@@tenstringitalian -\let\@twentystring=\@@twentystringFitalian -\let\@hundredstring=\@@hundredstringFitalian -\def\@hundred{cien}\def\@thousand{mil}% -\def\@andname{y}% -\@@numberstringitalian{#1}{#2}} + \edef#2{\noexpand\printnumeroinparole{#1}}} \newcommand{\@NumberstringMitalian}[2]{% -\let\@unitstring=\@@Unitstringitalian -\let\@teenstring=\@@Teenstringitalian -\let\@tenstring=\@@Tenstringitalian -\let\@twentystring=\@@Twentystringitalian -\let\@hundredstring=\@@Hundredstringitalian -\def\@andname{y}% -\def\@hundred{Cien}\def\@thousand{Mil}% -\@@numberstringitalian{#1}{#2}} + \edef#2{\noexpand\printNumeroinparole{#1}}} \newcommand{\@NumberstringFitalian}[2]{% -\let\@unitstring=\@@UnitstringFitalian -\let\@teenstring=\@@Teenstringitalian -\let\@tenstring=\@@Tenstringitalian -\let\@twentystring=\@@TwentystringFitalian -\let\@hundredstring=\@@HundredstringFitalian -\def\@andname{y}% -\def\@hundred{Cien}\def\@thousand{Mil}% -\@@numberstringitalian{#1}{#2}} + \edef#2{\noexpand\printNumeroinparole{#1}}} \newcommand{\@ordinalstringMitalian}[2]{% -\let\@unitthstring=\@@unitthstringitalian -\let\@unitstring=\@@unitstringitalian -\let\@teenthstring=\@@teenthstringitalian -\let\@tenthstring=\@@tenthstringitalian -\let\@hundredthstring=\@@hundredthstringitalian -\def\@thousandth{millesimo}% -\@@ordinalstringitalian{#1}{#2}} + \edef#2{\noexpand\printordinalem{#1}}} \newcommand{\@ordinalstringFitalian}[2]{% -\let\@unitthstring=\@@unitthstringFitalian -\let\@unitstring=\@@unitstringFitalian -\let\@teenthstring=\@@teenthstringFitalian -\let\@tenthstring=\@@tenthstringFitalian -\let\@hundredthstring=\@@hundredthstringFitalian -\def\@thousandth{millesima}% -\@@ordinalstringitalian{#1}{#2}} + \edef#2{\noexpand\printordinalef{#1}}} \newcommand{\@OrdinalstringMitalian}[2]{% -\let\@unitthstring=\@@Unitthstringitalian -\let\@unitstring=\@@Unitstringitalian -\let\@teenthstring=\@@Teenthstringitalian -\let\@tenthstring=\@@Tenthstringitalian -\let\@hundredthstring=\@@Hundredthstringitalian -\def\@thousandth{Millesimo}% -\@@ordinalstringitalian{#1}{#2}} + \edef#2{\noexpand\printOrdinalem{#1}}} \newcommand{\@OrdinalstringFitalian}[2]{% -\let\@unitthstring=\@@UnitthstringFitalian -\let\@unitstring=\@@UnitstringFitalian -\let\@teenthstring=\@@TeenthstringFitalian -\let\@tenthstring=\@@TenthstringFitalian -\let\@hundredthstring=\@@HundredthstringFitalian -\def\@thousandth{Millesima}% -\@@ordinalstringitalian{#1}{#2}} - -\newcommand{\@ordinalMitalian}[2]{\edef#2{#1\relax\noexpand\fmtord{o}}} -\newcommand{\@ordinalFitalian}[2]{\edef#2{#1\relax\noexpand\fmtord{a}}} + \edef#2{\noexpand\printOrdinalef{#1}}} -\newcommand{\@@unitthstringitalian}[1]{% -\ifcase#1\relax -zero% -\or primo% -\or secondo% -\or terzo% -\or quarto% -\or quinto% -\or sesto% -\or settimo% -\or ottavo% -\or nono% -\fi -} - -\newcommand{\@@tenthstringitalian}[1]{% -\ifcase#1\relax -\or decimo% -\or ventesimo% -\or trentesimo% -\or quarantesimo% -\or cinquantesimo% -\or sessantesimo% -\or settantesimo% -\or ottantesimo% -\or novantesimo% -\fi -} - -\newcommand{\@@teenthstringitalian}[1]{% -\ifcase#1\relax -decimo% -\or undicesimo% -\or dodicesimo% -\or tredicesimo% -\or quattordicesimo% -\or quindicesimo% -\or sedicesimo% -\or diciassettesimo% -\or diciottesimo% -\or diciannovesimo% -\fi -} - -\newcommand{\@@hundredthstringitalian}[1]{% -\ifcase#1\relax -\or centesimo% -\or duecentesimo% -\or trecentesimo% -\or quattrocentesimo% -\or cinquecentesimo% -\or seicentesimo% -\or settecentesimo% -\or ottocentesimo% -\or novecentesimo% -\fi} - -\newcommand{\@@unitthstringFitalian}[1]{% -\ifcase#1\relax -zero% -\or prima% -\or seconda% -\or terza% -\or quarta% -\or quinta% -\or sesta% -\or settima% -\or ottava% -\or nona% -\fi -} - -\newcommand{\@@tenthstringFitalian}[1]{% -\ifcase#1\relax -\or decima% -\or ventesima% -\or trentesima% -\or quarantesima% -\or cinquantesima% -\or sessantesima% -\or settantesima% -\or ottantesima% -\or novantesima% -\fi -} - -\newcommand{\@@teenthstringFitalian}[1]{% -\ifcase#1\relax -decima% -\or undicesima% -\or dodicesima% -\or tredicesima% -\or quattordicesima% -\or quindicesima% -\or sedicesima% -\or diciassettesima% -\or diciottesima% -\or diciannovesima% -\fi -} - -\newcommand{\@@hundredthstringFitalian}[1]{% -\ifcase#1\relax -\or centesima% -\or duecentesima% -\or trecentesima% -\or quattrocentesima% -\or cinquecentesima% -\or seicentesima% -\or settecentesima% -\or ottocentesima% -\or novecentesima% -\fi} - -\newcommand{\@@Unitthstringitalian}[1]{% -\ifcase#1\relax -Zero% -\or Primo% -\or Secondo% -\or Terzo% -\or Quarto% -\or Quinto% -\or Sesto% -\or Settimo% -\or Ottavo% -\or Nono% -\fi -} - -\newcommand{\@@Tenthstringitalian}[1]{% -\ifcase#1\relax -\or Decimo% -\or Ventesimo% -\or Trentesimo% -\or Quarantesimo% -\or Cinquantesimo% -\or Sessantesimo% -\or Settantesimo% -\or Ottantesimo% -\or Novantesimo% -\fi -} - -\newcommand{\@@Teenthstringitalian}[1]{% -\ifcase#1\relax -Decimo% -\or Undicesimo% -\or Dodicesimo% -\or Tredicesimo% -\or Quattordicesimo% -\or Quindicesimo% -\or Sedicesimo% -\or Diciassettesimo% -\or Diciottesimo% -\or Diciannovesimo% -\fi -} - -\newcommand{\@@Hundredthstringitalian}[1]{% -\ifcase#1\relax -\or Centesimo% -\or Duecentesimo% -\or Trecentesimo% -\or Quattrocentesimo% -\or Cinquecentesimo% -\or Seicentesimo% -\or Settecentesimo% -\or Ottocentesimo% -\or Novecentesimo% -\fi} - -\newcommand{\@@UnitthstringFitalian}[1]{% -\ifcase#1\relax -Zero% -\or Prima% -\or Seconda% -\or Terza% -\or Quarta% -\or Quinta% -\or Sesta% -\or Settima% -\or Ottava% -\or Nona% -\fi -} - -\newcommand{\@@TenthstringFitalian}[1]{% -\ifcase#1\relax -\or Decima% -\or Ventesima% -\or Trentesima% -\or Quarantesima% -\or Cinquantesima% -\or Sessantesima% -\or Settantesima% -\or Ottantesima% -\or Novantesima% -\fi -} - -\newcommand{\@@TeenthstringFitalian}[1]{% -\ifcase#1\relax -Decima% -\or Undicesima% -\or Dodicesima% -\or Tredicesima% -\or Quattordicesima% -\or Quindicesima% -\or Sedicesima% -\or Diciassettesima% -\or Diciottesima% -\or Diciannovesima% -\fi -} - -\newcommand{\@@HundredthstringFitalian}[1]{% -\ifcase#1\relax -\or Centesima% -\or Duecentesima% -\or Trecentesima% -\or Quattrocentesima% -\or Cinquecentesima% -\or Seicentesima% -\or Settecentesima% -\or Ottocentesima% -\or Novecentesima% -\fi} - -\newcommand{\@@numberstringitalian}[2]{% -\def#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 -\@strctr=#1\relax \divide\@strctr by 1000\relax -\ifnum\@strctr>9\relax - \divide\@strctr by 10\relax - \ifnum\@strctr>1\relax - \edef#2{\@tenstring{\@strctr}}% - \@strctr=#1 \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname\ \@unitstring{\@strctr}}% - \fi - \else - \@strctr=#1\relax - \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@thousand}% -\else - \ifnum\@strctr>0\relax - \ifnum\@strctr>1\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ }% - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@thousand}% - \fi -\fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% -\divide\@strctr by 100\relax -\ifnum\@strctr>0\relax - \ifnum#1>1000\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ }% - \fi - \@tmpstrctr=#1\relax - \@modulo{\@tmpstrctr}{1000}% - \let\@@fc@numstr#2\relax - \ifnum\@tmpstrctr=100\relax - \edef#2{\@@fc@numstr\@tenstring{10}}% - \else - \edef#2{\@@fc@numstr\@hundredstring{\@strctr}}% - \fi -\fi -\@strctr=#1\relax \@modulo{\@strctr}{100}% -\ifnum#1>100\relax - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname\ }% - \fi -\fi -\ifnum\@strctr>29\relax - \divide\@strctr by 10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{10}% - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname\ \@unitstring{\@strctr}}% - \fi -\else - \ifnum\@strctr<10\relax - \ifnum\@strctr=0\relax - \ifnum#1<100\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% - \fi - \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% - \fi - \else - \ifnum\@strctr>19\relax - \@modulo{\@strctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@twentystring{\@strctr}}% - \else - \@modulo{\@strctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% - \fi - \fi -\fi -} - -\newcommand{\@@ordinalstringitalian}[2]{% -\@strctr=#1\relax -\def#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}% - \else - \ifnum\@strctr>999\relax - \divide\@strctr by 1000\relax - \ifnum\@strctr>1\relax - \ifnum\@strctr>9\relax - \@tmpstrctr=\@strctr - \ifnum\@strctr<20\relax - \@modulo{\@tmpstrctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenthstring{\@tmpstrctr} }% - \else - \divide\@tmpstrctr by 10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenthstring{\@tmpstrctr} }% - \@tmpstrctr=\@strctr - \@modulo{\@tmpstrctr}{10}% - \ifnum\@tmpstrctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitthstring{\@tmpstrctr} }% - \fi - \fi - \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr} }% - \fi - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@thousandth}% - \fi - \@strctr=#1\relax - \@modulo{\@strctr}{1000}% - \ifnum\@strctr>99\relax - \@tmpstrctr=\@strctr - \divide\@tmpstrctr by 100\relax - \ifnum#1>1000\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ }% - \fi - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@hundredthstring{\@tmpstrctr}}% - \fi - \@modulo{\@strctr}{100}% - \ifnum#1>99\relax - \ifnum\@strctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ }% - \fi - \fi - \ifnum\@strctr>19\relax - \@tmpstrctr=\@strctr - \divide\@tmpstrctr by 10\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenthstring{\@tmpstrctr}}% - \@tmpstrctr=\@strctr - \@modulo{\@tmpstrctr}{10}% - \ifnum\@tmpstrctr>0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@unitthstring{\@tmpstrctr}}% - \fi - \else - \ifnum\@strctr>9\relax - \@modulo{\@strctr}{10}% - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenthstring{\@strctr}}% - \else - \ifnum\@strctr=0\relax - \ifnum#1=0\relax - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{0}}% - \fi - \else - \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitthstring{\@strctr}}% - \fi - \fi - \fi - \fi -\fi -} +\newcommand{\@ordinalMitalian}[2]{% + \edef#2{#1\relax\noexpand\fmtord{o}}} +\newcommand{\@ordinalFitalian}[2]{% + \edef#2{#1\relax\noexpand\fmtord{a}}} \endinput %% diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-ngerman.def b/Master/texmf-dist/tex/latex/fmtcount/fc-ngerman.def new file mode 100644 index 00000000000..0e632c1aa5f --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-ngerman.def @@ -0,0 +1,72 @@ +%% +%% This is file `fc-ngerman.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fc-ngerman.def,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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{ngerman}[2012/06/18] +\FCloadlang{german} +\FCloadlang{ngermanb} +\let\@ordinalMngerman=\@ordinalMgerman +\let\@ordinalFngerman=\@ordinalFgerman +\let\@ordinalNngerman=\@ordinalNgerman +\let\@numberstringMngerman=\@numberstringMgerman +\let\@numberstringFngerman=\@numberstringFgerman +\let\@numberstringNngerman=\@numberstringNgerman +\let\@NumberstringMngerman=\@NumberstringMgerman +\let\@NumberstringFngerman=\@NumberstringFgerman +\let\@NumberstringNngerman=\@NumberstringNgerman +\let\@ordinalstringMngerman=\@ordinalstringMgerman +\let\@ordinalstringFngerman=\@ordinalstringFgerman +\let\@ordinalstringNngerman=\@ordinalstringNgerman +\let\@OrdinalstringMngerman=\@OrdinalstringMgerman +\let\@OrdinalstringFngerman=\@OrdinalstringFgerman +\let\@OrdinalstringNngerman=\@OrdinalstringNgerman + +\endinput +%% +%% End of file `fc-ngerman.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-ngermanb.def b/Master/texmf-dist/tex/latex/fmtcount/fc-ngermanb.def new file mode 100644 index 00000000000..157903083b4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-ngermanb.def @@ -0,0 +1,72 @@ +%% +%% This is file `fc-ngermanb.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fc-ngermanb.def,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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{ngermanb}[2012/06/18] +\FCloadlang{german} +\let\@ordinalMngermanb=\@ordinalMgerman +\let\@ordinalFngermanb=\@ordinalFgerman +\let\@ordinalNngermanb=\@ordinalNgerman +\let\@numberstringMngermanb=\@numberstringMgerman +\let\@numberstringFngermanb=\@numberstringFgerman +\let\@numberstringNngermanb=\@numberstringNgerman +\let\@NumberstringMngermanb=\@NumberstringMgerman +\let\@NumberstringFngermanb=\@NumberstringFgerman +\let\@NumberstringNngermanb=\@NumberstringNgerman +\let\@ordinalstringMngermanb=\@ordinalstringMgerman +\let\@ordinalstringFngermanb=\@ordinalstringFgerman +\let\@ordinalstringNngermanb=\@ordinalstringNgerman +\let\@OrdinalstringMngermanb=\@OrdinalstringMgerman +\let\@OrdinalstringFngermanb=\@OrdinalstringFgerman +\let\@OrdinalstringNngermanb=\@OrdinalstringNgerman +\FCloadlang{ngerman} + +\endinput +%% +%% End of file `fc-ngermanb.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def b/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def index 3dc4cf90d1e..085445a1988 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-portuges.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,7 +38,17 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-portuges.def}[2007/05/26] +%%\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{portuges}[2012/06/18] \newcommand*{\@ordinalMportuges}[2]{% \ifnum#1=0\relax \edef#2{\number#1}% diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def b/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def index a7e513a5d27..4459215df96 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def +++ b/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fc-spanish.def,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,7 +38,17 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{fc-spanish.def}[2007/05/26] +%%\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{spanish}[2012/06/18] \newcommand{\@ordinalMspanish}[2]{% \edef#2{\number#1\relax\noexpand\fmtord{o}}} \newcommand{\@ordinalFspanish}[2]{% @@ -75,7 +85,7 @@ cera% \newcommand{\@@tenstringspanish}[1]{% \ifcase#1\relax \or diez% -\or viente% +\or veinte% \or treinta% \or cuarenta% \or cincuenta% @@ -181,7 +191,7 @@ Cera% \newcommand{\@@Tenstringspanish}[1]{% \ifcase#1\relax \or Diez% -\or Viente% +\or Veinte% \or Treinta% \or Cuarenta% \or Cincuenta% @@ -272,7 +282,7 @@ Veinte% \let\@twentystring=\@@twentystringFspanish \let\@hundredstring=\@@hundredstringFspanish \def\@hundred{cien}\def\@thousand{mil}% -\def\@andname{y}% +\def\@andname{b}% \@@numberstringspanish{#1}{#2}} \let\@numberstringNspanish\@numberstringMspanish \DeclareRobustCommand{\@NumberstringMspanish}[2]{% @@ -290,7 +300,7 @@ Veinte% \let\@tenstring=\@@Tenstringspanish \let\@twentystring=\@@TwentystringFspanish \let\@hundredstring=\@@HundredstringFspanish -\def\@andname{y}% +\def\@andname{b}% \def\@hundred{Cien}\def\@thousand{Mil}% \@@numberstringspanish{#1}{#2}} \let\@NumberstringNspanish\@NumberstringMspanish @@ -540,7 +550,6 @@ D\'ecima% \or Octingent\'esima% \or Noningent\'esima% \fi} - \newcommand{\@@numberstringspanish}[2]{% \ifnum#1>99999 \PackageError{fmtcount}{Out of range}% @@ -606,7 +615,7 @@ this number}% \ifnum#1>100\relax \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname\ }% + \edef#2{\@@fc@numstr\ }% \fi \fi \ifnum\@strctr>29\relax @@ -733,6 +742,7 @@ this number}% \fi \fi } + \endinput %% %% End of file `fc-spanish.def'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fcnumparser.sty b/Master/texmf-dist/tex/latex/fmtcount/fcnumparser.sty new file mode 100644 index 00000000000..8cf850d3fc4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fcnumparser.sty @@ -0,0 +1,398 @@ +%% +%% This is file `fcnumparser.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fcnumparser.sty,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fcnumparser} +\def\fc@counter@parser#1{% + \expandafter\fc@number@parser\expandafter{\the#1.}% +} +\newcount\fc@digit@counter + +\def\fc@end@{\fc@end} +\def\fc@number@analysis#1\fc@nil{% + \def\@tempb##1.##2\fc@nil{\def\fc@integer@part{##1}\def\@tempa{##2}}% + \@tempb#1.\fc@end\fc@nil + \ifx\@tempa\fc@end@ + \def\@tempb##1,##2\fc@nil{\def\fc@integer@part{##1}\def\@tempa{##2}}% + \@tempb#1,\fc@end\fc@nil + \ifx\@tempa\fc@end@ + \def\fc@fractional@part{}% + \else + \def\@tempb##1,\fc@end{\def\fc@fractional@part{##1}}% + \expandafter\@tempb\@tempa + \fi + \else + \def\@tempb##1.\fc@end{\def\fc@fractional@part{##1}}% + \expandafter\@tempb\@tempa + \fi +} +\def\fc@number@parser#1{% + \let\@tempa\@empty + \def\@tempb##1##2\fc@nil{% + \def\@tempc{##1}% + \ifx\@tempc\space + \else + \expandafter\def\expandafter\@tempa\expandafter{\@tempa ##1}% + \fi + \def\@tempc{##2}% + \ifx\@tempc\@empty + \expandafter\@gobble + \else + \expandafter\@tempb + \fi + ##2\fc@nil + }% + \@tempb#1\fc@nil + \def\@tempb##1##2\fc@nil{\def\fc@sign{##1}\def\fc@number{##2}}% + \expandafter\@tempb\@tempa\fc@nil + \expandafter\if\fc@sign+% + \def\fc@sign@case{1}% + \else + \expandafter\if\fc@sign-% + \def\fc@sign@case{2}% + \else + \def\fc@sign{}% + \def\fc@sign@case{0}% + \let\fc@number\@tempa + \fi + \fi + \ifx\fc@number\@empty + \PackageError{fcnumparser}{Invalid number}{Number must contain at least one non blank + character after sign}% + \fi + \expandafter\fc@number@analysis\fc@number\fc@nil + \expandafter\fc@digit@counter\fc@unit@weight + \expandafter\fc@parse@integer@digits\fc@integer@part\fc@end\fc@nil + \fc@digit@counter -\fc@digit@counter + \advance\fc@digit@counter by \fc@unit@weight + \advance\fc@digit@counter by \fc@unit@weight + \advance\fc@digit@counter by -1 % + \edef\fc@max@weight{\the\fc@digit@counter}% + {% + \count0 \fc@unit@weight\relax + \count1 \fc@max@weight\relax + \advance\count0 by -\count1 % + \advance\count0 by -1 % + \def\@tempa##1{\def\@tempb{\def\@tempi{##1}}}% + \expandafter\@tempa\expandafter{\the\count0}% + \expandafter + }\@tempb + \expandafter\fc@digit@counter\fc@unit@weight + \def\@templ{% + \ifnum\fc@digit@counter>\fc@max@weight + \let\next\relax + \else + {% + \count0 \@tempi + \advance\count0 by \fc@digit@counter + \expandafter\def\expandafter\@tempd\expandafter{\csname fc@digit@\the\count0\endcsname}% + \expandafter\def\expandafter\@tempe\expandafter{\csname fc@digit@\the\fc@digit@counter\endcsname}% + \def\@tempa####1####2{\def\@tempb{\let####1####2}}% + \expandafter\expandafter\expandafter\@tempa\expandafter\@tempe\@tempd + \expandafter + }\@tempb + \advance\fc@digit@counter by 1 % + \fi + \next + }% + \let\next\@templ + \@templ + \expandafter\fc@digit@counter\fc@unit@weight + \expandafter\fc@parse@integer@digits\fc@fractional@part\fc@end\fc@nil + \edef\fc@min@weight{\the\fc@digit@counter}% +} +\@ifundefined{fc@parse@integer@digits}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of + macro `fc@parse@integer@digits'}} +\def\fc@parse@integer@digits#1#2\fc@nil{% + \def\@tempa{#1}% + \ifx\@tempa\fc@end@ + \def\next##1\fc@nil{}% + \else + \let\next\fc@parse@integer@digits + \advance\fc@digit@counter by -1 + \expandafter\def\csname fc@digit@\the\fc@digit@counter\endcsname{#1}% + \fi + \next#2\fc@nil +} + +\newcommand*{\fc@unit@weight}{0} + +\@ifundefined{fc@read@unit}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@read@unit'}} +\def\fc@read@unit#1#2{% + \ifnum#2>\fc@max@weight + #1=0\relax + \else + \ifnum#2<\fc@min@weight + #1=0\relax + \else + {% + \edef\@tempa{\number#2}% + \count0=\@tempa + \edef\@tempa{\csname fc@digit@\the\count0\endcsname}% + \def\@tempb##1{\def\@tempa{#1=##1\relax}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa + \fi + \fi +} +\@ifundefined{fc@read@hundred}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@read@hundred'}} +\def\fc@read@hundred#1#2{% + {% + \fc@read@unit{\count0}{#2}% + \def\@tempa##1{\fc@read@unit{\count1}{##1}}% + \count2=#2% + \advance\count2 by 1 % + \expandafter\@tempa{\the\count2}% + \multiply\count1 by 10 % + \advance\count1 by \count0 % + \def\@tempa##1{\def\@tempb{#1=##1\relax}} + \expandafter\@tempa\expandafter{\the\count1}% + \expandafter + }\@tempb +} +\@ifundefined{fc@read@thousand}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro + `fc@read@thousand'}} +\def\fc@read@thousand#1#2{% + {% + \fc@read@unit{\count0}{#2}% + \def\@tempa##1{\fc@read@hundred{\count1}{##1}}% + \count2=#2% + \advance\count2 by 1 % + \expandafter\@tempa{\the\count2}% + \multiply\count1 by 10 % + \advance\count1 by \count0 % + \def\@tempa##1{\def\@tempb{#1=##1\relax}} + \expandafter\@tempa\expandafter{\the\count1}% + \expandafter + }\@tempb +} +\@ifundefined{fc@read@myriad}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro + `fc@read@myriad'}} +\def\fc@read@myriad#1#2{% + {% + \fc@read@hundred{\count0}{#2}% + \def\@tempa##1{\fc@read@hundred{\count1}{##1}}% + \count2=#2 + \advance\count2 by 2 + \expandafter\@tempa{\the\count2}% + \multiply\count1 by 100 % + \advance\count1 by \count0 % + \def\@tempa##1{\def\@tempb{#1=##1\relax}}% + \expandafter\@tempa\expandafter{\the\count1}% + \expandafter + }\@tempb +} +\@ifundefined{fc@check@nonzeros}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro + `fc@check@nonzeros'}} +\def\fc@check@nonzeros#1#2#3{% + {% + \edef\@@tempa{\number#1}% + \edef\@tempb{\number#2}% + \count0=\@@tempa + \count1=\@tempb\relax + \fc@@check@nonzeros@inner + \def\@tempd##1{\def\@tempa{\def#3{##1}}}% + \expandafter\@tempd\expandafter{\@tempc}% + \expandafter + }\@tempa +} +\def\fc@@check@nonzeros@inner{% + \ifnum\count0<\fc@min@weight + \count0=\fc@min@weight\relax + \fi + \ifnum\count1>\fc@max@weight\relax + \count1=\fc@max@weight + \fi + \count2\count0 % + \advance\count2 by 1 % + \ifnum\count0>\count1 % + \PackageError{fcnumparser}{Unexpected arguments}{Number in argument 2 of macro + `fc@check@nonzeros' must be at least equal to number in argument 1}% + \else + \fc@@check@nonzeros@inner@loopbody + \ifnum\@tempc>0 % + \ifnum\@tempc<9 % + \ifnum\count0>\count1 % + \else + \let\@tempd\@tempc + \fc@@check@nonzeros@inner@loopbody + \ifnum\@tempc=0 % + \let\@tempc\@tempd + \else + \def\@tempc{9}% + \fi + \fi + \fi + \fi + \fi +} +\def\fc@@check@nonzeros@inner@loopbody{% + % \@tempc <- digit of weight \count0 + \expandafter\let\expandafter\@tempc\csname fc@digit@\the\count0\endcsname + \advance\count0 by 1 % + \ifnum\@tempc=0 % + \ifnum\count0>\count1 % + \let\next\relax + \else + \let\next\fc@@check@nonzeros@inner@loopbody + \fi + \else + \ifnum\count0>\count2 % + \def\@tempc{9}% + \fi + \let\next\relax + \fi + \next +} +\@ifundefined{fc@intpart@find@last}{}{% + \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro + `fc@intpart@find@last'}} +\def\fc@intpart@find@last#1{% + {% + \count0=\fc@unit@weight\space + \ifnum\count0<\fc@min@weight\space + \count0=\fc@min@weight\space + \fi + \def\@templ{% + \ifnum\csname fc@digit@\the\count0\endcsname=0 % + \advance\count0 by 1 % + \ifnum\count0>\fc@max@weight\space + \let\next\relax + \fi + \else + \let\next\relax + \fi + \next + }% + \let\next\@templ + \@templ + \toks0{#1}% + \edef\@tempa{\the\toks0=\the\count0}% + \expandafter + }\@tempa\space +} +\@ifundefined{fc@get@last@word}{}{\PackageError{fcnumparser}{Duplicate definition}{Redefinition + of macro `fc@get@last@word'}}% +\def\fc@get@last@word#1#2#3{% + {% + \def\@tempa##1\fc@case##2\@nil\fc@end{% + \toks0{##1}% + \toks1{##2\fc@case}% + }% + \@tempa#1\fc@end + \def\@tempa##1\fc@case##2\fc@end{% + \toks2{##1}% + \def\@tempb{##2}% + \toks3{##2}% + }% + \toksdef\@tempt0 % + \def\@templ{% + \expandafter\@tempa\the\toks1 \fc@end + \ifx\@tempb\@empty + \let\next\relax + \else + \expandafter\expandafter\expandafter\@tempt + \expandafter\expandafter\expandafter{% + \expandafter\the\expandafter\@tempt + \expandafter\fc@case\the\toks2}% + \toks1\toks3 % + \fi + \next + }% + \let\next\@templ + \@templ + \edef\@tempa{\def\noexpand#2{\the\toks0}\def\noexpand#3{\the\toks2}}% + \expandafter + }\@tempa +} +\@ifundefined{fc@get@last@letter}{}{\PackageError{fcnumparser}{Duplicate definition}{Redefinition + of macro `fc@get@last@letter'}}% +\def\fc@get@last@letter#1#2#3{% + {% + \toks1{#1}% + \toks0{}% + \toksdef\@tempt0 % + \def\@tempa##1##2\fc@nil{% + \toks2{##1}% + \toks3{##2}% + \def\@tempb{##2}% + }% + \def\@templ{% + \expandafter\@tempa\the\toks1 \fc@nil + \ifx\@tempb\@empty + \let\next\relax + \else + \expandafter\expandafter\expandafter\@tempt + \expandafter\expandafter\expandafter{% + \expandafter\the\expandafter\@tempt + \the\toks2}% + \toks1\toks3 % + \fi + \next + }% + \let\next\@templ + \next + \edef\@tempa{\def\noexpand#2{\the\toks0}\def\noexpand#3{\the\toks1}}% + \expandafter + }\@tempa +}% +\iffalse Local variables: \fi +\iffalse mode: docTeX \fi +\iffalse End: \fi +\endinput +%% +%% End of file `fcnumparser.sty'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fcprefix.sty b/Master/texmf-dist/tex/latex/fmtcount/fcprefix.sty new file mode 100644 index 00000000000..71dde7ac88f --- /dev/null +++ b/Master/texmf-dist/tex/latex/fmtcount/fcprefix.sty @@ -0,0 +1,417 @@ +%% +%% This is file `fcprefix.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fmtcount.dtx (with options: `fcprefix.sty,package') +%% +%% fmtcount.dtx +%% Copyright 2012 Nicola Talbot +%% +%% 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. +%% +%% 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} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fcprefix} +\RequirePackage{ifthen} +\RequirePackage{keyval} +\RequirePackage{fcnumparser} +\define@key{fcprefix}{use duode and unde}[below20]{% + \ifthenelse{\equal{#1}{below20}}{% + \def\fc@duodeandunde{2}% + }{% + \ifthenelse{\equal{#1}{never}}{% + \def\fc@duodeandunde{0}% + }{% + \PackageError{fcprefix}{Unexpected option}{% + Option `use duode and unde' expects `below 20' or `never' }% + }% + }% +} +\def\fc@duodeandunde{2} +\define@key{fcprefix}{numeral u in duo}[false]{% + \ifthenelse{\equal{#1}{false}}{% + \let\fc@u@in@duo\@empty + }{% + \ifthenelse{\equal{#1}{true}}{% + \def\fc@u@in@duo{u}% + }{% + \PackageError{fcprefix}{Unexpected option}{% + Option `numeral u in duo' expects `true' or `false' }% + }% + }% +} +\define@key{fcprefix}{e accute}[false]{% + \ifthenelse{\equal{#1}{false}}{% + \let\fc@prefix@eaccute\@firstofone + }{% + \ifthenelse{\equal{#1}{true}}{% + \let\fc@prefix@eaccute\'% + }{% + \PackageError{fcprefix}{Unexpected option}{% + Option `e accute' expects `true' or `false' }% + }% + }% +} +\let\fc@prefix@eaccute\'% +\define@key{fcprefix}{power of millia}[prefix]{% + \ifthenelse{\equal{#1}{prefix}}{% + \let\fc@power@of@millia@init\@gobbletwo + \let\fc@power@of@millia\fc@@prefix@millia + }{% + \ifthenelse{\equal{#1}{arabic}}{% + \let\fc@power@of@millia@init\@gobbletwo + \let\fc@power@of@millia\fc@@arabic@millia + }{% + \ifthenelse{\equal{#1}{recursive}}{% + \let\fc@power@of@millia@init\fc@@recurse@millia@init + \let\fc@power@of@millia\fc@@recurse@millia + }{% + \PackageError{fcprefix}{Unexpected option}{% + Option `power of millia' expects `recursive', `arabic', or `prefix' }% + }% + }% + }% +} +\def\fc@@recurse@millia#1#2{% + \let\@tempp#1% + \edef#1{millia\@tempp}% +} +\def\fc@@recurse@millia@init#1#2{% + {% + \edef\@tempb{\number#2}% + \count0=0 % + \let\@tempa\@empty + \loop + \ifnum\count0<\@tempb + \advance\count0 by 1 % + \expandafter\def + \expandafter\@tempa\expandafter{\@tempa millia}% + \repeat + \edef\@tempb{\def\noexpand#1{\@tempa}}% + \expandafter + }\@tempb +} +\def\fc@@arabic@millia#1#2{% + \ifnnum#2=0 % + \let#1\@empty + \else + \edef#1{millia\^{}\the#2}% + \fi +} +\def\fc@@prefix@millia#1#2{% + \fc@@latin@numeral@pefix{#2}{#1}% +} +\let\fc@power@of@millia@init\@gobbletwo +\let\fc@power@of@millia\fc@@prefix@millia +\@ifundefined{fc@@latin@cardinal@pefix}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@latin@cardinal@pefix'}} +\def\fc@@latin@cardinal@pefix#1#2{% + {% + \edef\@tempa{\number#1}% + \expandafter\fc@number@parser\expandafter{\@tempa}% + \count2=0 % + \let\@tempt\@empty + \def\@tempu{t}% + \let\@tempm\@empty + \def\@templ{% + \ifnum\count2>\fc@max@weight + \let\next\relax + \else + \fc@read@unit{\count3}{\count2}% + \advance\count2 by 1 % + \fc@read@unit{\count4}{\count2}% + \advance\count2 by 1 % + \fc@read@unit{\count5}{\count2}% + \advance\count2 by 1 % + \edef\@tempn{% + \ifnum\count3=0\else 1\fi + \ifnum\count4=0\else 1\fi + \ifnum\count5=0\else 1\fi + }% + \ifx\@tempn\@empty\else + \let\@tempt\@tempu + \let\@tempu\@empty + \fi + \let\@tempp\@tempa + \edef\@tempa{% + \ifcase\count5 % + \or cen% + \or ducen% + \or trecen% + \or quadringen% + \or quingen% + \or sescen% + \or septigen% + \or octingen% + \or nongen% + \fi + \ifnum\count4=0 % + % x0(0..9) + \ifnum\count2=3 % + % Absolute weight zero + \ifcase\count3 \@tempt + \or m% + \or b% + \or tr% + \or quadr% + \or quin\@tempt + \or sex\@tempt + \or sep\@tempt + \or oc\@tempt + \or non% + \fi + \else + \ifcase\count3 % + \or \ifnum\count2>\fc@max@weight\else un\fi + \or d\fc@u@in@duo o% + \or tre% + \or quattuor% + \or quin% + \or sex% + \or septen% + \or octo% + \or novem% + \fi + \fi + \else + % x(10..99) + \ifcase\count3 % + \or un% + \or d\fc@u@in@duo o% + \or tre% + \or quattuor% + \or quin% + \or sex% + \or septen% + \or octo% + \or novem% + \fi + \ifcase\count4 % + \or dec% + \or vigin\@tempt + \or trigin\@tempt + \or quadragin\@tempt + \or quinquagin\@tempt + \or sexagin\@tempt + \or septuagin\@tempt + \or octogin\@tempt + \or nonagin\@tempt + \fi + \fi + \@tempm + \@tempp + }% + \fc@power@of@millia\@tempm{\count2}% + \fi + \next + }% + \let\@tempa\@empty + \let\next\@templ + \@templ + \def\@tempb##1{\def\@tempa{\def#2{##1}}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa +} +\@ifundefined{fc@@latin@numeral@pefix}{}{% + \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro + `fc@@latin@numeral@pefix'}} +\def\fc@@latin@numeral@pefix#1#2{% + {% + \edef\@tempa{\number#1}% + \def\fc@unit@weight{0}% + \expandafter\fc@number@parser\expandafter{\@tempa}% + \count2=0 % + \let\@tempm\@empty + \def\@templ{% + \ifnum\count2>\fc@max@weight + \let\next\relax + \else + \fc@read@unit{\count3}{\count2}% + \advance\count2 by 1 % + \fc@read@unit{\count4}{\count2}% + \advance\count2 by 1 % + \fc@read@unit{\count5}{\count2}% + \advance\count2 by 1 % + \let\@tempn\@secondoftwo + \ifnum\count3>7 % + \ifnum\count4<\fc@duodeandunde + \ifnum\count4>0 % + \let\@tempn\@firstoftwo + \fi + \fi + \fi + \@tempn + {% use duodevicies for eighteen + \advance\count4 by 1 % + \let\@temps\@secondoftwo + }{% do not use duodevicies for eighteen + \let\@temps\@firstoftwo + }% + \let\@tempp\@tempa + \edef\@tempa{% + % hundreds + \ifcase\count5 % + \expandafter\@gobble + \or c% + \or duc% + \or trec% + \or quadring% + \or quing% + \or sesc% + \or septing% + \or octing% + \or nong% + \fi + {enties}% + \ifnum\count4=0 % + \ifcase\count3 % + \or + \ifnum\count2=3 % + s\fc@prefix@eaccute emel% + \else + \ifnum\count2>\fc@max@weight\else un\fi + \fi + \or bis% + \or ter% + \or quater% + \or quinquies% + \or sexies% + \or septies% + \or octies% + \or novies% + \fi + \else + \ifcase\count3 % + \or un% + \or d\fc@u@in@duo o% + \or ter% + \or quater% + \or quin% + \or sex% + \or septen% + \or \@temps{octo}{duod\fc@prefix@eaccute e}% x8 = two before next (x+1)0 + \or \@temps{novem}{und\fc@prefix@eaccute e}% x9 = one before next (x+1)0 + \fi + \ifcase\count4 % + % can't get here + \or d\fc@prefix@eaccute ec% + \or vic% + \or tric% + \or quadrag% + \or quinquag% + \or sexag% + \or septuag% + \or octog% + \or nonag% + \fi + ies% + \fi + % Insert the millies^(n/3) only if one of \count3 \count4 \count5 is non zero + \@tempm + % add up previous version of \@tempa + \@tempp + }% + \let\@tempp\@tempp + \edef\@tempm{millies\@tempp}% + \fi + \next + }% + \let\@tempa\@empty + \let\next\@templ + \@templ + \def\@tempb##1{\def\@tempa{\def#2{##1}}}% + \expandafter\@tempb\expandafter{\@tempa}% + \expandafter + }\@tempa +} +\def\fc@call@opt@arg@second#1#2{% + \def\@tempb{% + \ifx[\@tempa + \def\@tempc[####1]{% + {#1{####1}{#2}}% + }% + \else + \def\@tempc{{#1{}{#2}}}% + \fi + \@tempc + }% + \futurelet\@tempa + \@tempb +} +\def\fc@call@opt@arg@first#1{% + \def\@tempb{% + \ifx[\@tempa + \def\@tempc[####1]####2{{#1{####1}{####2}}}% + \else + \def\@tempc####1{{#1{}{####1}}}% + \fi + \@tempc + }% + \futurelet\@tempa + \@tempb +} + +\let\fc@call\fc@call@opt@arg@first +\newcommand*{\@latinnumeralstringnum}[2]{% + \setkeys{fcprefix}{#1}% + \fc@@latin@numeral@pefix{#2}\@tempa + \@tempa +} +\newcommand*{\@latinnumeralstring}[2]{% + \setkeys{fcprefix}{#1}% + \expandafter\let\expandafter + \@tempa\expandafter\csname c@#2\endcsname + \expandafter\fc@@latin@numeral@pefix\expandafter{\the\@tempa}\@tempa + \@tempa +} +\newcommand*{\latinnumeralstring}{% + \fc@call\@latinnumeralstring +} +\newcommand*{\latinnumeralstringnum}{% + \fc@call\@latinnumeralstringnum +} +\iffalse Local variables: \fi +\iffalse mode: docTeX \fi +\iffalse End: \fi +\endinput +%% +%% End of file `fcprefix.sty'. diff --git a/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty b/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty index cc1dfb7819c..e5bf3e772e8 100644 --- a/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty +++ b/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty @@ -7,7 +7,7 @@ %% fmtcount.dtx (with options: `fmtcount.sty,package') %% %% fmtcount.dtx -%% Copyright 2009 Nicola Talbot +%% Copyright 2012 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -21,7 +21,7 @@ %% %% The Current Maintainer of this work is Nicola Talbot. %% -%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fmtcount.sty, fc-british.def, fc-english.def, fc-french.def, fc-german.def, fc-italian.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def, fmtcount.perl, fc-lang.tex, fc-samp.tex. +%% 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 @@ -38,96 +38,152 @@ %% 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} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{fmtcount}[2009/10/02 v1.31] +\ProvidesPackage{fmtcount}[2012/06/18 v2.0] \RequirePackage{ifthen} \RequirePackage{keyval} +\RequirePackage{etoolbox} \RequirePackage{amsgen} \providecommand*{\fmtord}[1]{\textsuperscript{#1}} \newcount\c@padzeroesN \c@padzeroesN=1\relax \providecommand*{\padzeroes}[1][17]{\c@padzeroesN=#1} -\@ifundefined{l@english}{}{\input{fc-english.def}} -\@ifundefined{l@UKenglish}{}{\input{fc-UKenglish.def}} -\@ifundefined{l@british}{}{\input{fc-british.def}} -\@ifundefined{l@USenglish}{}{\input{fc-USenglish.def}} -\@ifundefined{l@spanish}{}{\input{fc-spanish.def}} -\@ifundefined{l@portuges}{}{\input{fc-portuges.def}} -\@ifundefined{l@french}{}{\input{fc-french.def}} -\@ifundefined{l@german}{% -\@ifundefined{l@ngerman}{}{\input{fc-german.def}}}{% -\input{fc-german.def}} -\@ifundefined{l@italian}{}{\input{fc-italian.def}} +\newcommand*{\FCloadlang}[1]{% + \@FC@iflangloaded{#1}{}% + {% + \input{fc-#1.def}% + }% +} +\newcommand{\@FC@iflangloaded}[3]{% + \ifcsundef{ver@fc-#1.def}{#3}{#2}% +} +\newcommand*{\ProvidesFCLanguage}[1]{% + \ProvidesFile{fc-#1.def}% +} +\newcommand*{\@fc@loadifbabelldf}[1]{% + \ifcsundef{ver@#1.ldf}{}{\FCloadlang{#1}}% +} +\@fc@loadifbabelldf{english} +\@fc@loadifbabelldf{UKenglish} +\@fc@loadifbabelldf{british} +\@fc@loadifbabelldf{USenglish} +\@fc@loadifbabelldf{american} +\@fc@loadifbabelldf{spanish} +\@fc@loadifbabelldf{portuges} +\@fc@loadifbabelldf{french} +\@fc@loadifbabelldf{frenchb} +\@fc@loadifbabelldf{german}% +\@fc@loadifbabelldf{germanb}% +\@fc@loadifbabelldf{ngerman}% +\@fc@loadifbabelldf{ngermanb}% +\@fc@loadifbabelldf{italian} \def\fmtcount@french{france} \define@key{fmtcount}{french}[france]{% -\@ifundefined{datefrench}{% -\PackageError{fmtcount}{Language `french' not defined}{You need -to load babel before loading fmtcount}}{ -\ifthenelse{\equal{#1}{france} - \or\equal{#1}{swiss} - \or\equal{#1}{belgian}}{% - \def\fmtcount@french{#1}}{% -\PackageError{fmtcount}{Invalid value `#1' to french key} -{Option `french' can only take the values `france', -`belgian' or `swiss'}} -}} + \@ifundefined{datefrench}% + {% + \PackageError{fmtcount}% + {Language `french' not defined}% + {You need to load babel before loading fmtcount}% + }% + {% + \setkeys{fcfrench}{#1}% + }% +} \define@key{fmtcount}{fmtord}{% -\ifthenelse{\equal{#1}{level} - \or\equal{#1}{raise} - \or\equal{#1}{user}}{ - \def\fmtcount@fmtord{#1}}{% -\PackageError{fmtcount}{Invalid value `#1' to fmtord key} -{Option `fmtord' can only take the values `level', `raise' -or `user'}}} + \ifthenelse{\equal{#1}{level} + \or\equal{#1}{raise} + \or\equal{#1}{user}}% + {% + \def\fmtcount@fmtord{#1}% + }% + {% + \PackageError{fmtcount}% + {Invalid value `#1' to fmtord key}% + {Option `fmtord' can only take the values `level', `raise' + or `user'}% + }% +} \newif\iffmtord@abbrv \fmtord@abbrvfalse \define@key{fmtcount}{abbrv}[true]{% -\ifthenelse{\equal{#1}{true}\or\equal{#1}{false}}{ - \csname fmtord@abbrv#1\endcsname}{% -\PackageError{fmtcount}{Invalid value `#1' to fmtord key} -{Option `fmtord' can only take the values `true' or -`false'}}} + \ifthenelse{\equal{#1}{true}\or\equal{#1}{false}}% + {% + \csname fmtord@abbrv#1\endcsname + }% + {% + \PackageError{fmtcount}% + {Invalid value `#1' to fmtord key}% + {Option `fmtord' can only take the values `true' or + `false'}% + }% +} +\define@key{fmtcount}{prefix}[scale=long]{% + \RequirePackage{fmtprefix}% + \fmtprefixsetoption{#1}% +} \newcommand*{\fmtcountsetoptions}[1]{% -\def\fmtcount@fmtord{}% -\setkeys{fmtcount}{#1}% -\@ifundefined{datefrench}{}{% -\edef\@ordinalstringMfrench{\noexpand -\csname @ordinalstringMfrench\fmtcount@french\noexpand\endcsname}% -\edef\@ordinalstringFfrench{\noexpand -\csname @ordinalstringFfrench\fmtcount@french\noexpand\endcsname}% -\edef\@OrdinalstringMfrench{\noexpand -\csname @OrdinalstringMfrench\fmtcount@french\noexpand\endcsname}% -\edef\@OrdinalstringFfrench{\noexpand -\csname @OrdinalstringFfrench\fmtcount@french\noexpand\endcsname}% -\edef\@numberstringMfrench{\noexpand -\csname @numberstringMfrench\fmtcount@french\noexpand\endcsname}% -\edef\@numberstringFfrench{\noexpand -\csname @numberstringFfrench\fmtcount@french\noexpand\endcsname}% -\edef\@NumberstringMfrench{\noexpand -\csname @NumberstringMfrench\fmtcount@french\noexpand\endcsname}% -\edef\@NumberstringFfrench{\noexpand -\csname @NumberstringFfrench\fmtcount@french\noexpand\endcsname}% + \def\fmtcount@fmtord{}% + \setkeys{fmtcount}{#1}% + \@ifundefined{datefrench}{}% + {% + \edef\@ordinalstringMfrench{\noexpand + \csname @ordinalstringMfrench\fmtcount@french\noexpand\endcsname}% + \edef\@ordinalstringFfrench{\noexpand + \csname @ordinalstringFfrench\fmtcount@french\noexpand\endcsname}% + \edef\@OrdinalstringMfrench{\noexpand + \csname @OrdinalstringMfrench\fmtcount@french\noexpand\endcsname}% + \edef\@OrdinalstringFfrench{\noexpand + \csname @OrdinalstringFfrench\fmtcount@french\noexpand\endcsname}% + \edef\@numberstringMfrench{\noexpand + \csname @numberstringMfrench\fmtcount@french\noexpand\endcsname}% + \edef\@numberstringFfrench{\noexpand + \csname @numberstringFfrench\fmtcount@french\noexpand\endcsname}% + \edef\@NumberstringMfrench{\noexpand + \csname @NumberstringMfrench\fmtcount@french\noexpand\endcsname}% + \edef\@NumberstringFfrench{\noexpand + \csname @NumberstringFfrench\fmtcount@french\noexpand\endcsname}% + }% + \ifthenelse{\equal{\fmtcount@fmtord}{level}}% + {% + \renewcommand{\fmtord}[1]{##1}% + }% + {% + \ifthenelse{\equal{\fmtcount@fmtord}{raise}}% + {% + \renewcommand{\fmtord}[1]{\textsuperscript{##1}}% + }% + {% + }% + } +} +\InputIfFileExists{fmtcount.cfg}% +{% + \PackageInfo{fmtcount}{Using configuration file fmtcount.cfg}% }% -\ifthenelse{\equal{\fmtcount@fmtord}{level}}{% -\renewcommand{\fmtord}[1]{##1}}{% -\ifthenelse{\equal{\fmtcount@fmtord}{raise}}{% -\renewcommand{\fmtord}[1]{\textsuperscript{##1}}}{% -}} -} -\InputIfFileExists{fmtcount.cfg}{% -\typeout{Using configuration file fmtcount.cfg}}{% -\typeout{No configuration file fmtcount.cfg found.}} +{% +} \DeclareOption{level}{\def\fmtcount@fmtord{level}% -\def\fmtord#1{#1}} + \def\fmtord#1{#1}} \DeclareOption{raise}{\def\fmtcount@fmtord{raise}% -\def\fmtord#1{\textsuperscript{#1}}} + \def\fmtord#1{\textsuperscript{#1}}} \ProcessOptions \newcount\@DT@modctr \def\@modulo#1#2{% -\@DT@modctr=#1\relax -\divide \@DT@modctr by #2\relax -\multiply \@DT@modctr by #2\relax -\advance #1 by -\@DT@modctr} + \@DT@modctr=#1\relax + \divide \@DT@modctr by #2\relax + \multiply \@DT@modctr by #2\relax + \advance #1 by -\@DT@modctr +} \newcount\@ordinalctr \newcount\@orgargctr \newcount\@strctr @@ -136,568 +192,962 @@ or `user'}}} \newcount\@DT@loopN \newcount\@DT@X \newcommand*{\@binary}[1]{% -\@DT@padzeroestrue -\@DT@loopN=17\relax -\@strctr=\@DT@loopN -\whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% -\@strctr=65536\relax -\@DT@X=#1\relax -\loop -\@DT@modctr=\@DT@X -\divide\@DT@modctr by \@strctr -\ifthenelse{\boolean{@DT@padzeroes} \and \(\@DT@modctr=0\) \and \(\@DT@loopN>\c@padzeroesN\)}{}{\the\@DT@modctr}% -\ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi -\multiply\@DT@modctr by \@strctr -\advance\@DT@X by -\@DT@modctr -\divide\@strctr by 2\relax -\advance\@DT@loopN by -1\relax -\ifnum\@strctr>1 -\repeat -\the\@DT@X} + \@DT@padzeroestrue + \@DT@loopN=17\relax + \@strctr=\@DT@loopN + \whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% + \@strctr=65536\relax + \@DT@X=#1\relax + \loop + \@DT@modctr=\@DT@X + \divide\@DT@modctr by \@strctr + \ifthenelse{\boolean{@DT@padzeroes} + \and \(\@DT@modctr=0\) + \and \(\@DT@loopN>\c@padzeroesN\)}% + {}% + {\the\@DT@modctr}% + \ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi + \multiply\@DT@modctr by \@strctr + \advance\@DT@X by -\@DT@modctr + \divide\@strctr by 2\relax + \advance\@DT@loopN by -1\relax + \ifnum\@strctr>1 + \repeat + \the\@DT@X +} \let\binarynum=\@binary \newcommand*{\@octal}[1]{% -\ifnum#1>32768 -\PackageError{fmtcount}{Value of counter too large for \protect\@octal}{Maximum value 32768} -\else -\@DT@padzeroestrue -\@DT@loopN=6\relax -\@strctr=\@DT@loopN -\whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% -\@strctr=32768\relax -\@DT@X=#1\relax -\loop -\@DT@modctr=\@DT@X -\divide\@DT@modctr by \@strctr -\ifthenelse{\boolean{@DT@padzeroes} \and \(\@DT@modctr=0\) \and \(\@DT@loopN>\c@padzeroesN\)}{}{\the\@DT@modctr}% -\ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi -\multiply\@DT@modctr by \@strctr -\advance\@DT@X by -\@DT@modctr -\divide\@strctr by 8\relax -\advance\@DT@loopN by -1\relax -\ifnum\@strctr>1 -\repeat -\the\@DT@X -\fi} + \ifnum#1>32768 + \PackageError{fmtcount}% + {Value of counter too large for \protect\@octal} + {Maximum value 32768} + \else + \@DT@padzeroestrue + \@DT@loopN=6\relax + \@strctr=\@DT@loopN + \whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% + \@strctr=32768\relax + \@DT@X=#1\relax + \loop + \@DT@modctr=\@DT@X + \divide\@DT@modctr by \@strctr + \ifthenelse{\boolean{@DT@padzeroes} + \and \(\@DT@modctr=0\) + \and \(\@DT@loopN>\c@padzeroesN\)}% + {}{\the\@DT@modctr}% + \ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi + \multiply\@DT@modctr by \@strctr + \advance\@DT@X by -\@DT@modctr + \divide\@strctr by 8\relax + \advance\@DT@loopN by -1\relax + \ifnum\@strctr>1 + \repeat + \the\@DT@X + \fi +} \let\octalnum=\@octal -\newcommand*{\@@hexadecimal}[1]{\ifcase#10\or1\or2\or3\or4\or5\or -6\or7\or8\or9\or a\or b\or c\or d\or e\or f\fi} - +\newcommand*{\@@hexadecimal}[1]{% + \ifcase#10\or1\or2\or3\or4\or5\or + 6\or7\or8\or9\or a\or b\or c\or d\or e\or f\fi +} \newcommand*{\@hexadecimal}[1]{% -\@DT@padzeroestrue -\@DT@loopN=5\relax -\@strctr=\@DT@loopN -\whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% -\@strctr=65536\relax -\@DT@X=#1\relax -\loop -\@DT@modctr=\@DT@X -\divide\@DT@modctr by \@strctr -\ifthenelse{\boolean{@DT@padzeroes}\and\(\@DT@modctr=0\)\and -\(\@DT@loopN>\c@padzeroesN\)}{}{\@@hexadecimal\@DT@modctr}% -\ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi -\multiply\@DT@modctr by \@strctr -\advance\@DT@X by -\@DT@modctr -\divide\@strctr by 16\relax -\advance\@DT@loopN by -1\relax -\ifnum\@strctr>1 -\repeat -\@@hexadecimal\@DT@X} - + \@DT@padzeroestrue + \@DT@loopN=5\relax + \@strctr=\@DT@loopN + \whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% + \@strctr=65536\relax + \@DT@X=#1\relax + \loop + \@DT@modctr=\@DT@X + \divide\@DT@modctr by \@strctr + \ifthenelse{\boolean{@DT@padzeroes} + \and \(\@DT@modctr=0\) + \and \(\@DT@loopN>\c@padzeroesN\)} + {}{\@@hexadecimal\@DT@modctr}% + \ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi + \multiply\@DT@modctr by \@strctr + \advance\@DT@X by -\@DT@modctr + \divide\@strctr by 16\relax + \advance\@DT@loopN by -1\relax + \ifnum\@strctr>1 + \repeat + \@@hexadecimal\@DT@X +} \let\hexadecimalnum=\@hexadecimal -\newcommand*{\@@Hexadecimal}[1]{\ifcase#10\or1\or2\or3\or4\or5\or6\or -7\or8\or9\or A\or B\or C\or D\or E\or F\fi} - +\newcommand*{\@@Hexadecimal}[1]{% + \ifcase#10\or1\or2\or3\or4\or5\or6\or + 7\or8\or9\or A\or B\or C\or D\or E\or F\fi +} \newcommand*{\@Hexadecimal}[1]{% -\@DT@padzeroestrue -\@DT@loopN=5\relax -\@strctr=\@DT@loopN -\whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% -\@strctr=65536\relax -\@DT@X=#1\relax -\loop -\@DT@modctr=\@DT@X -\divide\@DT@modctr by \@strctr -\ifthenelse{\boolean{@DT@padzeroes} \and \(\@DT@modctr=0\) \and \(\@DT@loopN>\c@padzeroesN\)}{}{\@@Hexadecimal\@DT@modctr}% -\ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi -\multiply\@DT@modctr by \@strctr -\advance\@DT@X by -\@DT@modctr -\divide\@strctr by 16\relax -\advance\@DT@loopN by -1\relax -\ifnum\@strctr>1 -\repeat -\@@Hexadecimal\@DT@X} + \@DT@padzeroestrue + \@DT@loopN=5\relax + \@strctr=\@DT@loopN + \whiledo{\@strctr<\c@padzeroesN}{0\advance\@strctr by 1}% + \@strctr=65536\relax + \@DT@X=#1\relax + \loop + \@DT@modctr=\@DT@X + \divide\@DT@modctr by \@strctr + \ifthenelse{\boolean{@DT@padzeroes} + \and \(\@DT@modctr=0\) + \and \(\@DT@loopN>\c@padzeroesN\)}% + {}{\@@Hexadecimal\@DT@modctr}% + \ifnum\@DT@modctr=0\else\@DT@padzeroesfalse\fi + \multiply\@DT@modctr by \@strctr + \advance\@DT@X by -\@DT@modctr + \divide\@strctr by 16\relax + \advance\@DT@loopN by -1\relax + \ifnum\@strctr>1 + \repeat + \@@Hexadecimal\@DT@X +} \let\Hexadecimalnum=\@Hexadecimal \newcommand*{\@aaalph}[1]{% -\@DT@loopN=#1\relax -\advance\@DT@loopN by -1\relax -\divide\@DT@loopN by 26\relax -\@DT@modctr=\@DT@loopN -\multiply\@DT@modctr by 26\relax -\@DT@X=#1\relax -\advance\@DT@X by -1\relax -\advance\@DT@X by -\@DT@modctr -\advance\@DT@loopN by 1\relax -\advance\@DT@X by 1\relax -\loop -\@alph\@DT@X -\advance\@DT@loopN by -1\relax -\ifnum\@DT@loopN>0 -\repeat + \@DT@loopN=#1\relax + \advance\@DT@loopN by -1\relax + \divide\@DT@loopN by 26\relax + \@DT@modctr=\@DT@loopN + \multiply\@DT@modctr by 26\relax + \@DT@X=#1\relax + \advance\@DT@X by -1\relax + \advance\@DT@X by -\@DT@modctr + \advance\@DT@loopN by 1\relax + \advance\@DT@X by 1\relax + \loop + \@alph\@DT@X + \advance\@DT@loopN by -1\relax + \ifnum\@DT@loopN>0 + \repeat } \let\aaalphnum=\@aaalph \newcommand*{\@AAAlph}[1]{% -\@DT@loopN=#1\relax -\advance\@DT@loopN by -1\relax -\divide\@DT@loopN by 26\relax -\@DT@modctr=\@DT@loopN -\multiply\@DT@modctr by 26\relax -\@DT@X=#1\relax -\advance\@DT@X by -1\relax -\advance\@DT@X by -\@DT@modctr -\advance\@DT@loopN by 1\relax -\advance\@DT@X by 1\relax -\loop -\@Alph\@DT@X -\advance\@DT@loopN by -1\relax -\ifnum\@DT@loopN>0 -\repeat + \@DT@loopN=#1\relax + \advance\@DT@loopN by -1\relax + \divide\@DT@loopN by 26\relax + \@DT@modctr=\@DT@loopN + \multiply\@DT@modctr by 26\relax + \@DT@X=#1\relax + \advance\@DT@X by -1\relax + \advance\@DT@X by -\@DT@modctr + \advance\@DT@loopN by 1\relax + \advance\@DT@X by 1\relax + \loop + \@Alph\@DT@X + \advance\@DT@loopN by -1\relax + \ifnum\@DT@loopN>0 + \repeat } \let\AAAlphnum=\@AAAlph \newcommand*{\@abalph}[1]{% -\ifnum#1>17576\relax -\PackageError{fmtcount}{Value of counter too large for -\protect\@abalph}{Maximum value 17576}% -\else -\@DT@padzeroestrue -\@strctr=17576\relax -\@DT@X=#1\relax -\advance\@DT@X by -1\relax -\loop -\@DT@modctr=\@DT@X -\divide\@DT@modctr by \@strctr -\ifthenelse{\boolean{@DT@padzeroes}\and -\(\@DT@modctr=1\)}{}{\@alph\@DT@modctr}% -\ifnum\@DT@modctr=1\else\@DT@padzeroesfalse\fi -\multiply\@DT@modctr by \@strctr -\advance\@DT@X by -\@DT@modctr -\divide\@strctr by 26\relax -\ifnum\@strctr>1 -\repeat -\advance\@DT@X by 1\relax -\@alph\@DT@X -\fi} + \ifnum#1>17576\relax + \PackageError{fmtcount}% + {Value of counter too large for \protect\@abalph}% + {Maximum value 17576}% + \else + \@DT@padzeroestrue + \@strctr=17576\relax + \@DT@X=#1\relax + \advance\@DT@X by -1\relax + \loop + \@DT@modctr=\@DT@X + \divide\@DT@modctr by \@strctr + \ifthenelse{\boolean{@DT@padzeroes} + \and \(\@DT@modctr=1\)}% + {}{\@alph\@DT@modctr}% + \ifnum\@DT@modctr=1\else\@DT@padzeroesfalse\fi + \multiply\@DT@modctr by \@strctr + \advance\@DT@X by -\@DT@modctr + \divide\@strctr by 26\relax + \ifnum\@strctr>1 + \repeat + \advance\@DT@X by 1\relax + \@alph\@DT@X + \fi +} \let\abalphnum=\@abalph \newcommand*{\@ABAlph}[1]{% -\ifnum#1>17576\relax -\PackageError{fmtcount}{Value of counter too large for -\protect\@ABAlph}{Maximum value 17576}% -\else -\@DT@padzeroestrue -\@strctr=17576\relax -\@DT@X=#1\relax -\advance\@DT@X by -1\relax -\loop -\@DT@modctr=\@DT@X -\divide\@DT@modctr by \@strctr -\ifthenelse{\boolean{@DT@padzeroes}\and -\(\@DT@modctr=1\)}{}{\@Alph\@DT@modctr}% -\ifnum\@DT@modctr=1\else\@DT@padzeroesfalse\fi -\multiply\@DT@modctr by \@strctr -\advance\@DT@X by -\@DT@modctr -\divide\@strctr by 26\relax -\ifnum\@strctr>1 -\repeat -\advance\@DT@X by 1\relax -\@Alph\@DT@X -\fi} + \ifnum#1>17576\relax + \PackageError{fmtcount}% + {Value of counter too large for \protect\@ABAlph}% + {Maximum value 17576}% + \else + \@DT@padzeroestrue + \@strctr=17576\relax + \@DT@X=#1\relax + \advance\@DT@X by -1\relax + \loop + \@DT@modctr=\@DT@X + \divide\@DT@modctr by \@strctr + \ifthenelse{\boolean{@DT@padzeroes}\and + \(\@DT@modctr=1\)}{}{\@Alph\@DT@modctr}% + \ifnum\@DT@modctr=1\else\@DT@padzeroesfalse\fi + \multiply\@DT@modctr by \@strctr + \advance\@DT@X by -\@DT@modctr + \divide\@strctr by 26\relax + \ifnum\@strctr>1 + \repeat + \advance\@DT@X by 1\relax + \@Alph\@DT@X + \fi +} \let\ABAlphnum=\@ABAlph \def\@fmtc@count#1#2\relax{% -\if\relax#1 -\else -\advance\@strctr by 1\relax -\@fmtc@count#2\relax -\fi} + \if\relax#1% + \else + \advance\@strctr by 1\relax + \@fmtc@count#2\relax + \fi +} \newcommand{\@decimal}[1]{% -\@strctr=0\relax -\expandafter\@fmtc@count\number#1\relax -\@DT@loopN=\c@padzeroesN -\advance\@DT@loopN by -\@strctr -\ifnum\@DT@loopN>0\relax -\@strctr=0\relax -\whiledo{\@strctr < \@DT@loopN}{0\advance\@strctr by 1\relax}% -\fi -\number#1\relax + \@strctr=0\relax + \expandafter\@fmtc@count\number#1\relax + \@DT@loopN=\c@padzeroesN + \advance\@DT@loopN by -\@strctr + \ifnum\@DT@loopN>0\relax + \@strctr=0\relax + \whiledo{\@strctr < \@DT@loopN}{0\advance\@strctr by 1\relax}% + \fi + \number#1\relax } \let\decimalnum=\@decimal \newcommand{\FCordinal}[1]{% -\expandafter\protect\expandafter\ordinalnum{% -\expandafter\the\csname c@#1\endcsname}} -\@ifundefined{ordinal}{\let\ordinal\FCordinal}{% -\PackageWarning{fmtcount}{\string\ordinal -\space already defined use \string\FCordinal \space instead.}} -\newcommand*{\ordinalnum}[1]{\new@ifnextchar[{\@ordinalnum{#1}}{% -\@ordinalnum{#1}[m]}} -\def\@ordinalnum#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% - \protect\@ordinalF{#1}{\@fc@ordstr}% - }{% - \ifthenelse{\equal{#2}{n}}{% - \protect\@ordinalN{#1}{\@fc@ordstr}% - }{% - \ifthenelse{\equal{#2}{m}}{}{% - \PackageError{fmtcount}{Invalid gender option `#2'}{% - Available options are m, f or n}% + \expandafter\protect\expandafter\ordinalnum{% + \expandafter\the\csname c@#1\endcsname}% +} +\@ifundefined{ordinal} + {\let\ordinal\FCordinal}% + {% + \PackageWarning{fmtcount}% + {\string\ordinal \space already defined use + \string\FCordinal \space instead.} + } +\newcommand*{\ordinalnum}[1]{% + \new@ifnextchar[% + {\@ordinalnum{#1}}% + {\@ordinalnum{#1}[m]}% +} +\def\@ordinalnum#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@ordinalF{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@ordinalN{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2'}% + {Available options are m, f or n}% + }% + \protect\@ordinalM{#1}{\@fc@ordstr}% }% - \protect\@ordinalM{#1}{\@fc@ordstr}% }% - }% -\@fc@ordstr -}} + \@fc@ordstr + }% +} \newcommand*{\storeordinal}[2]{% -\expandafter\protect\expandafter\storeordinalnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storeordinalnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand*{\storeordinalnum}[2]{% -\@ifnextchar[{\@storeordinalnum{#1}{#2}}{% -\@storeordinalnum{#1}{#2}[m]}} + \@ifnextchar[% + {\@storeordinalnum{#1}{#2}}% + {\@storeordinalnum{#1}{#2}[m]}% +} \def\@storeordinalnum#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@ordinalF{#2}{\@fc@ord}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@ordinalN{#2}{\@fc@ord}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3'}{% -Available options are m or f}}% -\protect\@ordinalM{#2}{\@fc@ord}}}% -\expandafter\let\csname @fcs@#1\endcsname\@fc@ord} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@ordinalF{#2}{\@fc@ord} + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@ordinalN{#2}{\@fc@ord}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#3'}% + {Available options are m or f}% + }% + \protect\@ordinalM{#2}{\@fc@ord}% + }% + }% + \expandafter\let\csname @fcs@#1\endcsname\@fc@ord +} \newcommand*{\FMCuse}[1]{\csname @fcs@#1\endcsname} \newcommand*{\ordinalstring}[1]{% -\expandafter\protect\expandafter\ordinalstringnum{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\ordinalstringnum{% + \expandafter\the\csname c@#1\endcsname}% +} \newcommand{\ordinalstringnum}[1]{% -\new@ifnextchar[{\@ordinal@string{#1}}{\@ordinal@string{#1}[m]}} -\def\@ordinal@string#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% -\protect\@ordinalstringF{#1}{\@fc@ordstr}}{% -\ifthenelse{\equal{#2}{n}}{% -\protect\@ordinalstringN{#1}{\@fc@ordstr}}{% -\ifthenelse{\equal{#2}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#2' to -\string\ordinalstring}{Available options are m, f or f}}% -\protect\@ordinalstringM{#1}{\@fc@ordstr}}}\@fc@ordstr}} + \new@ifnextchar[% + {\@ordinal@string{#1}}% + {\@ordinal@string{#1}[m]}% +} +\def\@ordinal@string#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@ordinalstringF{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@ordinalstringN{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2' to \string\ordinalstring}% + {Available options are m, f or f}% + }% + \protect\@ordinalstringM{#1}{\@fc@ordstr}% + }% + }% + \@fc@ordstr + }% +} \newcommand*{\storeordinalstring}[2]{% -\expandafter\protect\expandafter\storeordinalstringnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storeordinalstringnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand*{\storeordinalstringnum}[2]{% -\@ifnextchar[{\@store@ordinal@string{#1}{#2}}{% -\@store@ordinal@string{#1}{#2}[m]}} + \@ifnextchar[% + {\@store@ordinal@string{#1}{#2}}% + {\@store@ordinal@string{#1}{#2}[m]}% +} \def\@store@ordinal@string#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@ordinalstringF{#2}{\@fc@ordstr}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@ordinalstringN{#2}{\@fc@ordstr}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3' to -\string\ordinalstring}{Available options are m, f or n}}% -\protect\@ordinalstringM{#2}{\@fc@ordstr}}}% -\expandafter\let\csname @fcs@#1\endcsname\@fc@ordstr} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@ordinalstringF{#2}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@ordinalstringN{#2}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#3' to \string\ordinalstring}% + {Available options are m, f or n}% + }% + \protect\@ordinalstringM{#2}{\@fc@ordstr}% + }% + }% + \expandafter\let\csname @fcs@#1\endcsname\@fc@ordstr +} \newcommand*{\Ordinalstring}[1]{% -\expandafter\protect\expandafter\Ordinalstringnum{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\Ordinalstringnum{% + \expandafter\the\csname c@#1\endcsname}% +} \newcommand*{\Ordinalstringnum}[1]{% -\new@ifnextchar[{\@Ordinal@string{#1}}{\@Ordinal@string{#1}[m]}} -\def\@Ordinal@string#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% -\protect\@OrdinalstringF{#1}{\@fc@ordstr}}{% -\ifthenelse{\equal{#2}{n}}{% -\protect\@OrdinalstringN{#1}{\@fc@ordstr}}{% -\ifthenelse{\equal{#2}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#2'}{% -Available options are m, f or n}}% -\protect\@OrdinalstringM{#1}{\@fc@ordstr}}}\@fc@ordstr}} + \new@ifnextchar[% + {\@Ordinal@string{#1}}% + {\@Ordinal@string{#1}[m]}% +} +\def\@Ordinal@string#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@OrdinalstringF{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@OrdinalstringN{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2'}% + {Available options are m, f or n}% + }% + \protect\@OrdinalstringM{#1}{\@fc@ordstr}% + }% + }% + \@fc@ordstr + }% +} \newcommand*{\storeOrdinalstring}[2]{% -\expandafter\protect\expandafter\storeOrdinalstringnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storeOrdinalstringnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand*{\storeOrdinalstringnum}[2]{% -\@ifnextchar[{\@store@Ordinal@string{#1}{#2}}{% -\@store@Ordinal@string{#1}{#2}[m]}} + \@ifnextchar[% + {\@store@Ordinal@string{#1}{#2}}% + {\@store@Ordinal@string{#1}{#2}[m]}% +} \def\@store@Ordinal@string#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@OrdinalstringF{#2}{\@fc@ordstr}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@OrdinalstringN{#2}{\@fc@ordstr}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3'}{% -Available options are m or f}}% -\protect\@OrdinalstringM{#2}{\@fc@ordstr}}}% -\expandafter\let\csname @fcs@#1\endcsname\@fc@ordstr} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@OrdinalstringF{#2}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@OrdinalstringN{#2}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#3'}% + {Available options are m or f}% + }% + \protect\@OrdinalstringM{#2}{\@fc@ordstr}% + }% + }% + \expandafter\let\csname @fcs@#1\endcsname\@fc@ordstr +} \newcommand*{\storeORDINALstring}[2]{% -\expandafter\protect\expandafter\storeORDINALstringnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storeORDINALstringnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand*{\storeORDINALstringnum}[2]{% -\@ifnextchar[{\@store@ORDINAL@string{#1}{#2}}{% -\@store@ORDINAL@string{#1}{#2}[m]}} + \@ifnextchar[% + {\@store@ORDINAL@string{#1}{#2}}% + {\@store@ORDINAL@string{#1}{#2}[m]}% +} \def\@store@ORDINAL@string#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@ordinalstringF{#2}{\@fc@ordstr}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@ordinalstringN{#2}{\@fc@ordstr}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3'}{% -Available options are m or f}}% -\protect\@ordinalstringM{#2}{\@fc@ordstr}}}% -\expandafter\edef\csname @fcs@#1\endcsname{% -\noexpand\MakeUppercase{\@fc@ordstr}}} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@ordinalstringF{#2}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@ordinalstringN{#2}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#3'}% + {Available options are m or f}% + }% + \protect\@ordinalstringM{#2}{\@fc@ordstr}% + }% + }% + \expandafter\edef\csname @fcs@#1\endcsname{% + \noexpand\MakeUppercase{\@fc@ordstr}% + }% +} \newcommand*{\ORDINALstring}[1]{% -\expandafter\protect\expandafter\ORDINALstringnum{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\ORDINALstringnum{% + \expandafter\the\csname c@#1\endcsname + }% +} \newcommand*{\ORDINALstringnum}[1]{% -\new@ifnextchar[{\@ORDINAL@string{#1}}{\@ORDINAL@string{#1}[m]}} -\def\@ORDINAL@string#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% -\protect\@ordinalstringF{#1}{\@fc@ordstr}}{% -\ifthenelse{\equal{#2}{n}}{% -\protect\@ordinalstringN{#1}{\@fc@ordstr}}{% -\ifthenelse{\equal{#2}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#2'}{% -Available options are m, f or n}}% -\protect\@ordinalstringM{#1}{\@fc@ordstr}}}% -\MakeUppercase{\@fc@ordstr}}} + \new@ifnextchar[% + {\@ORDINAL@string{#1}}% + {\@ORDINAL@string{#1}[m]}% +} +\def\@ORDINAL@string#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@ordinalstringF{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@ordinalstringN{#1}{\@fc@ordstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2'}% + {Available options are m, f or n}% + }% + \protect\@ordinalstringM{#1}{\@fc@ordstr}% + }% + }% + \MakeUppercase{\@fc@ordstr}% + }% +} \newcommand*{\storenumberstring}[2]{% -\expandafter\protect\expandafter\storenumberstringnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storenumberstringnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand{\storenumberstringnum}[2]{% -\@ifnextchar[{\@store@number@string{#1}{#2}}{% -\@store@number@string{#1}{#2}[m]}} + \@ifnextchar[% + {\@store@number@string{#1}{#2}}% + {\@store@number@string{#1}{#2}[m]}% +} \def\@store@number@string#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@numberstringF{#2}{\@fc@numstr}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@numberstringN{#2}{\@fc@numstr}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3'}{% -Available options are m, f or n}}% -\protect\@numberstringM{#2}{\@fc@numstr}}}% -\expandafter\let\csname @fcs@#1\endcsname\@fc@numstr} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@numberstringF{#2}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@numberstringN{#2}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount} + {Invalid gender option `#3'}% + {Available options are m, f or n}% + }% + \protect\@numberstringM{#2}{\@fc@numstr}% + }% + }% + \expandafter\let\csname @fcs@#1\endcsname\@fc@numstr +} \newcommand*{\numberstring}[1]{% -\expandafter\protect\expandafter\numberstringnum{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\numberstringnum{% + \expandafter\the\csname c@#1\endcsname}% +} \newcommand*{\numberstringnum}[1]{% -\new@ifnextchar[{\@number@string{#1}}{\@number@string{#1}[m]}% -} -\def\@number@string#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% -\protect\@numberstringF{#1}{\@fc@numstr}}{% -\ifthenelse{\equal{#2}{n}}{% -\protect\@numberstringN{#1}{\@fc@numstr}}{% -\ifthenelse{\equal{#2}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#2'}{% -Available options are m, f or n}}% -\protect\@numberstringM{#1}{\@fc@numstr}}}\@fc@numstr}} + \new@ifnextchar[% + {\@number@string{#1}}% + {\@number@string{#1}[m]}% +} +\def\@number@string#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@numberstringF{#1}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@numberstringN{#1}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2'}% + {Available options are m, f or n}% + }% + \protect\@numberstringM{#1}{\@fc@numstr}% + }% + }% + \@fc@numstr + }% +} \newcommand*{\storeNumberstring}[2]{% -\expandafter\protect\expandafter\storeNumberstringnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storeNumberstringnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand{\storeNumberstringnum}[2]{% -\@ifnextchar[{\@store@Number@string{#1}{#2}}{% -\@store@Number@string{#1}{#2}[m]}} + \@ifnextchar[% + {\@store@Number@string{#1}{#2}}% + {\@store@Number@string{#1}{#2}[m]}% +} \def\@store@Number@string#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@NumberstringF{#2}{\@fc@numstr}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@NumberstringN{#2}{\@fc@numstr}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3'}{% -Available options are m, f or n}}% -\protect\@NumberstringM{#2}{\@fc@numstr}}}% -\expandafter\let\csname @fcs@#1\endcsname\@fc@numstr} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@NumberstringF{#2}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@NumberstringN{#2}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#3'}% + {Available options are m, f or n}% + }% + \protect\@NumberstringM{#2}{\@fc@numstr}% + }% + }% + \expandafter\let\csname @fcs@#1\endcsname\@fc@numstr +} \newcommand*{\Numberstring}[1]{% -\expandafter\protect\expandafter\Numberstringnum{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\Numberstringnum{% + \expandafter\the\csname c@#1\endcsname}% +} \newcommand*{\Numberstringnum}[1]{% -\new@ifnextchar[{\@Number@string{#1}}{\@Number@string{#1}[m]}} -\def\@Number@string#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% -\protect\@NumberstringF{#1}{\@fc@numstr}}{% -\ifthenelse{\equal{#2}{n}}{% -\protect\@NumberstringN{#1}{\@fc@numstr}}{% -\ifthenelse{\equal{#2}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#2'}{% -Available options are m, f or n}}% -\protect\@NumberstringM{#1}{\@fc@numstr}}}\@fc@numstr}} + \new@ifnextchar[% + {\@Number@string{#1}}% + {\@Number@string{#1}[m]}% +} +\def\@Number@string#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@NumberstringF{#1}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@NumberstringN{#1}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2'}% + {Available options are m, f or n}% + }% + \protect\@NumberstringM{#1}{\@fc@numstr}% + }% + }% + \@fc@numstr + }% +} \newcommand{\storeNUMBERstring}[2]{% -\expandafter\protect\expandafter\storeNUMBERstringnum{#1}{% -\expandafter\the\csname c@#2\endcsname}} + \expandafter\protect\expandafter\storeNUMBERstringnum{#1}{% + \expandafter\the\csname c@#2\endcsname}% +} \newcommand{\storeNUMBERstringnum}[2]{% -\@ifnextchar[{\@store@NUMBER@string{#1}{#2}}{% -\@store@NUMBER@string{#1}{#2}[m]}} + \@ifnextchar[% + {\@store@NUMBER@string{#1}{#2}}% + {\@store@NUMBER@string{#1}{#2}[m]}% +} \def\@store@NUMBER@string#1#2[#3]{% -\ifthenelse{\equal{#3}{f}}{% -\protect\@numberstringF{#2}{\@fc@numstr}}{% -\ifthenelse{\equal{#3}{n}}{% -\protect\@numberstringN{#2}{\@fc@numstr}}{% -\ifthenelse{\equal{#3}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#3'}{% -Available options are m or f}}% -\protect\@numberstringM{#2}{\@fc@numstr}}}% -\expandafter\edef\csname @fcs@#1\endcsname{% -\noexpand\MakeUppercase{\@fc@numstr}}} + \ifthenelse{\equal{#3}{f}}% + {% + \protect\@numberstringF{#2}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#3}{n}}% + {% + \protect\@numberstringN{#2}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#3}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#3'}% + {Available options are m or f}% + }% + \protect\@numberstringM{#2}{\@fc@numstr}% + }% + }% + \expandafter\edef\csname @fcs@#1\endcsname{% + \noexpand\MakeUppercase{\@fc@numstr}% + }% +} \newcommand*{\NUMBERstring}[1]{% -\expandafter\protect\expandafter\NUMBERstringnum{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\NUMBERstringnum{% + \expandafter\the\csname c@#1\endcsname}% +} \newcommand*{\NUMBERstringnum}[1]{% -\new@ifnextchar[{\@NUMBER@string{#1}}{\@NUMBER@string{#1}[m]}} -\def\@NUMBER@string#1[#2]{{% -\ifthenelse{\equal{#2}{f}}{% -\protect\@numberstringF{#1}{\@fc@numstr}}{% -\ifthenelse{\equal{#2}{n}}{% -\protect\@numberstringN{#1}{\@fc@numstr}}{% -\ifthenelse{\equal{#2}{m}}{}{% -\PackageError{fmtcount}{Invalid gender option `#2'}{% -Available options are m, f or n}}% -\protect\@numberstringM{#1}{\@fc@numstr}}}% -\MakeUppercase{\@fc@numstr}}} + \new@ifnextchar[% + {\@NUMBER@string{#1}}% + {\@NUMBER@string{#1}[m]}% +} +\def\@NUMBER@string#1[#2]{% + {% + \ifthenelse{\equal{#2}{f}}% + {% + \protect\@numberstringF{#1}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#2}{n}}% + {% + \protect\@numberstringN{#1}{\@fc@numstr}% + }% + {% + \ifthenelse{\equal{#2}{m}}% + {}% + {% + \PackageError{fmtcount}% + {Invalid gender option `#2'}% + {Available options are m, f or n}% + }% + \protect\@numberstringM{#1}{\@fc@numstr}% + }% + }% + \MakeUppercase{\@fc@numstr}% + }% +} \providecommand*{\binary}[1]{% -\expandafter\protect\expandafter\@binary{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@binary{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\aaalph}[1]{% -\expandafter\protect\expandafter\@aaalph{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@aaalph{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\AAAlph}[1]{% -\expandafter\protect\expandafter\@AAAlph{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@AAAlph{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\abalph}[1]{% -\expandafter\protect\expandafter\@abalph{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@abalph{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\ABAlph}[1]{% -\expandafter\protect\expandafter\@ABAlph{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@ABAlph{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\hexadecimal}[1]{% -\expandafter\protect\expandafter\@hexadecimal{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@hexadecimal{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\Hexadecimal}[1]{% -\expandafter\protect\expandafter\@Hexadecimal{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@Hexadecimal{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\octal}[1]{% -\expandafter\protect\expandafter\@octal{% -\expandafter\the\csname c@#1\endcsname}} + \expandafter\protect\expandafter\@octal{% + \expandafter\the\csname c@#1\endcsname}% +} \providecommand*{\decimal}[1]{% -\expandafter\protect\expandafter\@decimal{% -\expandafter\the\csname c@#1\endcsname}} -\def\@setdef@ultfmtcount{ -\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{} -\def\@ordinalstringM{\@ordinalstringMenglish} -\let\@ordinalstringF=\@ordinalstringMenglish -\let\@ordinalstringN=\@ordinalstringMenglish -\def\@OrdinalstringM{\@OrdinalstringMenglish} -\let\@OrdinalstringF=\@OrdinalstringMenglish -\let\@OrdinalstringN=\@OrdinalstringMenglish -\def\@numberstringM{\@numberstringMenglish} -\let\@numberstringF=\@numberstringMenglish -\let\@numberstringN=\@numberstringMenglish -\def\@NumberstringM{\@NumberstringMenglish} -\let\@NumberstringF=\@NumberstringMenglish -\let\@NumberstringN=\@NumberstringMenglish -\def\@ordinalM{\@ordinalMenglish} -\let\@ordinalF=\@ordinalM -\let\@ordinalN=\@ordinalM + \expandafter\protect\expandafter\@decimal{% + \expandafter\the\csname c@#1\endcsname}% +} +\def\@setdef@ultfmtcount{% + \@ifundefined{@ordinalMenglish}{\FCloadlang{english}}{}% + \def\@ordinalstringM{\@ordinalstringMenglish}% + \let\@ordinalstringF=\@ordinalstringMenglish + \let\@ordinalstringN=\@ordinalstringMenglish + \def\@OrdinalstringM{\@OrdinalstringMenglish}% + \let\@OrdinalstringF=\@OrdinalstringMenglish + \let\@OrdinalstringN=\@OrdinalstringMenglish + \def\@numberstringM{\@numberstringMenglish}% + \let\@numberstringF=\@numberstringMenglish + \let\@numberstringN=\@numberstringMenglish + \def\@NumberstringM{\@NumberstringMenglish}% + \let\@NumberstringF=\@NumberstringMenglish + \let\@NumberstringN=\@NumberstringMenglish + \def\@ordinalM{\@ordinalMenglish}% + \let\@ordinalF=\@ordinalM + \let\@ordinalN=\@ordinalM } \def\@set@mulitling@fmtcount{% -\def\@numberstringM{\@ifundefined{@numberstringM\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@numberstringM}}{% -\csname @numberstringM\languagename\endcsname}}% -\def\@numberstringF{\@ifundefined{@numberstringF\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@numberstringF}}{% -\csname @numberstringF\languagename\endcsname}}% -\def\@numberstringN{\@ifundefined{@numberstringN\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@numberstringN}}{% -\csname @numberstringN\languagename\endcsname}}% -\def\@NumberstringM{\@ifundefined{@NumberstringM\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@NumberstringM}}{% -\csname @NumberstringM\languagename\endcsname}}% -\def\@NumberstringF{\@ifundefined{@NumberstringF\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@NumberstringF}}{% -\csname @NumberstringF\languagename\endcsname}}% -\def\@NumberstringN{\@ifundefined{@NumberstringN\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@NumberstringN}}{% -\csname @NumberstringN\languagename\endcsname}}% -\def\@ordinalM{\@ifundefined{@ordinalM\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@ordinalM}}{% -\csname @ordinalM\languagename\endcsname}}% -\def\@ordinalF{\@ifundefined{@ordinalF\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@ordinalF}}{% -\csname @ordinalF\languagename\endcsname}}% -\def\@ordinalN{\@ifundefined{@ordinalN\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@ordinalN}}{% -\csname @ordinalN\languagename\endcsname}}% -\def\@ordinalstringM{\@ifundefined{@ordinalstringM\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@ordinalstringM}}{% -\csname @ordinalstringM\languagename\endcsname}}% -\def\@ordinalstringF{\@ifundefined{@ordinalstringF\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@ordinalstringF}}{% -\csname @ordinalstringF\languagename\endcsname}}% -\def\@ordinalstringN{\@ifundefined{@ordinalstringN\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@ordinalstringN}}{% -\csname @ordinalstringN\languagename\endcsname}}% -\def\@OrdinalstringM{\@ifundefined{@OrdinalstringM\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@OrdinalstringM}}{% -\csname @OrdinalstringM\languagename\endcsname}}% -\def\@OrdinalstringF{\@ifundefined{@OrdinalstringF\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@OrdinalstringF}}{% -\csname @OrdinalstringF\languagename\endcsname}}% -\def\@OrdinalstringN{\@ifundefined{@OrdinalstringN\languagename}{% -\PackageError{fmtcount}{No support for language '\languagename'}{% -The fmtcount package currently does not support language -'\languagename' for command \string\@OrdinalstringN}}{% -\csname @OrdinalstringN\languagename\endcsname}} -} -\@ifpackageloaded{babel}{% -\ifthenelse{\equal{\languagename}{nohyphenation}\or -\equal{languagename}{english}}{\@setdef@ultfmtcount}{% -\@set@mulitling@fmtcount} -}{% -\@ifpackageloaded{ngerman}{% -\@ifundefined{@numberstringMgerman}{% -\input{fc-german.def}}{}\@set@mulitling@fmtcount}{% -\@setdef@ultfmtcount}} + \def\@numberstringM{% + \@ifundefined{@numberstringM\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\numberstring\space for + language '\languagename'}% + \@numberstringMenglish + }% + {% + \csname @numberstringM\languagename\endcsname + }% + }% + \def\@numberstringF{% + \@ifundefined{@numberstringF\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\numberstring\space for + language '\languagename'}% + \@numberstringMenglish + }% + {% + \csname @numberstringF\languagename\endcsname + }% + }% + \def\@numberstringN{% + \@ifundefined{@numberstringN\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\numberstring\space for + language '\languagename'}% + \@numberstringMenglish + }% + {% + \csname @numberstringN\languagename\endcsname + }% + }% + \def\@NumberstringM{% + \@ifundefined{@NumberstringM\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\Numberstring\space + for language '\languagename'}% + \@NumberstringMenglish + }% + {% + \csname @NumberstringM\languagename\endcsname + }% + }% + \def\@NumberstringF{% + \@ifundefined{@NumberstringF\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\Numberstring\space + for language '\languagename'}% + \@NumberstringMenglish + }% + {% + \csname @NumberstringF\languagename\endcsname + }% + }% + \def\@NumberstringN{% + \@ifundefined{@NumberstringN\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\Numberstring\space + for language '\languagename'}% + \@NumberstringMenglish + }% + {% + \csname @NumberstringN\languagename\endcsname + }% + }% + \def\@ordinalM{% + \@ifundefined{@ordinalM\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\ordinal\space + for language '\languagename'}% + \@ordinalMenglish + }% + {% + \csname @ordinalM\languagename\endcsname + }% + }% + \def\@ordinalF{% + \@ifundefined{@ordinalF\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\ordinal\space + for language '\languagename'}% + \@ordinalMenglish + }% + {% + \csname @ordinalF\languagename\endcsname + }% + }% + \def\@ordinalN{% + \@ifundefined{@ordinalN\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\ordinal\space + for language '\languagename'}% + \@ordinalMenglish + }% + {% + \csname @ordinalN\languagename\endcsname + }% + }% + \def\@ordinalstringM{% + \@ifundefined{@ordinalstringM\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\ordinalstring\space + for language '\languagename'}% + \@ordinalstringMenglish + }% + {% + \csname @ordinalstringM\languagename\endcsname + }% + }% + \def\@ordinalstringF{% + \@ifundefined{@ordinalstringF\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\ordinalstring\space + for language '\languagename'}% + \@ordinalstringMenglish + }% + {% + \csname @ordinalstringF\languagename\endcsname + }% + }% + \def\@ordinalstringN{% + \@ifundefined{@ordinalstringN\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\ordinalstring\space + for language '\languagename'}% + \@ordinalstringMenglish + }% + {% + \csname @ordinalstringN\languagename\endcsname + }% + }% + \def\@OrdinalstringM{% + \@ifundefined{@OrdinalstringM\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\Ordinalstring\space + for language '\languagename'}% + \@OrdinalstringMenglish + }% + {% + \csname @OrdinalstringM\languagename\endcsname + }% + }% + \def\@OrdinalstringF{% + \@ifundefined{@OrdinalstringF\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\Ordinalstring\space + for language '\languagename'}% + \@OrdinalstringMenglish + }% + {% + \csname @OrdinalstringF\languagename\endcsname + }% + }% + \def\@OrdinalstringN{% + \@ifundefined{@OrdinalstringN\languagename}% + {% + \PackageWarning{fmtcount}% + {No support for \string\Ordinalstring\space + for language '\languagename'}% + \@OrdinalstringMenglish + }% + {% + \csname @OrdinalstringN\languagename\endcsname + }% + }% +} +\@ifpackageloaded{babel}% +{% + \@set@mulitling@fmtcount +}% +{% + \@ifpackageloaded{ngerman}% + {% + \FCloadlang{ngerman}% + \@set@mulitling@fmtcount + }% + {% + \@setdef@ultfmtcount + }% +} \let\@ordinal=\@ordinalM \let\@ordinalstring=\@ordinalstringM \let\@Ordinalstring=\@OrdinalstringM \let\@numberstring=\@numberstringM \let\@Numberstring=\@NumberstringM + \endinput %% %% End of file `fmtcount.sty'. |