%PDF- %PDF-
| Direktori : /proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/fmtcount/ |
| Current File : //proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/fmtcount/fmtcount.sty |
%%
%% This is file `fmtcount.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% fmtcount.dtx (with options: `fmtcount.sty,package')
%%
%% fmtcount.dtx
%% Copyright 2012 Nicola Talbot and Vincent Belaïche
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license of (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Nicola Talbot and Vincent Belaïche.
%%
%% This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fcnumparser.sty, fcprefix.sty, fmtcount.sty, fc-american.def, fc-british.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%\subsection{Prefixes}
%%\label{sec:latin-prefixes}
%%
%%\begin{definition}[\DescribeMacro{\latinnumeralstring}]
%%\cs{latinnumeralstring}\marg{counter}\oarg{prefix options}
%%\end{definition}
%%
%%\begin{definition}[\DescribeMacro{\latinnumeralstringnum}]
%%\cs{latinnumeralstringnum}\marg{number}\oarg{prefix options}
%%\end{definition}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{fmtcount}[2012/10/24 v2.02]
\RequirePackage{ifthen}
\RequirePackage{keyval}
\RequirePackage{etoolbox}
\RequirePackage{fcprefix}
\RequirePackage{amsgen}
\providecommand*{\fmtord}[1]{\textsuperscript{#1}}
\newcount\c@padzeroesN
\c@padzeroesN=1\relax
\providecommand*{\padzeroes}[1][17]{\c@padzeroesN=#1}
\newcount\fc@tmpcatcode
\def\fc@languages{}
\def\fc@mainlang{}%
\newcommand*{\FCloadlang}[1]{%
\@FC@iflangloaded{#1}{}%
{%
\fc@tmpcatcode=\catcode`\@\relax
\catcode `\@ 11\relax
\input{fc-#1.def}%
\catcode `\@ \fc@tmpcatcode\relax
\ifdefempty{\fc@languages}%
{%
\def\fc@languages{#1}%
}%
{%
\appto\fc@languages{,#1}%
}%
\def\fc@mainlang{#1}%
}%
}
\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}%
}%
{%
\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'}%
}%
}
\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'}%
}%
}
\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}%
}%
\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}%
}%
{%
}
\DeclareOption{level}{\def\fmtcount@fmtord{level}%
\def\fmtord#1{#1}}
\DeclareOption{raise}{\def\fmtcount@fmtord{raise}%
\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
}
\newcount\@ordinalctr
\newcount\@orgargctr
\newcount\@strctr
\newcount\@tmpstrctr
\newif\if@DT@padzeroes
\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
}
\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
}
\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]{%
\@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]{%
\@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
}
\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
}
\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
}
\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
}
\let\ABAlphnum=\@ABAlph
\def\@fmtc@count#1#2\relax{%
\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
}
\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}%
}%
\protect\@ordinalM{#1}{\@fc@ordstr}%
}%
}%
\@fc@ordstr
}%
}
\newcommand*{\storeordinal}[2]{%
\expandafter\protect\expandafter\storeordinalnum{#1}{%
\expandafter\the\csname c@#2\endcsname}%
}
\newcommand*{\storeordinalnum}[2]{%
\@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
}
\newcommand*{\FMCuse}[1]{\csname @fcs@#1\endcsname}
\newcommand*{\ordinalstring}[1]{%
\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
}%
}
\newcommand*{\storeordinalstring}[2]{%
\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]}%
}
\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
}
\newcommand*{\Ordinalstring}[1]{%
\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
}%
}
\newcommand*{\storeOrdinalstring}[2]{%
\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]}%
}
\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
}
\newcommand*{\storeORDINALstring}[2]{%
\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]}%
}
\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}%
}%
}
\newcommand*{\ORDINALstring}[1]{%
\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}%
}%
}
\newcommand*{\storenumberstring}[2]{%
\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]}%
}
\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
}
\newcommand*{\numberstring}[1]{%
\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
}%
}
\newcommand*{\storeNumberstring}[2]{%
\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]}%
}
\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
}
\newcommand*{\Numberstring}[1]{%
\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
}%
}
\newcommand{\storeNUMBERstring}[2]{%
\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]}%
}
\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}%
}%
}
\newcommand*{\NUMBERstring}[1]{%
\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}%
}%
}
\providecommand*{\binary}[1]{%
\expandafter\protect\expandafter\@binary{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\aaalph}[1]{%
\expandafter\protect\expandafter\@aaalph{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\AAAlph}[1]{%
\expandafter\protect\expandafter\@AAAlph{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\abalph}[1]{%
\expandafter\protect\expandafter\@abalph{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\ABAlph}[1]{%
\expandafter\protect\expandafter\@ABAlph{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\hexadecimal}[1]{%
\expandafter\protect\expandafter\@hexadecimal{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\Hexadecimal}[1]{%
\expandafter\protect\expandafter\@Hexadecimal{%
\expandafter\the\csname c@#1\endcsname}%
}
\providecommand*{\octal}[1]{%
\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}{\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
}
\newcommand*{\fc@multiling}[2]{%
\ifcsundef{@#1#2\languagename}%
{% try loading it
\FCloadlang{\languagename}%
}%
{%
}%
\ifcsundef{@#1#2\languagename}%
{%
\PackageWarning{fmtcount}%
{No support for \expandafter\string\csname#1\endcsname\space for
language '\languagename'}%
\ifthenelse{\equal{\languagename}{\fc@mainlang}}%
{%
\FCloadlang{english}%
}%
{%
}%
\ifcsdef{@#1#2\fc@mainlang}%
{%
\csuse{@#1#2\fc@mainlang}%
}%
{%
\PackageWarningNoLine{fmtcount}%
{No languages loaded at all! Loading english definitions}%
\FCloadlang{english}%
\def\fc@mainlang{english}%
\csuse{@#1#2english}%
}%
}%
{%
\csuse{@#1#2\languagename}%
}%
}
\def\@set@mulitling@fmtcount{%
\def\@numberstringM{%
\fc@multiling{numberstring}{M}%
}%
\def\@numberstringF{%
\fc@multiling{numberstring}{F}%
}%
\def\@numberstringN{%
\fc@multiling{numberstring}{N}%
}%
\def\@NumberstringM{%
\fc@multiling{Numberstring}{M}%
}%
\def\@NumberstringF{%
\fc@multiling{Numberstring}{F}%
}%
\def\@NumberstringN{%
\fc@multiling{Numberstring}{N}%
}%
\def\@ordinalM{%
\fc@multiling{ordinal}{M}%
}%
\def\@ordinalF{%
\fc@multiling{ordinal}{F}%
}%
\def\@ordinalN{%
\fc@multiling{ordinal}{N}%
}%
\def\@ordinalstringM{%
\fc@multiling{ordinalstring}{M}%
}%
\def\@ordinalstringF{%
\fc@multiling{ordinalstring}{F}%
}%
\def\@ordinalstringN{%
\fc@multiling{ordinalstring}{N}%
}%
\def\@OrdinalstringM{%
\fc@multiling{Ordinalstring}{M}%
}%
\def\@OrdinalstringF{%
\fc@multiling{Ordinalstring}{F}%
}%
\def\@OrdinalstringN{%
\fc@multiling{Ordinalstring}{N}%
}%
}
\@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'.