summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fmtcount
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-09-25 22:58:08 +0000
committerKarl Berry <karl@freefriends.org>2012-09-25 22:58:08 +0000
commit5972810af729299af222498461a459998df88906 (patch)
treef32df205f6b61c129fda672be1edd763854cafc8 /Master/texmf-dist/tex/latex/fmtcount
parentd21e43ac989ba93e0f327fc32fd99f3b1c3f0c6e (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/fmtcount')
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-UKenglish.def18
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-USenglish.def18
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-american.def70
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-british.def18
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-english.def16
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-francais.def71
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-french.def1616
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-frenchb.def71
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-german.def132
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-germanb.def71
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-italian.def738
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-ngerman.def72
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-ngermanb.def72
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def16
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def28
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fcnumparser.sty398
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fcprefix.sty417
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty1554
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'.