summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-06-17 23:20:48 +0000
committerKarl Berry <karl@freefriends.org>2007-06-17 23:20:48 +0000
commitcc91b833be17617d7383dfa801a01ef5c95c3752 (patch)
treeafc7f6a607384f07565ece458451a2b2d1c4a297 /Master
parent1d2edaa1d6813b2da6d013243df919b5b6816640 (diff)
fmtcount 1.1 (15jun07)
git-svn-id: svn://tug.org/texlive/trunk@4457 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/README15
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/doc/CHANGES (renamed from Master/texmf-dist/doc/latex/fmtcount/CHANGES)3
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/doc/fc-lang.tex (renamed from Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex)118
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/doc/fc-samp.tex (renamed from Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex)35
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdfbin0 -> 277606 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/doc/manual.html (renamed from Master/texmf-dist/doc/latex/fmtcount/manual.html)76
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdfbin133652 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/latex2html/fmtcount.perl (renamed from Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl)923
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/source/fmtcount.dtx (renamed from Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx)3576
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/source/fmtcount.ins (renamed from Master/texmf-dist/source/latex/fmtcount/fmtcount.ins)21
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-english.def461
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-french.def1002
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def621
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def721
-rw-r--r--Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty613
-rw-r--r--Master/texmf-dist/tpm/fmtcount.tpm31
-rw-r--r--Master/texmf-dist/tpm/showlabels.tpm4
-rw-r--r--Master/texmf/lists/fmtcount22
18 files changed, 1729 insertions, 6513 deletions
diff --git a/Master/texmf-dist/doc/latex/fmtcount/README b/Master/texmf-dist/doc/latex/fmtcount/README
index 6d2c2d426f0..f6d1dbb18cd 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/README
+++ b/Master/texmf-dist/doc/latex/fmtcount/README
@@ -1,12 +1,14 @@
-LaTeX Package : fmtcount v 1.09
+LaTeX Package : fmtcount v 1.1
-Last Modified : 21 April 2007
+Last Modified : 14 June 2007
Author : Nicola Talbot
Files : fmtcount.dtx - documented source file
fmtcount.ins - installation script
-
+ fmtcount.perl - latex2html style file
+ fc-samp.tex - sample files
+ fc-lang.tex /
The package fmtcount.sty provides commands
that display the value of a LaTeX counter in a variety
@@ -16,16 +18,13 @@ with the datetime package, but is now distributed separately.
See the documentation for more details.
-To extract the code do:
+To extract the code from the documented source file do:
latex fmtcount.ins
This will create the files: fmtcount.sty (the LaTeX package),
-fmtcount.perl (the LaTeX2HTML package)
and fc-*.def (the language definition files used by
-fmtcount.sty). It will also create two sample files:
-fc-samp.tex and fc-lang.tex. The first will work with
-LaTeX2HTML, the other won't.
+fmtcount.sty).
Move the .sty and .def files to somewhere LaTeX will find it
(e.g. texmf/tex/latex/fmtcount/) and remember to update the TeX
diff --git a/Master/texmf-dist/doc/latex/fmtcount/CHANGES b/Master/texmf-dist/doc/latex/fmtcount/doc/CHANGES
index 13afa7d9565..6b302dcb615 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/CHANGES
+++ b/Master/texmf-dist/doc/latex/fmtcount/doc/CHANGES
@@ -1,5 +1,8 @@
fmtcount package versions:
+Version 1.1: Added German support. Added check for USenglish
+and UKenglish babel settings.
+
Version 1.09: Added upper case variants \ORDINALstring etc
(\MakeUppercase{\ordinalstring{<counter>}} doesn't work because
of the way \MakeUppercase expands its argument).
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex b/Master/texmf-dist/doc/latex/fmtcount/doc/fc-lang.tex
index 0c81dc887fd..a084c7290a9 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex
+++ b/Master/texmf-dist/doc/latex/fmtcount/doc/fc-lang.tex
@@ -1,37 +1,10 @@
-%%
-%% This is file `fc-lang.tex',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fc-lang.tex,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
% This is an interactive script. Run it through \LaTeX
- % and enter appropriate responses.
+ % and enter appropriate responses. (This won't work with
+ % LaTeX2HTML
\documentclass[a4paper]{article}
-\usepackage[french,english,spanish,portuges]{babel}
+\usepackage[french,english,spanish,portuges,ngerman]{babel}
\usepackage{fmtcount}
\newcounter{startval}
@@ -57,6 +30,7 @@
\typeout{[4] French}
\typeout{[5] French (Swiss)}
\typeout{[6] French (Belgium)}
+\typeout{[7] German}
\typein[\response]{}
@@ -66,8 +40,9 @@
\ifthenelse{\equal{\response}{4}}{\langid=4\fmtcountsetoptions{french}}{
\ifthenelse{\equal{\response}{5}}{\langid=5\fmtcountsetoptions{french=swiss}}{
\ifthenelse{\equal{\response}{6}}{\langid=6\fmtcountsetoptions{french=belgian}}
-{\langid=-1
-\typeout{Invalid response '\response', please select a number from 1 to 6}}}}}}}
+{\ifthenelse{\equal{\response}{7}}{\langid=7}{
+\langid=-1
+\typeout{Invalid response '\response', please select a number from 1 to 6}}}}}}}}
\ifnum\langid=-1
\repeat
@@ -84,12 +59,14 @@ Current language: French.
Current language: French (Swiss).
\or \selectlanguage{french}
Current language: French (Belgium).
+\or \selectlanguage{ngerman}
+Current language: German.
\fi
\def\startval{-1}
\loop
-\typein[\startval]{Start value? (Integer from 0 to 99000)
+\typein[\startval]{Start value? (Integer from 0 to 99999)
[Default 1]}
\ifthenelse{\equal{\startval}{}}{\def\startval{1}}{}
\ifnum\startval<0\def\startval{-1}\fi
@@ -104,7 +81,7 @@ Current language: French (Belgium).
[Default 1000]}
\ifthenelse{\equal{\endval}{}}{\def\endval{1000}}{}
\ifnum\endval<0\def\endval{-1}\fi
-\ifnum\endval>99000\def\endval{-1}\fi
+\ifnum\endval>99999\def\endval{-1}\fi
\ifnum\endval=-1
\repeat
@@ -133,7 +110,9 @@ Current language: French (Belgium).
\fi
\fi
-\myctr=-1
+\newcount\numformat
+
+\numformat=-1
\loop
\typeout{Which format?^^J}
\typeout{[1] ordinalstring}
@@ -146,17 +125,17 @@ Current language: French (Belgium).
\typein[\response]{Default: 1}
\ifthenelse{\equal{\response}{}}{\def\response{1}}{}%default val
-\ifthenelse{\equal{\response}{1}}{\myctr=1}{
-\ifthenelse{\equal{\response}{2}}{\myctr=2}{
-\ifthenelse{\equal{\response}{3}}{\myctr=3}{
-\ifthenelse{\equal{\response}{4}}{\myctr=4}{
-\ifthenelse{\equal{\response}{5}}{\myctr=5}{
-\ifthenelse{\equal{\response}{6}}{\myctr=6}{\myctr=-1
+\ifthenelse{\equal{\response}{1}}{\numformat=1}{
+\ifthenelse{\equal{\response}{2}}{\numformat=2}{
+\ifthenelse{\equal{\response}{3}}{\numformat=3}{
+\ifthenelse{\equal{\response}{4}}{\numformat=4}{
+\ifthenelse{\equal{\response}{5}}{\numformat=5}{
+\ifthenelse{\equal{\response}{6}}{\numformat=6}{\numformat=-1
\typeout{Invalid response '\response', please select a number from 1 to 4}}}}}}}
-\ifnum\myctr=-1
+\ifnum\numformat=-1
\repeat
-\ifcase\myctr
+\ifcase\numformat
\or\def\stringtype{ordinalstring}
\or\def\stringtype{Ordinalstring}
\or\def\stringtype{ORDINALstring}
@@ -165,7 +144,7 @@ Current language: French (Belgium).
\or\def\stringtype{NUMBERstring}
\fi
-\ifnum\langid>3
+\ifthenelse{\langid>3 \and \langid < 7}{%
\myctr=-1
\loop
\typeout{Ordinal type?^^J}
@@ -180,7 +159,7 @@ Current language: French (Belgium).
\myctr=-1}}
\ifnum\myctr=-1
\repeat
-\fi
+}{}
\myctr=-1
\loop
@@ -199,18 +178,52 @@ Current language: French (Belgium).
\ifnum\langid=1
\myctr=1
\else
+\ifthenelse{\langid=7 \and \numformat>3}{}{%
\loop
-\typein[\response]{Gender? (m or f) [Default: m]}
-\ifthenelse{\equal{\response}{m}\or\equal{\response}{}}{\myctr=1}{
-\ifthenelse{\equal{\response}{f}}{\myctr=2}{\myctr=-1
-\typeout{Invalid response '\response'}}}
+\ifnum\langid=7
+ \typein[\response]{Gender? (m, f or n) [Default: m]}
+ \ifthenelse{\equal{\response}{m}\or\equal{\response}{}}{\myctr=1}{
+ \ifthenelse{\equal{\response}{f}}{\myctr=2}{
+ \ifthenelse{\equal{\response}{n}}{\myctr=3}{\myctr=-1
+ \typeout{Invalid response '\response'}}}}
+\else
+ \typein[\response]{Gender? (m or f) [Default: m]}
+ \ifthenelse{\equal{\response}{m}\or\equal{\response}{}}{\myctr=1}{
+ \ifthenelse{\equal{\response}{f}}{\myctr=2}{\myctr=-1
+ \typeout{Invalid response '\response'}}}
+\fi
\ifnum\myctr=-1
\repeat
+}
\fi
\ifcase\myctr
\or \def\gender{m}
\or \def\gender{f}
+\or \def\gender{n}
+\fi
+
+\ifnum\langid=7
+\ifnum\startval>99
+\myctr=-1
+\loop
+\typeout{einhundert/eintausend or hundert/tausend?^^J}
+\typeout{[1] einhundert/eintausend}
+\typeout{[2] hundert/tausend}
+\typein[\response]{Default: 1}
+\ifthenelse{\equal{\response}{}}{\def\response{1}}{}%default
+\ifthenelse{\equal{\response}{1}}{%
+\renewcommand{\einhundert}{einhundert}
+\renewcommand{\eintausend}{eintausend}
+\myctr=1}{%
+\ifthenelse{\equal{\response}{2}}{%
+\renewcommand{\einhundert}{hundert}
+\renewcommand{\eintausend}{tausend}
+\myctr=2}{%
+\myctr=-1}}
+\ifnum\myctr=-1
+\repeat
+\fi
\fi
\setcounter{startval}{\startval}
@@ -219,14 +232,14 @@ Current language: French (Belgium).
\stepcounter{endval}
\begin{ttfamily}
-\noindent
+\noindent
\makebox[0.25in][c]{N}
\makebox[0.5in][c]{ordinal}\quad
\stringtype
\par
\myctr=\value{startval}
\loop
-\noindent
+\noindent
\setcounter{N}{\myctr}
\makebox[0.25in][r]{\arabic{N}}
\makebox[0.5in][r]{\ordinal{N}[\gender]}\quad
@@ -239,6 +252,3 @@ Current language: French (Belgium).
\end{ttfamily}
\end{document}
-\endinput
-%%
-%% End of file `fc-lang.tex'.
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex b/Master/texmf-dist/doc/latex/fmtcount/doc/fc-samp.tex
index 1a18321c004..7ca4d1c57f5 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex
+++ b/Master/texmf-dist/doc/latex/fmtcount/doc/fc-samp.tex
@@ -1,31 +1,3 @@
-%%
-%% This is file `fc-samp.tex',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fc-samp.tex,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
\documentclass[a4paper]{article}
\usepackage{fmtcount}
@@ -47,10 +19,10 @@
\begin{document}
\section{Displaying the value of a counter}
-\label{ex}
+\label{ex}
\begin{ttfamily}
-\noindent
+\noindent
\makebox[0.75in][c]{decimal}
\makebox[0.75in][c]{hexadecimal}
\makebox[0.75in][c]{ordinal}
@@ -124,6 +96,3 @@ Passing numbers explicitly: \ordinalnum{10},
\ORDINALstringnum{10}.
\end{document}
-\endinput
-%%
-%% End of file `fc-samp.tex'.
diff --git a/Master/texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdf b/Master/texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdf
new file mode 100644
index 00000000000..fe3cccc2ab0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fmtcount/manual.html b/Master/texmf-dist/doc/latex/fmtcount/doc/manual.html
index c1cbfa97cc8..be8c0b2c915 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/manual.html
+++ b/Master/texmf-dist/doc/latex/fmtcount/doc/manual.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
-<TITLE>fmtcount.sty v1.09: Displaying the Values of LaTeX Counters</TITLE>
-<META NAME="description" CONTENT="fmtcount.sty v1.09: Displaying the Values of LaTeX Counters">
+<TITLE>fmtcount.sty v1.1: Displaying the Values of LaTeX Counters</TITLE>
+<META NAME="description" CONTENT="fmtcount.sty v1.1: Displaying the Values of LaTeX Counters">
<META NAME="keywords" CONTENT="manual">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@@ -32,10 +32,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<P>
- <H1 ALIGN="CENTER">fmtcount.sty v1.09: Displaying the Values of
+ <H1 ALIGN="CENTER">fmtcount.sty v1.1: Displaying the Values of
LaTeX Counters</H1>
<P ALIGN="CENTER"><STRONG>Nicola L.C. Talbot</STRONG></P>
-<P ALIGN="CENTER"><STRONG>21st April 2007</STRONG></P>
+<P ALIGN="CENTER"><STRONG>26th May 2007</STRONG></P>
<BR>
<H2><A NAME="SECTION00010000000000000000">
@@ -44,25 +44,25 @@ Contents</A>
<!--Table of Contents-->
<UL>
-<LI><A NAME="tex2html19"
- HREF="manual.html#SECTION00020000000000000000">Introduction</A>
<LI><A NAME="tex2html20"
- HREF="manual.html#SECTION00030000000000000000">Installation</A>
+ HREF="manual.html#SECTION00020000000000000000">Introduction</A>
<LI><A NAME="tex2html21"
- HREF="manual.html#SECTION00040000000000000000">Available Commands</A>
+ HREF="manual.html#SECTION00030000000000000000">Installation</A>
<LI><A NAME="tex2html22"
- HREF="manual.html#SECTION00050000000000000000">Package Options</A>
+ HREF="manual.html#SECTION00040000000000000000">Available Commands</A>
<LI><A NAME="tex2html23"
- HREF="manual.html#SECTION00060000000000000000">Multilingual Support</A>
+ HREF="manual.html#SECTION00050000000000000000">Package Options</A>
<LI><A NAME="tex2html24"
- HREF="manual.html#SECTION00070000000000000000">Configuration File fmtcount.cfg</A>
+ HREF="manual.html#SECTION00060000000000000000">Multilingual Support</A>
<LI><A NAME="tex2html25"
- HREF="manual.html#SECTION00080000000000000000">LaTeX2HTML style</A>
+ HREF="manual.html#SECTION00070000000000000000">Configuration File fmtcount.cfg</A>
<LI><A NAME="tex2html26"
- HREF="manual.html#SECTION00090000000000000000">Acknowledgements</A>
+ HREF="manual.html#SECTION00080000000000000000">LaTeX2HTML style</A>
<LI><A NAME="tex2html27"
- HREF="manual.html#SECTION000100000000000000000">Troubleshooting</A>
+ HREF="manual.html#SECTION00090000000000000000">Acknowledgements</A>
<LI><A NAME="tex2html28"
+ HREF="manual.html#SECTION000100000000000000000">Troubleshooting</A>
+<LI><A NAME="tex2html29"
HREF="manual.html#SECTION000110000000000000000">Contact Details</A>
</UL>
<!--End of Table of Contents-->
@@ -144,7 +144,7 @@ as <code>\numberstring</code>, but converted to upper case. Note that
<code>\MakeUppercase{\NUMBERstring{</code><I>counter</I><code>}}</code> doesn't
work, due to the way that <code>\MakeUppercase</code> expands its
argument<A NAME="tex2html4"
- HREF="#foot288"><SUP>1</SUP></A>.
+ HREF="#foot290"><SUP>1</SUP></A>.
<P>
The macros <code>\numberstringnum</code>,
@@ -390,9 +390,14 @@ Multilingual Support</A>
Version 1.02 of the <TT>fmtcount</TT> package now has
limited multilingual support. The following languages are
implemented: English, Spanish, Portuguese, French, French (Swiss)
-and French (Belgian). The package checks to see if the
-command <code>\date</code><I>language</I> is defined<A NAME="tex2html5"
- HREF="#foot289"><SUP>2</SUP></A>, and will
+and French (Belgian). German support was added in version
+1.1<A NAME="tex2html5"
+ HREF="#foot244"><SUP>2</SUP></A>.
+
+<P>
+The package checks to see if the
+command <code>\date</code><I>language</I> is defined<A NAME="tex2html6"
+ HREF="#foot291"><SUP>3</SUP></A>, and will
load the code for those languages. The commands <code>\ordinal</code>,
<code>\ordinalstring</code> and <code>\numberstring</code> (and their
variants) will then be formatted in the currently
@@ -416,16 +421,21 @@ The <TT>french</TT> and <TT>abbrv</TT> settings only have an
effect if the French language has been defined.
<P>
-The male gender for all languages is used by default, however
-the feminine form can be obtained by passing <TT>f</TT> as
-an optional argument to <code>\ordinal</code>, <code>\ordinalnum</code> etc.
-For example: <code>\numberstring{section}[f]</code>. Note that the
-optional argument comes <I>after</I> the compulsory argument.
+The male gender for all languages is used by default, however the
+feminine or neuter forms can be obtained by passing <TT>f</TT> or
+<TT>n</TT> as an optional argument to <code>\ordinal</code>,
+<code>\ordinalnum</code> etc. For example:
+<code>\numberstring{section}[f]</code>. Note that the optional argument
+comes <I>after</I> the compulsory argument. If a gender is
+not defined in a given language, the masculine version will
+be used instead.
<P>
Let me know if you find any spelling mistakes (has been known
to happen in English, let alone other languages I'm not so
-familiar with.)
+familiar with.) If you want to add support for another language,
+you will need to let me know how to form the numbers and ordinals
+from 0 to 99999 in that language for each gender.
<P>
@@ -495,6 +505,8 @@ Acknowledgements</A>
<P>
I would like to thank my mother for the French and Portuguese
support and my Spanish dictionary for the Spanish support.
+Thank you to K. H. Fricke for providing me with the German
+translations.
<P>
@@ -503,7 +515,7 @@ Troubleshooting</A>
</H1>
<P>
-There is a FAQ available at: <TT><A NAME="tex2html6"
+There is a FAQ available at: <TT><A NAME="tex2html7"
HREF="http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/">http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/</A></TT>.
<P>
@@ -520,19 +532,25 @@ University of East Anglia
Norwich. NR4 7TJ.
<BR>
United Kingdom.
-<BR> <TT><A NAME="tex2html7"
+<BR> <TT><A NAME="tex2html8"
HREF="http://theoval.cmp.uea.ac.uk/~nlct/">http://theoval.cmp.uea.ac.uk/~nlct/</A></TT>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot288">...
+<DT><A NAME="foot290">...
argument</A><A
HREF="manual.html#tex2html4"><SUP>1</SUP></A></DT>
<DD>See all the various postings to
<TT>comp.text.tex</TT> about <TT>&#92;MakeUppercase</TT>
</DD>
-<DT><A NAME="foot289">... defined</A><A
+<DT><A NAME="foot244">...
+1.1</A><A
HREF="manual.html#tex2html5"><SUP>2</SUP></A></DT>
+<DD>Thanks to K. H. Fricke for supplying the information
+
+</DD>
+<DT><A NAME="foot291">... defined</A><A
+ HREF="manual.html#tex2html6"><SUP>3</SUP></A></DT>
<DD>this
will be true if you have loaded <TT>babel</TT>
@@ -543,7 +561,7 @@ will be true if you have loaded <TT>babel</TT>
<A href=http://theoval.cmp.uea.ac.uk/~nlct/>Nicola L. C. Talbot</A>.
<A HREF=http://www.cmp.uea.ac.uk/>School of Computing Sciences</A>.
<A HREF=http://www.uea.ac.uk/>University of East Anglia.</A>
-Last Modified: 2007-04-21
+Last Modified: 2007-06-14
</ADDRESS>
</BODY>
</HTML>
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf b/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf
deleted file mode 100644
index 64163d43156..00000000000
--- a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl b/Master/texmf-dist/doc/latex/fmtcount/latex2html/fmtcount.perl
index 2cf6bb3a091..a0460f733b1 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl
+++ b/Master/texmf-dist/doc/latex/fmtcount/latex2html/fmtcount.perl
@@ -1,7 +1,7 @@
# File : fmtcount.perl
# Author : Nicola Talbot
-# Date : 21 April 2007
-# Version : 1.04
+# Date : 26 May 2007
+# Version : 1.05
# Description : LaTeX2HTML implementation of fmtcount package
package main;
@@ -11,8 +11,8 @@ sub do_fmtcount_raise{
$tmp .= 'sub do_cmd_fmtord{';
$tmp .= 'local($_) = @_;';
- $tmp .= 'local($num) = &missing_braces unless ((s/$next_pair_pr_rx//o)&&($num=$2));';
- $tmp .= 'join("", "<SUP>",$num,"</SUP>",$_);';
+ $tmp .= 'local($suffix) = &missing_braces unless (s/$next_pair_pr_rx/$suffix=$2;\'\'/eo);';
+ $tmp .= 'join("", "<SUP>",$suffix,"</SUP>",$_);';
$tmp .='}';
eval($tmp);
@@ -23,8 +23,8 @@ sub do_fmtcount_level{
$tmp .= 'sub do_cmd_fmtord{';
$tmp .= 'local($_) = @_;';
- $tmp .= 'local($num) = &missing_braces unless ((s/$next_pair_pr_rx//o)&&($num=$2));';
- $tmp .= 'join("", $num,$_);';
+ $tmp .= 'local($suffix) = &missing_braces unless (s/$next_pair_pr_rx/$suffix=$2;\'\'/eo);';
+ $tmp .= 'join("", $suffix,$_);';
$tmp .='}';
eval($tmp);
@@ -95,6 +95,18 @@ sub get_ordinal_suffix_portuges{
($gender eq 'f' ? 'a' : 'o');
}
+sub get_ordinal_suffix_german{
+ local($num,$gender) = @_;
+
+ '';
+}
+
+sub get_ordinal_suffix_ngerman{
+ local($num,$gender) = @_;
+
+ '';
+}
+
sub get_ordinal_suffix{
local($num,$gender) = @_;
local($suffix,$suffixsub);
@@ -116,25 +128,29 @@ sub get_ordinal_suffix{
sub getordinal{
local($num,$gender) = @_;
local($suffix) = &get_ordinal_suffix($num,$gender);
+ local($text)='';
if ($suffix eq '')
{
- $num;
+ $text = $num;
}
else
{
local($br_id) = ++$global{'max_id'};
- $num . "\\fmtord${OP}$br_id${CP}$suffix${OP}$br_id${CP}";
+ $text = $num . "\\fmtord${OP}$br_id${CP}$suffix${OP}$br_id${CP}";
}
+
+ $text;
}
sub do_cmd_ordinalnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
- local($gender)='m';
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+ my($gender)='m';
local($suffix)='';
- if ($_[0]=~s/\[([mf])\]//)
+ if (s/\[([mfn])\]//)
{
$gender = $1;
}
@@ -142,7 +158,7 @@ sub do_cmd_ordinalnum{
$suffix = &get_ordinal_suffix($num,$gender);
local($br_id) = ++$global{'max_id'};
- join('', $num, "\\fmtord${OP}$br_id${CP}$suffix${OP}$br_id${CP}", $_[0]);
+ join('', $num, "\\fmtord${OP}$br_id${CP}$suffix${OP}$br_id${CP}", $_);
}
sub do_cmd_FCordinal{
@@ -151,7 +167,7 @@ sub do_cmd_FCordinal{
sub do_cmd_ordinal{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -175,11 +191,11 @@ sub do_cmd_storeordinal{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -205,15 +221,15 @@ sub do_cmd_storeordinalnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
- if ($_ =~s/\s*\[(.)\]//)
+ if ($_ =~s/\s*\[([mfn])\]//)
{
$gender = $1;
}
@@ -223,37 +239,37 @@ sub do_cmd_storeordinalnum{
$_;
}
-@unitthstring = ('zeroth',
- 'first',
- 'second',
- 'third',
- 'fourth',
- 'fifth',
- 'sixth',
- 'seventh',
- 'eighth',
+@unitthstring = ('zeroth',
+ 'first',
+ 'second',
+ 'third',
+ 'fourth',
+ 'fifth',
+ 'sixth',
+ 'seventh',
+ 'eighth',
'ninth');
-@tenthstring = ('',
- 'tenth',
- 'twentieth',
- 'thirtieth',
- 'fortieth',
- 'fiftieth',
- 'sixtieth',
- 'seventieth',
- 'eightieth',
+@tenthstring = ('',
+ 'tenth',
+ 'twentieth',
+ 'thirtieth',
+ 'fortieth',
+ 'fiftieth',
+ 'sixtieth',
+ 'seventieth',
+ 'eightieth',
'ninetieth');
-@teenthstring = ('tenth',
- 'eleventh',
- 'twelfth',
- 'thirteenth',
- 'fourteenth',
- 'fifteenth',
- 'sixteenth',
- 'seventeenth',
- 'eighteenth',
+@teenthstring = ('tenth',
+ 'eleventh',
+ 'twelfth',
+ 'thirteenth',
+ 'fourteenth',
+ 'fifteenth',
+ 'sixteenth',
+ 'seventeenth',
+ 'eighteenth',
'nineteenth');
@unitstring = ('zero',
@@ -332,42 +348,42 @@ sub get_numberstringenglish{
{
$name .= $unitstring[$num%10];
}
- }
+ }
$name;
}
-@unitthstringfrench = ('zeroi\`eme',
- 'uni\`eme',
- 'deuxi\`eme',
- 'troisi\`eme',
- 'quatri\`eme',
- 'cinqui\`eme',
- 'sixi\`eme',
- 'septi\`eme',
- 'huiti\`eme',
+@unitthstringfrench = ('zeroi\`eme',
+ 'uni\`eme',
+ 'deuxi\`eme',
+ 'troisi\`eme',
+ 'quatri\`eme',
+ 'cinqui\`eme',
+ 'sixi\`eme',
+ 'septi\`eme',
+ 'huiti\`eme',
'neuvi\`eme');
-@tenthstringfrench = ('',
- 'dixi\`eme',
- 'vingti\`eme',
- 'trentri\`eme',
- 'quaranti\`eme',
- 'cinquanti\`eme',
- 'soixanti\`eme',
- 'septenti\`eme',
- 'huitanti\`eme',
+@tenthstringfrench = ('',
+ 'dixi\`eme',
+ 'vingti\`eme',
+ 'trentri\`eme',
+ 'quaranti\`eme',
+ 'cinquanti\`eme',
+ 'soixanti\`eme',
+ 'septenti\`eme',
+ 'huitanti\`eme',
'nonenti\`eme');
-@teenthstringfrench = ('dixi\`eme',
- 'onzi\`eme',
- 'douzi\`eme',
- 'treizi\`eme',
- 'quatorzi\`eme',
- 'quinzi\`eme',
- 'seizi\`eme',
- 'dix-septi\`eme',
- 'dix-huiti\`eme',
+@teenthstringfrench = ('dixi\`eme',
+ 'onzi\`eme',
+ 'douzi\`eme',
+ 'treizi\`eme',
+ 'quatorzi\`eme',
+ 'quinzi\`eme',
+ 'seizi\`eme',
+ 'dix-septi\`eme',
+ 'dix-huiti\`eme',
'dix-neuvi\`eme');
@unitstringfrench = ('zero',
@@ -408,37 +424,37 @@ $hundredthnamefrench = "centi\\`eme";
$thousandnamefrench = "mille";
$thousandthnamefrench = "mili\\`eme";
-@unitthstringspanish = ('cero',
- 'primero',
- 'segundo',
- 'tercero',
- 'cuarto',
- 'quinto',
- 'sexto',
- 's\\\'eptimo',
- 'octavo',
+@unitthstringspanish = ('cero',
+ 'primero',
+ 'segundo',
+ 'tercero',
+ 'cuarto',
+ 'quinto',
+ 'sexto',
+ 's\\\'eptimo',
+ 'octavo',
'noveno');
-@tenthstringspanish = ('',
- 'd\\\'ecimo',
- 'vig\\\'esimo',
- 'trig\\\'esimo',
- 'cuadrag\\\'esimo',
- 'quincuag\\\'esimo',
- 'sexag\\\'esimo',
- 'septuag\\\'esimo',
- 'octog\\\'esimo',
+@tenthstringspanish = ('',
+ 'd\\\'ecimo',
+ 'vig\\\'esimo',
+ 'trig\\\'esimo',
+ 'cuadrag\\\'esimo',
+ 'quincuag\\\'esimo',
+ 'sexag\\\'esimo',
+ 'septuag\\\'esimo',
+ 'octog\\\'esimo',
'nonag\\\'esimo');
-@teenthstringspanish = ('d\\\'ecimo',
- 'und\\\'ecimo',
- 'duod\\\'ecimo',
- 'decimotercero',
- 'decimocuarto',
- 'decimoquinto',
- 'decimosexto',
- 'decimos\\\'eptimo',
- 'decimoctavo',
+@teenthstringspanish = ('d\\\'ecimo',
+ 'und\\\'ecimo',
+ 'duod\\\'ecimo',
+ 'decimotercero',
+ 'decimocuarto',
+ 'decimoquinto',
+ 'decimosexto',
+ 'decimos\\\'eptimo',
+ 'decimoctavo',
'decimonoveno');
@hundredthstringspanish = ('',
@@ -512,26 +528,26 @@ $hundredthnamespanish = "centi\\`eme";
$thousandnamespanish = "mil";
$thousandthnamespanish = "mil\\'esimo";
-@unitthstringportuges = ('zero',
- 'primeiro',
- 'segundo',
- 'terceiro',
- 'quatro',
- 'quinto',
- 'sexto',
- 's\\\'etimo',
- 'oitavo',
+@unitthstringportuges = ('zero',
+ 'primeiro',
+ 'segundo',
+ 'terceiro',
+ 'quatro',
+ 'quinto',
+ 'sexto',
+ 's\\\'etimo',
+ 'oitavo',
'nono');
-@tenthstringportuges = ('',
- 'd\\\'ecimo',
- 'vig\\\'esimo',
- 'trig\\\'esimo',
- 'quadrag\\\'esimo',
- 'q\"uinquag\\\'esimo',
- 'sexag\\\'esimo',
- 'setuag\\\'esimo',
- 'octog\\\'esimo',
+@tenthstringportuges = ('',
+ 'd\\\'ecimo',
+ 'vig\\\'esimo',
+ 'trig\\\'esimo',
+ 'quadrag\\\'esimo',
+ 'q\"uinquag\\\'esimo',
+ 'sexag\\\'esimo',
+ 'setuag\\\'esimo',
+ 'octog\\\'esimo',
'nonag\\\'esimo');
@hundredthstringportuges = ('',
@@ -599,11 +615,11 @@ sub get_numberstringfrench{
if ($gender eq 'f')
{
- $unitstringfrench[1] = 'une';
+ $unitstringfrench[1] = 'une';
}
else
{
- $unitstringfrench[1] = 'un';
+ $unitstringfrench[1] = 'un';
}
unless (($num >= 1000000) || ($num < 0))
@@ -672,7 +688,7 @@ sub get_numberstringfrench{
}
}
}
- elsif ($frenchdialect eq 'belgian'
+ elsif ($frenchdialect eq 'belgian'
&& ($num >= 80) && ($num < 90))
{
$name .= 'quatre-vingt' . ($num==80?'s':'-');
@@ -694,7 +710,7 @@ sub get_numberstringfrench{
{
$name .= $unitstringfrench[$num%10];
}
- }
+ }
$name;
}
@@ -705,11 +721,11 @@ sub get_numberstringspanish{
if ($gender eq 'f')
{
- $unitstringspanish[1] = 'una';
+ $unitstringspanish[1] = 'una';
}
else
{
- $unitstringspanish[1] = 'uno';
+ $unitstringspanish[1] = 'uno';
}
unless (($num >= 1000000) || ($num < 0))
@@ -748,6 +764,7 @@ sub get_numberstringspanish{
if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " y "; }
+
if ($num >= 30)
{
$name .= $tenstringspanish[$num/10];
@@ -767,7 +784,7 @@ sub get_numberstringspanish{
{
$name .= $unitstringspanish[$num%10];
}
- }
+ }
$name;
}
@@ -846,7 +863,227 @@ sub get_numberstringportuges{
{
$name .= $unitstringportuges[$num%10];
}
+ }
+
+ $name;
+}
+
+@unitthstringMgerman = ('nullter',
+ 'erster',
+ 'zweiter',
+ 'dritter',
+ 'vierter',
+ 'f\\"unter',
+ 'sechster',
+ 'siebter',
+ 'achter',
+ 'neunter');
+
+@tenthstringMgerman = ('',
+ 'zehnter',
+ 'zwanzigster',
+ 'drei\\ss igster',
+ 'vierzigster',
+ 'f\\"unfzigster',
+ 'sechzigster',
+ 'siebzigster',
+ 'achtzigster',
+ 'neunzigster');
+
+@teenthstringMgerman = ('zehnter',
+ 'elfter',
+ 'zw\\"olfter',
+ 'dreizehnter',
+ 'vierzehnter',
+ 'f\\"unfzehnter',
+ 'sechzehnter',
+ 'siebzehnter',
+ 'achtzehnter',
+ 'neunzehnter');
+
+@unitthstringFgerman = ('nullte',
+ 'erste',
+ 'zweite',
+ 'dritte',
+ 'vierte',
+ 'f\\"unfte',
+ 'sechste',
+ 'siebte',
+ 'achte',
+ 'neunte');
+
+@tenthstringFgerman = ('',
+ 'zehnte',
+ 'zwanzigste',
+ 'drei\\ss igste',
+ 'vierzigste',
+ 'f\\"unfzigste',
+ 'sechzigste',
+ 'siebzigste',
+ 'achtzigste',
+ 'neunzigste');
+
+@teenthstringFgerman = ('zehnte',
+ 'elfte',
+ 'zw\\"olfte',
+ 'dreizehnte',
+ 'vierzehnte',
+ 'f\\"unfzehnte',
+ 'sechzehnte',
+ 'siebzehnte',
+ 'achtzehnte',
+ 'neunzehnte');
+
+@unitthstringNgerman = ('nulltes',
+ 'erstes',
+ 'zweites',
+ 'drittes',
+ 'viertes',
+ 'f\\"unte',
+ 'sechstes',
+ 'siebtes',
+ 'achtes',
+ 'neuntes');
+
+@tenthstringNgerman = ('',
+ 'zehntes',
+ 'zwanzigstes',
+ 'drei\\ss igstes',
+ 'vierzigstes',
+ 'f\\"unfzigstes',
+ 'sechzigstes',
+ 'siebzigstes',
+ 'achtzigstes',
+ 'neunzigstes');
+
+@teenthstringNgerman = ('zehntes',
+ 'elftes',
+ 'zw\\"olftes',
+ 'dreizehntes',
+ 'vierzehntes',
+ 'f\\"unfzehntes',
+ 'sechzehntes',
+ 'siebzehntes',
+ 'achtzehntes',
+ 'neunzehntes');
+
+@unitstringgerman = ('null',
+ 'ein', # eins dealt with separately (this is for prefixes)
+ 'zwei',
+ 'drei',
+ 'vier',
+ 'f\\"unf',
+ 'sechs',
+ 'sieben',
+ 'acht',
+ 'neun');
+
+@teenstringgerman = ('zehn',
+ 'elf',
+ 'zw\\"olf',
+ 'dreizehn',
+ 'vierzehn',
+ 'f\\"unfzehn',
+ 'sechzehn',
+ 'siebzehn',
+ 'achtzehn',
+ 'neunzehn');
+
+@tenstringgerman = ('',
+ 'zehn',
+ 'zwanzig',
+ 'drei\\ss ig',
+ 'vierzig',
+ 'f\\"unfzig',
+ 'sechzig',
+ 'siebzig',
+ 'achtzig',
+ 'neunzig');
+
+sub do_cmd_einhundert{
+ local($_) = @_;
+
+ "einhundert$_";
+}
+
+sub do_cmd_eintausend{
+ local($_) = @_;
+
+ "eintausend$_";
+}
+
+sub get_numberunderhundredgerman{
+ local($num)=@_;
+ local($name)='';
+
+ if ($num == 1)
+ {
+ $name = 'eins';
+ }
+ elsif ($num < 10)
+ {
+ $name = $unitstringgerman[$num];
}
+ elsif ($num%10 == 0)
+ {
+ $name = $tenstringgerman[$num/10];
+ }
+ else
+ {
+ $name = join('und', $unitstringgerman[$num%10],
+ $tenstringgerman[$num/10]);
+ }
+
+ $name;
+}
+
+sub get_numberstringgerman{
+ local($orgnum,$gender) = @_;
+ local($name)="";
+
+ local($num) = $orgnum;
+
+ unless (($num >= 1000000) || ($num < 0))
+ {
+ if ($num >= 1000 and $num < 2000)
+ {
+ $name = &translate_commands("\\eintausend ");
+ }
+ elsif ($num >= 2000)
+ {
+ $name = &get_numberunderhundredgerman($num/1000)
+ . "tausend";
+ }
+
+ $num = $orgnum%1000;
+
+ if ($num >= 100 and $num < 200)
+ {
+ if ($orgnum > 1000)
+ {
+ $name .= "einhundert";
+ }
+ else
+ {
+ $name = &translate_commands("\\einhundert ");
+ }
+ }
+ elsif ($num >= 200)
+ {
+ $name .= $unitstringgerman[$num/100]."hundert";
+ }
+
+ $num = $num%100;
+
+ if ($orgnum == 0)
+ {
+ $name = 'null';
+ }
+ elsif ($num > 0)
+ {
+ $name .= &get_numberunderhundredgerman($num);
+ }
+ }
$name;
}
@@ -866,6 +1103,11 @@ sub get_numberstring{
{
&get_numberstringportuges($val,$gender);
}
+ elsif ($default_language eq 'german'
+ or $default_language eq 'ngerman')
+ {
+ &get_numberstringgerman($val,$gender);
+ }
else
{
&get_numberstringenglish($val);
@@ -875,10 +1117,10 @@ sub get_numberstring{
sub do_cmd_numberstringnum{
local($_) = @_;
local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
+ $num = &missing_braces unless
+ s/$next_pair_pr_rx/$num=$2;''/eo;
- if ($_[0] =~ s/\[(m|f)\]//)
+ if (s/\[(m|f|n)\]//)
{
$gender = $1;
}
@@ -887,12 +1129,12 @@ sub do_cmd_numberstringnum{
$gender = 'm';
}
- join('', &get_numberstring($num,$gender), $_[0]);
+ join('', &get_numberstring($num,$gender), $_);
}
sub do_cmd_numberstring{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -916,11 +1158,11 @@ sub do_cmd_storenumberstring{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -946,15 +1188,15 @@ sub do_cmd_storenumberstringnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
- if ($_ =~s/\s*\[(.)\]//)
+ if ($_ =~s/\s*\[([mfn])\]//)
{
$gender = $1;
}
@@ -967,23 +1209,31 @@ sub do_cmd_storenumberstringnum{
sub get_Numberstring{
local($val,$gender) = @_;
local($string) = &get_numberstring($val,$gender);
- $string =~ s/([a-z])([^\s\-]+)/\u\1\2/g;
- if ($default_language eq 'french')
+ if ($default_language=~m/german/)
{
- $string =~ s/ Et / et /g;
- }
- elsif ($default_language eq 'spanish')
- {
- $string =~ s/ Y / y /g;
- }
- elsif ($default_language eq 'portuges')
- {
- $string =~ s/ E / e /g;
+ $string =~ s/([a-z])([^\s\-]+)/\u\1\2/;
}
else
{
- $string =~ s/ And / and /g;
+ $string =~ s/([a-z])([^\s\-]+)/\u\1\2/g;
+
+ if ($default_language eq 'french')
+ {
+ $string =~ s/ Et / et /g;
+ }
+ elsif ($default_language eq 'spanish')
+ {
+ $string =~ s/ Y / y /g;
+ }
+ elsif ($default_language eq 'portuges')
+ {
+ $string =~ s/ E / e /g;
+ }
+ else
+ {
+ $string =~ s/ And / and /g;
+ }
}
$string;
@@ -992,10 +1242,10 @@ sub get_Numberstring{
sub do_cmd_Numberstringnum{
local($_) = @_;
local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
+ $num = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
- if ($_[0] =~ s/\[(m|f)\]//)
+ if (s/\[(m|f|n)\]//)
{
$gender = $1;
}
@@ -1004,12 +1254,12 @@ sub do_cmd_Numberstringnum{
$gender = 'm';
}
- join('', &get_Numberstring($num,$gender), $_[0]);
+ join('', &get_Numberstring($num,$gender), $_);
}
sub do_cmd_Numberstring{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1033,15 +1283,15 @@ sub do_cmd_storeNumberstring{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
- if ($_ =~s/\s*\[(.)\]//)
+ if ($_ =~s/\s*\[([mfn])\]//)
{
$gender = $1;
}
@@ -1063,15 +1313,15 @@ sub do_cmd_storeNumberstringnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
- if ($_ =~s/\s*\[(.)\]//)
+ if ($_ =~s/\s*\[([mfn])\]//)
{
$gender = $1;
}
@@ -1084,10 +1334,10 @@ sub do_cmd_storeNumberstringnum{
sub do_cmd_NUMBERstringnum{
local($_) = @_;
local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
+ $num = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
- if ($_[0] =~ s/\[(m|f)\]//)
+ if (s/\[(m|f|n)\]//)
{
$gender = $1;
}
@@ -1096,12 +1346,12 @@ sub do_cmd_NUMBERstringnum{
$gender = 'm';
}
- join('', uc(&get_numberstring($num,$gender)), $_[0]);
+ join('', uc(&get_numberstring($num,$gender)), $_);
}
sub do_cmd_NUMBERstring{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1125,11 +1375,11 @@ sub do_cmd_storeNUMBERstring{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1155,15 +1405,15 @@ sub do_cmd_storeNUMBERstringnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
- if ($_ =~s/\s*\[(.)\]//)
+ if ($_ =~s/\s*\[([mfn])\]//)
{
$gender = $1;
}
@@ -1237,7 +1487,7 @@ sub get_ordinalstringenglish{
{
$name .= $unitthstring[$num%10];
}
- }
+ }
$name;
}
@@ -1367,7 +1617,7 @@ sub get_ordinalstringfrench{
{
$name .= $unitthstringfrench[$num%10];
}
- }
+ }
$name;
}
@@ -1389,7 +1639,7 @@ sub get_ordinalstringspanish{
{
$thousands =~s/o(s?)$/a\1/;
}
-
+
$name .= $thousands. " ";
}
else
@@ -1403,7 +1653,7 @@ sub get_ordinalstringspanish{
{
$name =~s/o$/a/;
}
-
+
$num = $num%1000;
}
@@ -1417,7 +1667,7 @@ sub get_ordinalstringspanish{
{
$hundreds =~s/o$/a/;
}
-
+
$name .= $hundreds;
$num = $num%100;
@@ -1461,7 +1711,7 @@ sub get_ordinalstringspanish{
}
$name .= $lastbit;
- }
+ }
$name;
}
@@ -1483,7 +1733,7 @@ sub get_ordinalstringportuges{
{
$thousands =~s/o(s?)$/a\1/;
}
-
+
$name .= $thousands. " ";
}
else
@@ -1497,7 +1747,7 @@ sub get_ordinalstringportuges{
{
$name =~s/o$/a/;
}
-
+
$num = $num%1000;
}
@@ -1511,7 +1761,7 @@ sub get_ordinalstringportuges{
{
$hundreds =~s/o$/a/;
}
-
+
$name .= $hundreds;
$num = $num%100;
@@ -1551,11 +1801,160 @@ sub get_ordinalstringportuges{
}
$name .= $lastbit;
+ }
+
+ $name;
+}
+
+sub get_numberunderhundredthgerman{
+ local($num,$gender)=@_;
+ local($name)='';
+
+ if ($num < 10)
+ {
+ if ($gender eq 'F')
+ {
+ $name = $unitthstringFgerman[$num];
+ }
+ elsif ($gender eq 'N')
+ {
+ $name = $unitthstringNgerman[$num];
+ }
+ else
+ {
+ $name = $unitthstringMgerman[$num];
+ }
+ }
+ elsif ($num%10 == 0)
+ {
+ if ($gender eq 'F')
+ {
+ $name = $tenthstringFgerman[$num/10];
+ }
+ elsif ($gender eq 'N')
+ {
+ $name = $tenthstringNgerman[$num/10];
+ }
+ else
+ {
+ $name = $tenthstringMgerman[$num/10];
+ }
+ }
+ else
+ {
+ local($tenth);
+ if ($gender eq 'F')
+ {
+ $tenth = $tenthstringFgerman[$num/10];
+ }
+ elsif ($gender eq 'N')
+ {
+ $tenth = $tenthstringNgerman[$num/10];
+ }
+ else
+ {
+ $tenth = $tenthstringMgerman[$num/10];
+ }
+
+ $name = join('und', $unitstringgerman[$num%10], $tenth);
}
$name;
}
+sub get_ordinalstringgerman{
+ local($orgnum,$gender) = @_;
+ local($name)="";
+ local($suffix)='';
+
+ $gender = uc($gender);
+
+ if ($gender eq 'F')
+ {
+ $suffix = 'ste';
+ }
+ elsif ($gender eq 'N')
+ {
+ $suffix = 'stes';
+ }
+ else
+ {
+ $suffix = 'ster';
+ $gender = 'M';
+ }
+
+ local($num) = $orgnum;
+
+ unless (($num >= 1000000) || ($num < 0))
+ {
+ if ($num >= 1000 and $num < 2000)
+ {
+ $name = &translate_commands("\\eintausend ");
+ }
+ elsif ($num >= 2000)
+ {
+ $name = &get_numberunderhundredgerman($num/1000)
+ . "tausend";
+ }
+
+ $num = $orgnum%1000;
+
+ # is that it or is there more?
+ if ($orgnum >= 1000 and $num == 0)
+ {
+ $name .= $suffix;
+ return $name;
+ }
+
+ if ($num >= 100 and $num < 200)
+ {
+ if ($orgnum > 1000)
+ {
+ $name .= "einhundert";
+ }
+ else
+ {
+ $name = &translate_commands("\\einhundert ");
+ }
+ }
+ elsif ($num >= 200)
+ {
+ $name .= $unitstringgerman[$num/100]."hundert";
+ }
+
+ $num = $num%100;
+
+ # is that it or is there more?
+ if ($orgnum >= 100 and $num == 0)
+ {
+ $name .= $suffix;
+ return $name;
+ }
+
+ if ($orgnum == 0)
+ {
+ if ($gender eq 'F')
+ {
+ $name = $unitthstringFgerman[0];
+ }
+ elsif ($gender eq 'N')
+ {
+ $name = $unitthstringNgerman[0];
+ }
+ else
+ {
+ $name = $unitthstringMgerman[0];
+ }
+ }
+ elsif ($num > 0)
+ {
+ $name .= &get_numberunderhundredthgerman($num,$gender);
+ }
+ }
+
+ $name;
+}
+
sub get_ordinalstring{
local($val,$gender) = @_;
@@ -1571,6 +1970,11 @@ sub get_ordinalstring{
{
&get_ordinalstringportuges($val,$gender);
}
+ elsif ($default_language eq 'german'
+ or $default_language eq 'ngerman')
+ {
+ &get_ordinalstringgerman($val,$gender);
+ }
else
{
&get_ordinalstringenglish($val);
@@ -1580,10 +1984,10 @@ sub get_ordinalstring{
sub do_cmd_ordinalstringnum{
local($_) = @_;
local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
+ $num = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
- if ($_[0] =~ s/\[(m|f)\]//)
+ if (s/\[(m|f|n)\]//)
{
$gender = $1;
}
@@ -1592,12 +1996,12 @@ sub do_cmd_ordinalstringnum{
$gender = 'm';
}
- join('', &get_ordinalstring($num,$gender), $_[0]);
+ join('', &get_ordinalstring($num,$gender), $_);
}
sub do_cmd_ordinalstring{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1623,7 +2027,7 @@ sub do_cmd_FMCuse{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
$fmtcntvar{$key}.$_;
@@ -1633,11 +2037,11 @@ sub do_cmd_storeordinalstring{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1663,13 +2067,13 @@ sub do_cmd_storeordinalstringnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
if ($_ =~s/\s*\[(.)\]//)
{
@@ -1684,15 +2088,23 @@ sub do_cmd_storeordinalstringnum{
sub get_Ordinalstring{
local($val,$gender) = @_;
local($string) = &get_ordinalstring($val,$gender);
- $string =~ s/\b([a-z])([^\s\-]+)/\u\1\2/g;
- if ($default_language eq 'french')
+ if ($default_language=~m/german/)
{
- $string =~ s/ Et / et /g;
+ $string =~ s/\b([a-z])([^\s\-]+)/\u\1\2/;
}
else
{
- $string =~ s/ And / and /g;
+ $string =~ s/\b([a-z])([^\s\-]+)/\u\1\2/g;
+
+ if ($default_language eq 'french')
+ {
+ $string =~ s/ Et / et /g;
+ }
+ else
+ {
+ $string =~ s/ And / and /g;
+ }
}
$string;
@@ -1701,10 +2113,10 @@ sub get_Ordinalstring{
sub do_cmd_Ordinalstringnum{
local($_) = @_;
local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
+ $num = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
- if ($_[0] =~ s/\[(m|f)\]//)
+ if (s/\[(m|f|n)\]//)
{
$gender = $1;
}
@@ -1713,12 +2125,12 @@ sub do_cmd_Ordinalstringnum{
$gender = 'm';
}
- join('', &get_Ordinalstring($num,$gender), $_[0]);
+ join('', &get_Ordinalstring($num,$gender), $_);
}
sub do_cmd_Ordinalstring{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1742,11 +2154,11 @@ sub do_cmd_storeOrdinalstring{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1772,13 +2184,13 @@ sub do_cmd_storeOrdinalstringnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
if ($_ =~s/\s*\[(.)\]//)
{
@@ -1793,10 +2205,10 @@ sub do_cmd_storeOrdinalstringnum{
sub do_cmd_ORDINALstringnum{
local($_) = @_;
local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
+ $num = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
- if ($_[0] =~ s/\[(m|f)\]//)
+ if (s/\[(m|f|n)\]//)
{
$gender = $1;
}
@@ -1805,12 +2217,12 @@ sub do_cmd_ORDINALstringnum{
$gender = 'm';
}
- join('', uc(&get_ordinalstring($num,$gender)), $_[0]);
+ join('', uc(&get_ordinalstring($num,$gender)), $_);
}
sub do_cmd_ORDINALstring{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
+ my($gender)='m';
$_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1834,11 +2246,11 @@ sub do_cmd_storeORDINALstring{
local($_) = @_;
local($key);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
+ my($gender)='m';
$_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
@@ -1864,13 +2276,13 @@ sub do_cmd_storeORDINALstringnum{
local($_) = @_;
local($key, $val);
- $key = &missing_braces
+ $key = &missing_braces
unless ((s/$next_pair_pr_rx//o)&&($key=$2));
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
+ $val = &missing_braces
+ unless (s/$next_pair_pr_rx/$val=$2;''/eo);
- local($gender)='m';
+ my($gender)='m';
if ($_ =~s/\s*\[(.)\]//)
{
@@ -1996,8 +2408,9 @@ sub do_cmd_binary{
sub do_cmd_binarynum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', &get_binary($num), $_);
}
@@ -2015,8 +2428,9 @@ sub do_cmd_decimal{
sub do_cmd_decimalnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', &get_decimal($num), $_);
}
@@ -2034,8 +2448,9 @@ sub do_cmd_hexadecimal{
sub do_cmd_hexadecimalnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', &get_hexadecimal($num), $_);
}
@@ -2053,8 +2468,9 @@ sub do_cmd_Hexadecimal{
sub do_cmd_Hexadecimalnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', &get_Hexadecimal($num), $_);
}
@@ -2072,8 +2488,9 @@ sub do_cmd_octal{
sub do_cmd_octalnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', &get_octal($num), $_);
}
@@ -2107,15 +2524,17 @@ sub do_cmd_AAAlph{
sub do_cmd_aaalphnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', (sprintf "%${padzeroes}s", &get_aaalph($num)), $_);
}
sub do_cmd_AAAlphnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', uc(sprintf "%${padzeroes}s", &get_aaalph($num)), $_);
}
@@ -2141,27 +2560,29 @@ sub get_abalph{
sub do_cmd_abalph{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
+
join('', (sprintf "%${padzeroes}s", &get_abalph($val)), $_);
}
sub do_cmd_abalphnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', (sprintf "%${padzeroes}s", &get_abalph($num)), $_);
}
sub do_cmd_ABAlph{
local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
+
join('', uc(sprintf "%${padzeroes}s", &get_abalph($val)), $_);
}
sub do_cmd_ABAlphnum{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
+
join('', uc(sprintf "%${padzeroes}s", &get_abalph($num)), $_);
}
@@ -2173,16 +2594,17 @@ sub get_twodigit{
sub do_cmd_twodigit{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
# this is a cludge
if ($num eq "THEDAY" or $num eq "THEYEAR" or $num eq "THEMONTH")
{
- join('', 'TWODIGIT{', $num, '}', $_[0]);
+ join('', 'TWODIGIT{', $num, '}', $_);
}
else
{
- join('', get_twodigit($num), $_[0]);
+ join('', &get_twodigit($num), $_);
}
}
@@ -2190,16 +2612,17 @@ sub do_cmd_twodigit{
sub do_cmd_romannumeral{
local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
+ local($num) = &missing_braces
+ unless (s/$next_pair_pr_rx/$num=$2;''/eo);
# this is a cludge
if ($num eq "THEDAY" or $num eq "THEYEAR" or $num eq "THEMONTH")
{
- join('', 'ROMANNUMERAL{', $num, '}', $_[0]);
+ join('', 'ROMANNUMERAL{', $num, '}', $_);
}
else
{
- join('', &froman($num), $_[0]);
+ join('', &froman($num), $_);
}
}
@@ -2207,7 +2630,7 @@ sub do_cmd_romannumeral{
# Note: The configuration file should be loaded before
# the package options are executed.
-# why doesn't this work? If I call this subroutine it
+# why doesn't this work? If I call this subroutine it
# causes an infinite loop.
sub load_fmtcount_cfg{
diff --git a/Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx b/Master/texmf-dist/doc/latex/fmtcount/source/fmtcount.dtx
index 4a1bf4eb979..1ed4d0f8161 100644
--- a/Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx
+++ b/Master/texmf-dist/doc/latex/fmtcount/source/fmtcount.dtx
@@ -1,18 +1,13 @@
%\iffalse
% fmtcount.dtx generated using makedtx version 0.91b (c) Nicola Talbot
% Command line args:
-% -macrocode ".*\.perl"
-% -setambles ".*\.perl=>\nopreamble\nopostamble"
% -src "(.+)\.(def)=>\1.\2"
% -src "(.+)\.(sty)=>\1.\2"
-% -src "(.+)\.(perl)=>\1.\2"
-% -src "(fc-samp\.tex)=>\1"
-% -src "(fc-lang\.tex)=>\1"
% -doc "manual.tex"
% -author "Nicola Talbot"
% -dir "source"
% fmtcount
-% Created on 2007/4/21 19:25
+% Created on 2007/6/14 21:12
%\fi
%\iffalse
%<*package>
@@ -59,12 +54,11 @@
%\fi
%
%\RecordChanges
-%\CheckSum{7392}
-%\OnlyDescription
-%\def\filedate{20 April 2007}
-%\def\fileversion{1.09}
+%\CheckSum{7743}
+%\def\filedate{14 June 2007}
+%\def\fileversion{1.1}
%\def\filename{fmtcount.dtx}
-%\def\docdate{21st April 2007}
+%\def\docdate{26th May 2007}
%
% \title{fmtcount.sty v\fileversion: Displaying the Values of
%\LaTeX\ Counters}
@@ -365,7 +359,10 @@
%Version 1.02 of the \styname{fmtcount} package now has
%limited multilingual support. The following languages are
%implemented: English, Spanish, Portuguese, French, French (Swiss)
-%and French (Belgian). The package checks to see if the
+%and French (Belgian). German support was added in version
+%1.1\footnote{Thanks to K. H. Fricke for supplying the information}.
+%
+% The package checks to see if the
%command \verb"\date"\meta{language} is defined\footnote{this
%will be true if you have loaded \styname{babel}}, and will
%load the code for those languages. The commands \verb"\ordinal",
@@ -388,15 +385,20 @@
%The \texttt{french} and \texttt{abbrv} settings only have an
%effect if the French language has been defined.
%
-%The male gender for all languages is used by default, however
-%the feminine form can be obtained by passing \texttt{f} as
-%an optional argument to \verb"\ordinal", \verb!\ordinalnum! etc.
-%For example: \verb"\numberstring{section}[f]". Note that the
-%optional argument comes \emph{after} the compulsory argument.
+%The male gender for all languages is used by default, however the
+%feminine or neuter forms can be obtained by passing \texttt{f} or
+%\texttt{n} as an optional argument to \verb"\ordinal",
+%\verb!\ordinalnum! etc. For example:
+%\verb"\numberstring{section}[f]". Note that the optional argument
+%comes \emph{after} the compulsory argument. If a gender is
+%not defined in a given language, the masculine version will
+%be used instead.
%
%Let me know if you find any spelling mistakes (has been known
%to happen in English, let alone other languages I'm not so
-%familiar with.)
+%familiar with.) If you want to add support for another language,
+%you will need to let me know how to form the numbers and ordinals
+%from 0 to 99999 in that language for each gender.
%
%\section{Configuration File \texttt{fmtcount.cfg}}
%
@@ -444,6 +446,8 @@
%
%I would like to thank my mother for the French and Portuguese
%support and my Spanish dictionary for the Spanish support.
+%Thank you to K. H. Fricke for providing me with the German
+%translations.
%
%\section{Troubleshooting}
%
@@ -462,13 +466,51 @@
%\section{The Code}
%\iffalse
% \begin{macrocode}
+%<*fc-british.def>
+% \end{macrocode}
+%\fi
+% \subsection{fc-british.def}
+% British definitions
+% \begin{macrocode}
+\ProvidesFile{fc-british}[2007/06/14]
+% \end{macrocode}
+% Check that fc-english.def has been loaded
+% \begin{macrocode}
+\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{}
+% \end{macrocode}
+% These are all just synonyms for the commands provided by
+% fc-english.def.
+% \begin{macrocode}
+\let\@ordinalMbritish\@ordinalMenglish
+\let\@ordinalFbritish\@ordinalMenglish
+\let\@ordinalNbritish\@ordinalMenglish
+\let\@numberstringMbritish\@numberstringMenglish
+\let\@numberstringFbritish\@numberstringMenglish
+\let\@numberstringNbritish\@numberstringMenglish
+\let\@NumberstringMbritish\@NumberstringMenglish
+\let\@NumberstringFbritish\@NumberstringMenglish
+\let\@NumberstringNbritish\@NumberstringMenglish
+\let\@ordinalstringMbritish\@ordinalstringMenglish
+\let\@ordinalstringFbritish\@ordinalstringMenglish
+\let\@ordinalstringNbritish\@ordinalstringMenglish
+\let\@OrdinalstringMbritish\@OrdinalstringMenglish
+\let\@OrdinalstringFbritish\@OrdinalstringMenglish
+\let\@OrdinalstringNbritish\@OrdinalstringMenglish
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</fc-british.def>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*fc-english.def>
% \end{macrocode}
%\fi
% \subsection{fc-english.def}
% English definitions
% \begin{macrocode}
-\ProvidesFile{fc-english}[2007/04/20]
+\ProvidesFile{fc-english}[2007/05/26]
% \end{macrocode}
% Define macro that converts a number or count register (first
% argument) to an ordinal, and stores the result in the
@@ -503,10 +545,11 @@
\edef#2{\number#1\relax\noexpand\fmtord{\@fc@ord}}%
}
% \end{macrocode}
-% There is no gender difference in English, so make feminine
-% the same as the masculine.
+% There is no gender difference in English, so make feminine and
+% neuter the same as the masculine.
% \begin{macrocode}
\let\@ordinalFenglish=\@ordinalMenglish
+\let\@ordinalNenglish=\@ordinalMenglish
% \end{macrocode}
% Define the macro that prints the value of a \TeX\ count register
% as text. To make it easier, break it up into units, teens and
@@ -717,10 +760,11 @@ this number}%
\@@numberstringenglish{#1}{#2}%
}
% \end{macrocode}
-% There is no gender in English, so make feminine form the same
+% There is no gender in English, so make feminine and neuter the same
% as the masculine.
% \begin{macrocode}
\let\@numberstringFenglish=\@numberstringMenglish
+\let\@numberstringNenglish=\@numberstringMenglish
% \end{macrocode}
% This version makes the first letter of each word an uppercase
% character (except ``and''). The second argument must be a control
@@ -734,10 +778,11 @@ this number}%
\def\@andname{and}%
\@@numberstringenglish{#1}{#2}}
% \end{macrocode}
-% There is no gender in English, so make feminine form the same
+% There is no gender in English, so make feminine and neuter the same
% as the masculine.
% \begin{macrocode}
\let\@NumberstringFenglish=\@NumberstringMenglish
+\let\@NumberstringNenglish=\@NumberstringMenglish
% \end{macrocode}
% Define a macro that produces an ordinal as a string. Again, break
% it up into units, teens and tens. First the units:
@@ -973,9 +1018,10 @@ this number}%
\def\@hundredth{hundredth}\def\@thousandth{thousandth}%
\@@ordinalstringenglish{#1}{#2}}
% \end{macrocode}
-% No gender in English, so make feminine form same as masculine:
+% No gender in English, so make feminine and neuter same as masculine:
% \begin{macrocode}
\let\@ordinalstringFenglish=\@ordinalstringMenglish
+\let\@ordinalstringNenglish=\@ordinalstringMenglish
% \end{macrocode}
% First letter of each word in upper case:
% \begin{macrocode}
@@ -991,9 +1037,10 @@ this number}%
\def\@hundredth{Hundredth}\def\@thousandth{Thousandth}%
\@@ordinalstringenglish{#1}{#2}}
% \end{macrocode}
-% No gender in English, so make feminine form same as masculine:
+% No gender in English, so make feminine and neuter same as masculine:
% \begin{macrocode}
\let\@OrdinalstringFenglish=\@OrdinalstringMenglish
+\let\@OrdinalstringNenglish=\@OrdinalstringMenglish
% \end{macrocode}
%\iffalse
% \begin{macrocode}
@@ -1008,7 +1055,7 @@ this number}%
% \subsection{fc-french.def}
% French definitions
% \begin{macrocode}
-\ProvidesFile{fc-french.def}[2007/04/20]
+\ProvidesFile{fc-french.def}[2007/05/26]
% \end{macrocode}
% Define macro that converts a number or count register (first
% argument) to an ordinal, and store the result in the second
@@ -1037,7 +1084,11 @@ this number}%
\edef#2{\number#1\relax\noexpand\fmtord{eme}}%
\fi
\fi}
-% \end{macrocode}
+% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalNfrench\@ordinalMfrench
+% \end{macrocode}
% Textual representation of a number. To make it easier break it
% into units, tens and teens. First the units:
% \begin{macrocode}
@@ -1308,6 +1359,10 @@ Dix%
% \begin{macrocode}
\let\@numberstringFfrench=\@numberstringFfrenchfrance
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalstringNfrench\@ordinalstringMfrench
+% \end{macrocode}
% As above, but with initial letter in upper case. Swiss (masculine):
% \begin{macrocode}
\DeclareRobustCommand{\@NumberstringMfrenchswiss}[2]{%
@@ -1394,6 +1449,10 @@ Dix%
% \begin{macrocode}
\let\@NumberstringFfrench=\@NumberstringFfrenchfrance
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@NumberstringNfrench\@NumberstringMfrench
+% \end{macrocode}
% Again, as from version 1.09, this has been changed to take
% two arguments, where the second argument is a control
% sequence, and nothing is displayed. Store textual representation
@@ -1553,6 +1612,10 @@ Dix%
% \begin{macrocode}
\let\@ordinalstringFfrench=\@ordinalstringFfrenchfrance
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalstringNfrench\@ordinalstringMfrench
+% \end{macrocode}
% As above, but with initial letters in upper case. Swiss (masculine):
% \begin{macrocode}
\DeclareRobustCommand{\@OrdinalstringMfrenchswiss}[2]{%
@@ -1709,6 +1772,10 @@ Dix%
% \begin{macrocode}
\let\@OrdinalstringFfrench=\@OrdinalstringFfrenchfrance
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@OrdinalstringNfrench\@OrdinalstringMfrench
+% \end{macrocode}
% In order to convert numbers into textual ordinals, need
% to break it up into units, tens and teens. First the units.
% The argument must be a number or count register between 0
@@ -2197,13 +2264,562 @@ this number}%
%\fi
%\iffalse
% \begin{macrocode}
+%<*fc-german.def>
+% \end{macrocode}
+%\fi
+% \subsection{fc-german.def}
+% German definitions (thank you to K. H. Fricke for supplying
+% this information)
+% \begin{macrocode}
+\ProvidesFile{fc-german.def}[2007/06/14]
+% \end{macrocode}
+% Define macro that converts a number or count register (first
+% argument) to an ordinal, and stores the result in the
+% second argument, which must be a control sequence.
+% Masculine:
+% \begin{macrocode}
+\newcommand{\@ordinalMgerman}[2]{%
+\edef#2{\number#1\relax.}}
+% \end{macrocode}
+% Feminine:
+% \begin{macrocode}
+\newcommand{\@ordinalFgerman}[2]{%
+\edef#2{\number#1\relax.}}
+% \end{macrocode}
+% Neuter:
+% \begin{macrocode}
+\newcommand{\@ordinalNgerman}[2]{%
+\edef#2{\number#1\relax.}}
+% \end{macrocode}
+% Convert a number to text. The easiest way to do this is to
+% break it up into units, tens and teens.
+% Units (argument must be a number from 0 to 9, 1 on its own (eins)
+% is dealt with separately):
+% \begin{macrocode}
+\newcommand{\@@unitstringgerman}[1]{%
+\ifcase#1%
+null%
+\or ein%
+\or zwei%
+\or drei%
+\or vier%
+\or f\"unf%
+\or sechs%
+\or sieben%
+\or acht%
+\or neun%
+\fi
+}
+% \end{macrocode}
+% Tens (argument must go from 1 to 10):
+% \begin{macrocode}
+\newcommand{\@@tenstringgerman}[1]{%
+\ifcase#1%
+\or zehn%
+\or zwanzig%
+\or drei{\ss}ig%
+\or vierzig%
+\or f\"unfzig%
+\or sechzig%
+\or siebzig%
+\or achtzig%
+\or neunzig%
+\or einhundert%
+\fi
+}
+% \end{macrocode}
+% |\einhundert| is set to |einhundert| by default, user can
+% redefine this command to just |hundert| if required, similarly
+% for |\eintausend|.
+% \begin{macrocode}
+\providecommand*{\einhundert}{einhundert}
+\providecommand*{\eintausend}{eintausend}
+% \end{macrocode}
+% Teens:
+% \begin{macrocode}
+\newcommand{\@@teenstringgerman}[1]{%
+\ifcase#1%
+zehn%
+\or elf%
+\or zw\"olf%
+\or dreizehn%
+\or vierzehn%
+\or f\"unfzehn%
+\or sechzehn%
+\or siebzehn%
+\or achtzehn%
+\or neunzehn%
+\fi
+}
+% \end{macrocode}
+% The results are stored in the second argument, but doesn't
+% display anything.
+% \begin{macrocode}
+\DeclareRobustCommand{\@numberstringMgerman}[2]{%
+\let\@unitstring=\@@unitstringgerman
+\let\@teenstring=\@@teenstringgerman
+\let\@tenstring=\@@tenstringgerman
+\@@numberstringgerman{#1}{#2}}
+% \end{macrocode}
+% Feminine and neuter forms:
+% \begin{macrocode}
+\let\@numberstringFgerman=\@numberstringMgerman
+\let\@numberstringNgerman=\@numberstringMgerman
+% \end{macrocode}
+% As above, but initial letters in upper case:
+% \begin{macrocode}
+\DeclareRobustCommand{\@NumberstringMgerman}[2]{%
+\@numberstringMgerman{#1}{\@@num@str}%
+\edef#2{\noexpand\MakeUppercase\@@num@str}}
+% \end{macrocode}
+% Feminine and neuter form:
+% \begin{macrocode}
+\let\@NumberstringFgerman=\@NumberstringMgerman
+\let\@NumberstringNgerman=\@NumberstringMgerman
+% \end{macrocode}
+% As above, but for ordinals.
+% \begin{macrocode}
+\DeclareRobustCommand{\@ordinalstringMgerman}[2]{%
+\let\@unitthstring=\@@unitthstringMgerman
+\let\@teenthstring=\@@teenthstringMgerman
+\let\@tenthstring=\@@tenthstringMgerman
+\let\@unitstring=\@@unitstringgerman
+\let\@teenstring=\@@teenstringgerman
+\let\@tenstring=\@@tenstringgerman
+\def\@thousandth{tausendster}%
+\def\@hundredth{hundertster}%
+\@@ordinalstringgerman{#1}{#2}}
+% \end{macrocode}
+% Feminine form:
+% \begin{macrocode}
+\DeclareRobustCommand{\@ordinalstringFgerman}[2]{%
+\let\@unitthstring=\@@unitthstringFgerman
+\let\@teenthstring=\@@teenthstringFgerman
+\let\@tenthstring=\@@tenthstringFgerman
+\let\@unitstring=\@@unitstringgerman
+\let\@teenstring=\@@teenstringgerman
+\let\@tenstring=\@@tenstringgerman
+\def\@thousandth{tausendste}%
+\def\@hundredth{hundertste}%
+\@@ordinalstringgerman{#1}{#2}}
+% \end{macrocode}
+% Neuter form:
+% \begin{macrocode}
+\DeclareRobustCommand{\@ordinalstringNgerman}[2]{%
+\let\@unitthstring=\@@unitthstringNgerman
+\let\@teenthstring=\@@teenthstringNgerman
+\let\@tenthstring=\@@tenthstringNgerman
+\let\@unitstring=\@@unitstringgerman
+\let\@teenstring=\@@teenstringgerman
+\let\@tenstring=\@@tenstringgerman
+\def\@thousandth{tausendstes}%
+\def\@hundredth{hunderstes}%
+\@@ordinalstringgerman{#1}{#2}}
+% \end{macrocode}
+% As above, but with initial letters in upper case.
+% \begin{macrocode}
+\DeclareRobustCommand{\@OrdinalstringMgerman}[2]{%
+\@ordinalstringMgerman{#1}{\@@num@str}%
+\edef#2{\protect\MakeUppercase\@@num@str}}
+% \end{macrocode}
+% Feminine form:
+% \begin{macrocode}
+\DeclareRobustCommand{\@OrdinalstringFgerman}[2]{%
+\@ordinalstringFgerman{#1}{\@@num@str}%
+\edef#2{\protect\MakeUppercase\@@num@str}}
+% \end{macrocode}
+% Neuter form:
+% \begin{macrocode}
+\DeclareRobustCommand{\@OrdinalstringNgerman}[2]{%
+\@ordinalstringNgerman{#1}{\@@num@str}%
+\edef#2{\protect\MakeUppercase\@@num@str}}
+% \end{macrocode}
+% Code for converting numbers into textual ordinals. As before,
+% it is easier to split it into units, tens and teens.
+% Units:
+% \begin{macrocode}
+\newcommand{\@@unitthstringMgerman}[1]{%
+\ifcase#1%
+nullter%
+\or erster%
+\or zweiter%
+\or dritter%
+\or vierter%
+\or f\"unter%
+\or sechster%
+\or siebter%
+\or achter%
+\or neunter%
+\fi
+}
+% \end{macrocode}
+% Tens:
+% \begin{macrocode}
+\newcommand{\@@tenthstringMgerman}[1]{%
+\ifcase#1%
+\or zehnter%
+\or zwanzigster%
+\or drei{\ss}igster%
+\or vierzigster%
+\or f\"unfzigster%
+\or sechzigster%
+\or siebzigster%
+\or achtzigster%
+\or neunzigster%
+\fi
+}
+% \end{macrocode}
+% Teens:
+% \begin{macrocode}
+\newcommand{\@@teenthstringMgerman}[1]{%
+\ifcase#1%
+zehnter%
+\or elfter%
+\or zw\"olfter%
+\or dreizehnter%
+\or vierzehnter%
+\or f\"unfzehnter%
+\or sechzehnter%
+\or siebzehnter%
+\or achtzehnter%
+\or neunzehnter%
+\fi
+}
+% \end{macrocode}
+% Units (feminine):
+% \begin{macrocode}
+\newcommand{\@@unitthstringFgerman}[1]{%
+\ifcase#1%
+nullte%
+\or erste%
+\or zweite%
+\or dritte%
+\or vierte%
+\or f\"unfte%
+\or sechste%
+\or siebte%
+\or achte%
+\or neunte%
+\fi
+}
+% \end{macrocode}
+% Tens (feminine):
+% \begin{macrocode}
+\newcommand{\@@tenthstringFgerman}[1]{%
+\ifcase#1%
+\or zehnte%
+\or zwanzigste%
+\or drei{\ss}igste%
+\or vierzigste%
+\or f\"unfzigste%
+\or sechzigste%
+\or siebzigste%
+\or achtzigste%
+\or neunzigste%
+\fi
+}
+% \end{macrocode}
+% Teens (feminine)
+% \begin{macrocode}
+\newcommand{\@@teenthstringFgerman}[1]{%
+\ifcase#1%
+zehnte%
+\or elfte%
+\or zw\"olfte%
+\or dreizehnte%
+\or vierzehnte%
+\or f\"unfzehnte%
+\or sechzehnte%
+\or siebzehnte%
+\or achtzehnte%
+\or neunzehnte%
+\fi
+}
+% \end{macrocode}
+% Units (neuter):
+% \begin{macrocode}
+\newcommand{\@@unitthstringNgerman}[1]{%
+\ifcase#1%
+nulltes%
+\or erstes%
+\or zweites%
+\or drittes%
+\or viertes%
+\or f\"unte%
+\or sechstes%
+\or siebtes%
+\or achtes%
+\or neuntes%
+\fi
+}
+% \end{macrocode}
+% Tens (neuter):
+% \begin{macrocode}
+\newcommand{\@@tenthstringNgerman}[1]{%
+\ifcase#1%
+\or zehntes%
+\or zwanzigstes%
+\or drei{\ss}igstes%
+\or vierzigstes%
+\or f\"unfzigstes%
+\or sechzigstes%
+\or siebzigstes%
+\or achtzigstes%
+\or neunzigstes%
+\fi
+}
+% \end{macrocode}
+% Teens (neuter)
+% \begin{macrocode}
+\newcommand{\@@teenthstringNgerman}[1]{%
+\ifcase#1%
+zehntes%
+\or elftes%
+\or zw\"olftes%
+\or dreizehntes%
+\or vierzehntes%
+\or f\"unfzehntes%
+\or sechzehntes%
+\or siebzehntes%
+\or achtzehntes%
+\or neunzehntes%
+\fi
+}
+% \end{macrocode}
+% This appends the results to |#2| for number |#2| (in range 0 to 100.)
+% null and eins are dealt with separately in |\@@numberstringgerman|.
+% \begin{macrocode}
+\newcommand{\@@numberunderhundredgerman}[2]{%
+\ifnum#1<10\relax
+ \ifnum#1>0\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@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}}%
+ \else
+ \ifnum\@tmpstrctr=0\relax
+ \else
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@unitstring{\@tmpstrctr}und}%
+ \fi
+ \@tmpstrctr=#1\relax
+ \divide\@tmpstrctr by 10\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@tenstring{\@tmpstrctr}}%
+ \fi
+\fi
+}
+% \end{macrocode}
+% This stores the results in the second argument
+% (which must be a control
+% sequence), but it doesn't display anything.
+% \begin{macrocode}
+\newcommand{\@@numberstringgerman}[2]{%
+\ifnum#1>99999\relax
+ \PackageError{fmtcount}{Out of range}%
+ {This macro only works for values less than 100000}%
+\else
+ \ifnum#1<0\relax
+ \PackageError{fmtcount}{Negative numbers not permitted}%
+ {This macro does not work for negative numbers, however
+ you can try typing "minus" first, and then pass the modulus of
+ this number}%
+ \fi
+\fi
+\def#2{}%
+\@strctr=#1\relax \divide\@strctr by 1000\relax
+\ifnum\@strctr>1\relax
+% #1 is >= 2000, \@strctr now contains the number of thousands
+\@@numberunderhundredgerman{\@strctr}{#2}%
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr tausend}%
+\else
+% #1 lies in range [1000,1999]
+ \ifnum\@strctr=1\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\eintausend}%
+ \fi
+\fi
+\@strctr=#1\relax
+\@modulo{\@strctr}{1000}%
+\divide\@strctr by 100\relax
+\ifnum\@strctr>1\relax
+% now dealing with number in range [200,999]
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@unitstring{\@strctr}hundert}%
+\else
+ \ifnum\@strctr=1\relax
+% dealing with number in range [100,199]
+ \ifnum#1>1000\relax
+% if orginal number > 1000, use einhundert
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr einhundert}%
+ \else
+% otherwise use \einhundert
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\einhundert}%
+ \fi
+ \fi
+\fi
+\@strctr=#1\relax
+\@modulo{\@strctr}{100}%
+\ifnum#1=0\relax
+ \def#2{null}%
+\else
+ \ifnum\@strctr=1\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr eins}%
+ \else
+ \@@numberunderhundredgerman{\@strctr}{#2}%
+ \fi
+\fi
+}
+% \end{macrocode}
+% As above, but for ordinals
+% \begin{macrocode}
+\newcommand{\@@numberunderhundredthgerman}[2]{%
+\ifnum#1<10\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@unitthstring{#1}}%
+\else
+ \@tmpstrctr=#1\relax
+ \@modulo{\@tmpstrctr}{10}%
+ \ifnum#1<20\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@teenthstring{\@tmpstrctr}}%
+ \else
+ \ifnum\@tmpstrctr=0\relax
+ \else
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@unitstring{\@tmpstrctr}und}%
+ \fi
+ \@tmpstrctr=#1\relax
+ \divide\@tmpstrctr by 10\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@tenthstring{\@tmpstrctr}}%
+ \fi
+\fi
+}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\@@ordinalstringgerman}[2]{%
+\ifnum#1>99999\relax
+ \PackageError{fmtcount}{Out of range}%
+ {This macro only works for values less than 100000}%
+\else
+ \ifnum#1<0\relax
+ \PackageError{fmtcount}{Negative numbers not permitted}%
+ {This macro does not work for negative numbers, however
+ you can try typing "minus" first, and then pass the modulus of
+ this number}%
+ \fi
+\fi
+\def#2{}%
+\@strctr=#1\relax \divide\@strctr by 1000\relax
+\ifnum\@strctr>1\relax
+% #1 is >= 2000, \@strctr now contains the number of thousands
+\@@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}%
+ \else
+ \edef#2{\@@fc@numstr tausend}%
+ \fi
+\else
+% #1 lies in range [1000,1999]
+ \ifnum\@strctr=1\relax
+ \ifnum#1=1000\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@thousandth}%
+ \else
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\eintausend}%
+ \fi
+ \fi
+\fi
+\@strctr=#1\relax
+\@modulo{\@strctr}{1000}%
+\divide\@strctr by 100\relax
+\ifnum\@strctr>1\relax
+% now dealing with number in range [200,999]
+ \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}%
+ \else
+ \edef#2{\@@fc@numstr\@unitstring{\@strctr}\@hundredth}%
+ \fi
+ \else
+ \edef#2{\@@fc@numstr\@unitstring{\@strctr}hundert}%
+ \fi
+\else
+ \ifnum\@strctr=1\relax
+% dealing with number in range [100,199]
+% is that it, or is there more?
+ \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}%
+ \ifnum\@tmpstrctr=0\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\@hundredth}%
+ \else
+ \ifnum#1>1000\relax
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr einhundert}%
+ \else
+ \let\@@fc@numstr#2\relax
+ \edef#2{\@@fc@numstr\einhundert}%
+ \fi
+ \fi
+ \fi
+\fi
+\@strctr=#1\relax
+\@modulo{\@strctr}{100}%
+\ifthenelse{\@strctr=0 \and #1>0}{}{%
+\@@numberunderhundredthgerman{\@strctr}{#2}%
+}%
+}
+% \end{macrocode}
+% Set |ngerman| to be equivalent to |german|. Is it okay to do
+% this? (I don't know the difference between the two.)
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</fc-german.def>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*fc-portuges.def>
% \end{macrocode}
%\fi
% \subsection{fc-portuges.def}
% Portuguse definitions
% \begin{macrocode}
-\ProvidesFile{fc-portuges.def}[2007/04/20]
+\ProvidesFile{fc-portuges.def}[2007/05/26]
% \end{macrocode}
% Define macro that converts a number or count register (first
% argument) to an ordinal, and stores the result in the second
@@ -2225,6 +2841,10 @@ this number}%
\edef#2{\number#1\relax\noexpand\fmtord{a}}%
\fi}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalNportuges\@ordinalMportuges
+% \end{macrocode}
% Convert a number to a textual representation. To make it easier,
% split it up into units, tens, teens and hundreds. Units (argument must
% be a number from 0 to 9):
@@ -2449,6 +3069,10 @@ Dez%
\def\@andname{e}%
\@@numberstringportuges{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@numberstringNportuges\@numberstringMportuges
+% \end{macrocode}
% As above, but initial letters in upper case:
% \begin{macrocode}
\DeclareRobustCommand{\@NumberstringMportuges}[2]{%
@@ -2471,6 +3095,10 @@ Dez%
\def\@andname{e}%
\@@numberstringportuges{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@NumberstringNportuges\@NumberstringMportuges
+% \end{macrocode}
% As above, but for ordinals.
% \begin{macrocode}
\DeclareRobustCommand{\@ordinalstringMportuges}[2]{%
@@ -2493,6 +3121,10 @@ Dez%
\def\@thousandth{mil\'esima}%
\@@ordinalstringportuges{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalstringNportuges\@ordinalstringMportuges
+% \end{macrocode}
% As above, but initial letters in upper case (masculine):
% \begin{macrocode}
\DeclareRobustCommand{\@OrdinalstringMportuges}[2]{%
@@ -2515,6 +3147,10 @@ Dez%
\def\@thousandth{Mil\'esima}%
\@@ordinalstringportuges{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@OrdinalstringNportuges\@OrdinalstringMportuges
+% \end{macrocode}
% In order to do the ordinals, split into units, teens, tens
% and hundreds. Units:
% \begin{macrocode}
@@ -2932,7 +3568,7 @@ this number}%
% \subsection{fc-spanish.def}
% Spanish definitions
% \begin{macrocode}
-\ProvidesFile{fc-spanish.def}[2007/04/20]
+\ProvidesFile{fc-spanish.def}[2007/05/26]
% \end{macrocode}
% Define macro that converts a number or count register (first
% argument) to an ordinal, and stores the result in the
@@ -2947,6 +3583,10 @@ this number}%
\newcommand{\@ordinalFspanish}[2]{%
\edef#2{\number#1\relax\noexpand\fmtord{a}}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalNspanish\@ordinalMspanish
+% \end{macrocode}
% Convert a number to text. The easiest way to do this is to
% break it up into units, tens, teens, twenties and hundreds.
% Units (argument must be a number from 0 to 9):
@@ -3237,6 +3877,10 @@ Veinte%
\def\@andname{y}%
\@@numberstringspanish{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@numberstringNspanish\@numberstringMspanish
+% \end{macrocode}
% As above, but initial letters in upper case:
% \begin{macrocode}
\DeclareRobustCommand{\@NumberstringMspanish}[2]{%
@@ -3261,6 +3905,10 @@ Veinte%
\def\@hundred{Cien}\def\@thousand{Mil}%
\@@numberstringspanish{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@NumberstringNspanish\@NumberstringMspanish
+% \end{macrocode}
% As above, but for ordinals.
% \begin{macrocode}
\DeclareRobustCommand{\@ordinalstringMspanish}[2]{%
@@ -3283,6 +3931,10 @@ Veinte%
\def\@thousandth{mil\'esima}%
\@@ordinalstringspanish{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@ordinalstringNspanish\@ordinalstringMspanish
+% \end{macrocode}
% As above, but with initial letters in upper case.
% \begin{macrocode}
\DeclareRobustCommand{\@OrdinalstringMspanish}[2]{%
@@ -3305,6 +3957,10 @@ Veinte%
\def\@thousandth{Mil\'esima}%
\@@ordinalstringspanish{#1}{#2}}
% \end{macrocode}
+% Make neuter same as masculine:
+% \begin{macrocode}
+\let\@OrdinalstringNspanish\@OrdinalstringMspanish
+% \end{macrocode}
% Code for convert numbers into textual ordinals. As before,
% it is easier to split it into units, tens, teens and hundreds.
% Units:
@@ -3779,6 +4435,82 @@ this number}%
%\fi
%\iffalse
% \begin{macrocode}
+%<*fc-UKenglish.def>
+% \end{macrocode}
+%\fi
+% \subsection{fc-UKenglish.def}
+% UK English definitions
+% \begin{macrocode}
+\ProvidesFile{fc-UKenglish}[2007/06/14]
+% \end{macrocode}
+% Check that fc-english.def has been loaded
+% \begin{macrocode}
+\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{}
+% \end{macrocode}
+% These are all just synonyms for the commands provided by
+% fc-english.def.
+% \begin{macrocode}
+\let\@ordinalMUKenglish\@ordinalMenglish
+\let\@ordinalFUKenglish\@ordinalMenglish
+\let\@ordinalNUKenglish\@ordinalMenglish
+\let\@numberstringMUKenglish\@numberstringMenglish
+\let\@numberstringFUKenglish\@numberstringMenglish
+\let\@numberstringNUKenglish\@numberstringMenglish
+\let\@NumberstringMUKenglish\@NumberstringMenglish
+\let\@NumberstringFUKenglish\@NumberstringMenglish
+\let\@NumberstringNUKenglish\@NumberstringMenglish
+\let\@ordinalstringMUKenglish\@ordinalstringMenglish
+\let\@ordinalstringFUKenglish\@ordinalstringMenglish
+\let\@ordinalstringNUKenglish\@ordinalstringMenglish
+\let\@OrdinalstringMUKenglish\@OrdinalstringMenglish
+\let\@OrdinalstringFUKenglish\@OrdinalstringMenglish
+\let\@OrdinalstringNUKenglish\@OrdinalstringMenglish
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</fc-UKenglish.def>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*fc-USenglish.def>
+% \end{macrocode}
+%\fi
+% \subsection{fc-USenglish.def}
+% US English definitions
+% \begin{macrocode}
+\ProvidesFile{fc-USenglish}[2007/06/14]
+% \end{macrocode}
+% Check that fc-english.def has been loaded
+% \begin{macrocode}
+\@ifundefined{@ordinalMenglish}{\input{fc-english.def}}{}
+% \end{macrocode}
+% These are all just synonyms for the commands provided by
+% fc-english.def.
+% \begin{macrocode}
+\let\@ordinalMUSenglish\@ordinalMenglish
+\let\@ordinalFUSenglish\@ordinalMenglish
+\let\@ordinalNUSenglish\@ordinalMenglish
+\let\@numberstringMUSenglish\@numberstringMenglish
+\let\@numberstringFUSenglish\@numberstringMenglish
+\let\@numberstringNUSenglish\@numberstringMenglish
+\let\@NumberstringMUSenglish\@NumberstringMenglish
+\let\@NumberstringFUSenglish\@NumberstringMenglish
+\let\@NumberstringNUSenglish\@NumberstringMenglish
+\let\@ordinalstringMUSenglish\@ordinalstringMenglish
+\let\@ordinalstringFUSenglish\@ordinalstringMenglish
+\let\@ordinalstringNUSenglish\@ordinalstringMenglish
+\let\@OrdinalstringMUSenglish\@OrdinalstringMenglish
+\let\@OrdinalstringFUSenglish\@OrdinalstringMenglish
+\let\@OrdinalstringNUSenglish\@OrdinalstringMenglish
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</fc-USenglish.def>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*fmtcount.sty>
% \end{macrocode}
%\fi
@@ -3786,7 +4518,7 @@ this number}%
% This section deals with the code for |fmtcount.sty|
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fmtcount}[2007/04/20 v1.09]
+\ProvidesPackage{fmtcount}[2007/06/14 v1.1]
\RequirePackage{ifthen}
\RequirePackage{keyval}
% \end{macrocode}
@@ -3809,11 +4541,19 @@ this number}%
% know if there is a standard way of detecting which
% languages are defined, so I'm just going to check
% if \verb"\date"\meta{language} is defined):
+%\changes{v1.1}{14 June 2007}{added check for UKenglish,
+% british and USenglish babel settings}
% \begin{macrocode}
\@ifundefined{dateenglish}{}{\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{datespanish}{}{\input{fc-spanish.def}}
\@ifundefined{dateportuges}{}{\input{fc-portuges.def}}
\@ifundefined{datefrench}{}{\input{fc-french.def}}
+\@ifundefined{dategerman}{%
+\@ifundefined{datengerman}{}{\input{fc-german.def}}}{%
+\input{fc-german.def}}
% \end{macrocode}
% Define keys for use with |\fmtcountsetoptions|.
% Key to switch French dialects (Does babel store
@@ -4188,15 +4928,17 @@ or `user'}}}
\newcommand{\ordinalnum}[1]{\@ifnextchar[{\@ordinalnum{#1}}{%
\@ordinalnum{#1}[m]}}
% \end{macrocode}
-% Display ordinal according to gender:
+% Display ordinal according to gender (neuter added in v1.1):
% \begin{macrocode}
\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 or f}}%
-\protect\@ordinalM{#1}{\@fc@ordstr}}\@fc@ordstr}}
+Available options are m, f or n}}%
+\protect\@ordinalM{#1}{\@fc@ordstr}}}\@fc@ordstr}}
% \end{macrocode}
% Store the ordinal (first argument
% is identifying name, second argument is a counter.)
@@ -4218,10 +4960,12 @@ Available options are m or f}}%
\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}}%
+\protect\@ordinalM{#2}{\@fc@ord}}}%
\expandafter\let\csname @fcs@#1\endcsname\@fc@ord}
% \end{macrocode}
% Get stored information:
@@ -4245,10 +4989,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@ordinalstringM{#1}{\@fc@ordstr}}\@fc@ordstr}}
+\string\ordinalstring}{Available options are m, f or f}}%
+\protect\@ordinalstringM{#1}{\@fc@ordstr}}}\@fc@ordstr}}
% \end{macrocode}
% Store textual representation of number. First argument is
% identifying name, second argument is the counter set to the
@@ -4270,10 +5016,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@ordinalstringM{#2}{\@fc@ordstr}}%
+\string\ordinalstring}{Available options are m, f or n}}%
+\protect\@ordinalstringM{#2}{\@fc@ordstr}}}%
\expandafter\let\csname @fcs@#1\endcsname\@fc@ordstr}
% \end{macrocode}
% Display ordinal as a string with initial letters in upper case
@@ -4295,10 +5043,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@OrdinalstringM{#1}{\@fc@ordstr}}\@fc@ordstr}}
+Available options are m, f or n}}%
+\protect\@OrdinalstringM{#1}{\@fc@ordstr}}}\@fc@ordstr}}
% \end{macrocode}
% Store textual representation of number, with initial letters in
% upper case. First argument is identifying name, second argument
@@ -4323,10 +5073,12 @@ Available options are m or f}}%
\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}}%
+\protect\@OrdinalstringM{#2}{\@fc@ordstr}}}%
\expandafter\let\csname @fcs@#1\endcsname\@fc@ordstr}
% \end{macrocode}
% Store upper case textual representation of ordinal. The first
@@ -4348,10 +5100,12 @@ Available options are m or f}}%
\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}}%
+\protect\@ordinalstringM{#2}{\@fc@ordstr}}}%
\expandafter\edef\csname @fcs@#1\endcsname{%
\noexpand\MakeUppercase{\@fc@ordstr}}}
% \end{macrocode}
@@ -4372,10 +5126,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@ordinalstringM{#1}{\@fc@ordstr}}%
+Available options are m, f or n}}%
+\protect\@ordinalstringM{#1}{\@fc@ordstr}}}%
\MakeUppercase{\@fc@ordstr}}}
% \end{macrocode}
% Convert number to textual respresentation, and store. First
@@ -4397,10 +5153,12 @@ Available options are m or f}}%
\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}}%
+Available options are m, f or n}}%
+\protect\@numberstringM{#2}{\@fc@numstr}}}%
\expandafter\let\csname @fcs@#1\endcsname\@fc@numstr}
% \end{macrocode}
% Display textual representation of a number. The argument
@@ -4420,10 +5178,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@numberstringM{#1}{\@fc@numstr}}\@fc@numstr}}
+Available options are m, f or n}}%
+\protect\@numberstringM{#1}{\@fc@numstr}}}\@fc@numstr}}
% \end{macrocode}
% Store textual representation of number. First argument is
% identifying name, second argument is a counter.
@@ -4443,10 +5203,12 @@ Available options are m or f}}%
\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}}%
+Available options are m, f or n}}%
+\protect\@NumberstringM{#2}{\@fc@numstr}}}%
\expandafter\let\csname @fcs@#1\endcsname\@fc@numstr}
% \end{macrocode}
% Display textual representation of number. The argument must be
@@ -4466,10 +5228,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@NumberstringM{#1}{\@fc@numstr}}\@fc@numstr}}
+Available options are m, f or n}}%
+\protect\@NumberstringM{#1}{\@fc@numstr}}}\@fc@numstr}}
% \end{macrocode}
% Store upper case textual representation of number. The first
% argument is identifying name, the second argument is a counter.
@@ -4490,10 +5254,12 @@ Available options are m or f}}%
\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}}%
+\protect\@numberstringM{#2}{\@fc@numstr}}}%
\expandafter\edef\csname @fcs@#1\endcsname{%
\noexpand\MakeUppercase{\@fc@numstr}}}
% \end{macrocode}
@@ -4514,10 +5280,12 @@ Available options are m or f}}%
\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 or f}}%
-\protect\@numberstringM{#1}{\@fc@numstr}}%
+Available options are m, f or n}}%
+\protect\@numberstringM{#1}{\@fc@numstr}}}%
\MakeUppercase{\@fc@numstr}}}
% \end{macrocode}
% Number representations in other bases. Binary:
@@ -4577,84 +5345,134 @@ Available options are m or f}}%
%\subsubsection{Multilinguage Definitions}
% If multilingual support is provided, make \verb"\@numberstring"
% etc use the correct language (if defined).
-% Otherwise use English definitions.
+% Otherwise use English definitions. "\@setdef@ultfmtcount"
+% sets the macros to use English.
% \begin{macrocode}
\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}
-
-\@ifpackageloaded{babel}{
-\ifthenelse{\equal{\languagename}{nohyphenation}\or\equal{languagename}{english}}{\@setdef@ultfmtcount}{
+\let\@ordinalF=\@ordinalM
+\let\@ordinalN=\@ordinalM
+}
+% \end{macrocode}
+% Define a command to set macros to use "languagename":
+% \begin{macrocode}
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-
+\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}}
-}}{%
-\@setdef@ultfmtcount}
+\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}}
+}
+% \end{macrocode}
+% Check to see if babel or ngerman packages have been loaded.
+% \begin{macrocode}
+\@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}}
% \end{macrocode}
% Backwards compatibility:
% \begin{macrocode}
@@ -4669,2601 +5487,5 @@ The fmtcount package currently does not support language
%</fmtcount.sty>
% \end{macrocode}
%\fi
-%\iffalse
-% \begin{macrocode}
-%<*fmtcount.perl>
-% \end{macrocode}
-%\fi
-% \begin{macrocode}
-# File : fmtcount.perl
-# Author : Nicola Talbot
-# Date : 21 April 2007
-# Version : 1.04
-# Description : LaTeX2HTML implementation of fmtcount package
-
-package main;
-
-sub do_fmtcount_raise{
- local($tmp)="";
-
- $tmp .= 'sub do_cmd_fmtord{';
- $tmp .= 'local($_) = @_;';
- $tmp .= 'local($num) = &missing_braces unless ((s/$next_pair_pr_rx//o)&&($num=$2));';
- $tmp .= 'join("", "<SUP>",$num,"</SUP>",$_);';
- $tmp .='}';
-
- eval($tmp);
-}
-
-sub do_fmtcount_level{
- local($tmp)="";
-
- $tmp .= 'sub do_cmd_fmtord{';
- $tmp .= 'local($_) = @_;';
- $tmp .= 'local($num) = &missing_braces unless ((s/$next_pair_pr_rx//o)&&($num=$2));';
- $tmp .= 'join("", $num,$_);';
- $tmp .='}';
-
- eval($tmp);
-}
-
-if (not defined &do_cmd_fmtord)
-{
- &do_fmtcount_raise(@_);
-}
-
-$frenchdialect = 'france';
-$ordinalabbrv = 0;
-
-sub get_ordinal_suffix_english{
- local($num,$gender) = @_;
- local($suffix);
-
- if ((($num % 10) == 1) && ($num%100 != 11))
- {
- $suffix = 'st';
- }
- elsif ((($num % 10) == 2) && ($num%100 != 12))
- {
- $suffix = 'nd';
- }
- elsif ((($num % 10) == 3) && ($num%100 != 13))
- {
- $suffix = 'rd';
- }
- else
- {
- $suffix = 'th';
- }
-
- $suffix;
-}
-
-sub get_ordinal_suffix_french{
- local($num,$gender) = @_;
- local($_);
-
- if ($ordinalabbrv > 0)
- {
- $_ = 'e';
- }
- else
- {
- if ($num == 1)
- {
- $_ = ($gender eq 'f' ? 'ere' : 'er');
- }
- else
- {
- $_ = 'eme';
- }
- }
-}
-
-sub get_ordinal_suffix_spanish{
- local($num,$gender) = @_;
-
- ($gender eq 'f' ? 'a' : 'o');
-}
-
-sub get_ordinal_suffix_portuges{
- local($num,$gender) = @_;
-
- ($gender eq 'f' ? 'a' : 'o');
-}
-
-sub get_ordinal_suffix{
- local($num,$gender) = @_;
- local($suffix,$suffixsub);
-
- $suffixsub = "get_ordinal_suffix_$default_language";
-
- if (defined ($suffixsub))
- {
- $suffix = &$suffixsub($num,$gender);
- }
- else
- {
- $suffix = &get_ordinal_suffix_english($num,$gender);
- }
-
- $suffix;
-}
-
-sub getordinal{
- local($num,$gender) = @_;
- local($suffix) = &get_ordinal_suffix($num,$gender);
-
- if ($suffix eq '')
- {
- $num;
- }
- else
- {
- local($br_id) = ++$global{'max_id'};
- $num . "\\fmtord${OP}$br_id${CP}$suffix${OP}$br_id${CP}";
- }
-}
-
-sub do_cmd_ordinalnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
- local($gender)='m';
- local($suffix)='';
-
- if ($_[0]=~s/\[([mf])\]//)
- {
- $gender = $1;
- }
-
- $suffix = &get_ordinal_suffix($num,$gender);
-
- local($br_id) = ++$global{'max_id'};
- join('', $num, "\\fmtord${OP}$br_id${CP}$suffix${OP}$br_id${CP}", $_[0]);
-}
-
-sub do_cmd_FCordinal{
- &do_cmd_ordinal;
-}
-
-sub do_cmd_ordinal{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $str eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{ORDINAL{', $ctr, '}}', $_[0]);
- }
- else
- {
- join('', &getordinal($val, $gender), $_[0]);
- }
-}
-
-sub do_cmd_storeordinal{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{ORDINAL{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = &getordinal($val, $gender);
- }
-
- $_;
-}
-
-sub do_cmd_storeordinalnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = &getordinal($val, $gender);
-
- $_;
-}
-
-@unitthstring = ('zeroth',
- 'first',
- 'second',
- 'third',
- 'fourth',
- 'fifth',
- 'sixth',
- 'seventh',
- 'eighth',
- 'ninth');
-
-@tenthstring = ('',
- 'tenth',
- 'twentieth',
- 'thirtieth',
- 'fortieth',
- 'fiftieth',
- 'sixtieth',
- 'seventieth',
- 'eightieth',
- 'ninetieth');
-
-@teenthstring = ('tenth',
- 'eleventh',
- 'twelfth',
- 'thirteenth',
- 'fourteenth',
- 'fifteenth',
- 'sixteenth',
- 'seventeenth',
- 'eighteenth',
- 'nineteenth');
-
-@unitstring = ('zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine');
-
-@teenstring = ('ten',
- 'eleven',
- 'twelve',
- 'thirteen',
- 'fourteen',
- 'fifteen',
- 'sixteen',
- 'seventeen',
- 'eighteen',
- 'nineteen');
-@tenstring = ('',
- 'ten',
- 'twenty',
- 'thirty',
- 'forty',
- 'fifty',
- 'sixty',
- 'seventy',
- 'eighty',
- 'ninety');
-
-$hundredname = "hundred";
-$hundredthname = "hundredth";
-$thousandname = "thousand";
-$thousandthname = "thousandth";
-
-sub get_numberstringenglish{
- local($num) = @_;
- local($name)="";
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- local($thousands) = &get_numberstringenglish($num/1000);
- $name .= $thousands . " $thousandname";
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = &get_numberstringenglish($num/100);
- $name .= $hundreds . " $hundredname";
- $num = $num%100;
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " and "; }
-
- if ($num >= 20)
- {
- $name .= $tenstring[$num/10];
-
- if ($num%10 > 0) { $name .= '-'; }
- }
-
- if (($num >= 10) && ($num < 20))
- {
- $name .= $teenstring[$num%10];
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $name .= $unitstring[$num%10];
- }
- }
-
- $name;
-}
-
-@unitthstringfrench = ('zeroi\`eme',
- 'uni\`eme',
- 'deuxi\`eme',
- 'troisi\`eme',
- 'quatri\`eme',
- 'cinqui\`eme',
- 'sixi\`eme',
- 'septi\`eme',
- 'huiti\`eme',
- 'neuvi\`eme');
-
-@tenthstringfrench = ('',
- 'dixi\`eme',
- 'vingti\`eme',
- 'trentri\`eme',
- 'quaranti\`eme',
- 'cinquanti\`eme',
- 'soixanti\`eme',
- 'septenti\`eme',
- 'huitanti\`eme',
- 'nonenti\`eme');
-
-@teenthstringfrench = ('dixi\`eme',
- 'onzi\`eme',
- 'douzi\`eme',
- 'treizi\`eme',
- 'quatorzi\`eme',
- 'quinzi\`eme',
- 'seizi\`eme',
- 'dix-septi\`eme',
- 'dix-huiti\`eme',
- 'dix-neuvi\`eme');
-
-@unitstringfrench = ('zero',
- 'un',
- 'deux',
- 'trois',
- 'quatre',
- 'cinq',
- 'six',
- 'sept',
- 'huit',
- 'neuf');
-
-@teenstringfrench = ('dix',
- 'onze',
- 'douze',
- 'treize',
- 'quatorze',
- 'quinze',
- 'seize',
- 'dix-sept',
- 'dix-huit',
- 'dix-neuf');
-
-@tenstringfrench = ('',
- 'dix',
- 'vingt',
- 'trente',
- 'quarante',
- 'cinquante',
- 'soixante',
- 'septente',
- 'huitante',
- 'nonente');
-
-$hundrednamefrench = "cent";
-$hundredthnamefrench = "centi\\`eme";
-$thousandnamefrench = "mille";
-$thousandthnamefrench = "mili\\`eme";
-
-@unitthstringspanish = ('cero',
- 'primero',
- 'segundo',
- 'tercero',
- 'cuarto',
- 'quinto',
- 'sexto',
- 's\\\'eptimo',
- 'octavo',
- 'noveno');
-
-@tenthstringspanish = ('',
- 'd\\\'ecimo',
- 'vig\\\'esimo',
- 'trig\\\'esimo',
- 'cuadrag\\\'esimo',
- 'quincuag\\\'esimo',
- 'sexag\\\'esimo',
- 'septuag\\\'esimo',
- 'octog\\\'esimo',
- 'nonag\\\'esimo');
-
-@teenthstringspanish = ('d\\\'ecimo',
- 'und\\\'ecimo',
- 'duod\\\'ecimo',
- 'decimotercero',
- 'decimocuarto',
- 'decimoquinto',
- 'decimosexto',
- 'decimos\\\'eptimo',
- 'decimoctavo',
- 'decimonoveno');
-
-@hundredthstringspanish = ('',
- 'cent\\\'esimo',
- 'ducent\\\'esimo',
- 'tricent\\\'esimo',
- 'cuadringent\\\'esimo',
- 'quingent\\\'esimo',
- 'sexcent\\\'esimo',
- 'septing\\\'esimo',
- 'octingent\\\'esimo',
- 'noningent\\\'esimo');
-
-@unitstringspanish = ('cero',
- 'uno',
- 'dos',
- 'tres',
- 'cuatro',
- 'cinco',
- 'seis',
- 'siete',
- 'ocho',
- 'nueve');
-
-@teenstringspanish = ('diez',
- 'once',
- 'doce',
- 'trece',
- 'catorce',
- 'quince',
- 'diecis\\\'eis',
- 'diecisiete',
- 'dieciocho',
- 'diecinueve');
-
-@twentystringspanish = ('viente',
- 'vientiuno',
- 'vientid\\\'os',
- 'vientitr\\\'es',
- 'vienticuatro',
- 'vienticinco',
- 'vientis\\\'eis',
- 'vientisiete',
- 'vientiocho',
- 'vientinueve');
-
-@tenstringspanish = ('',
- 'diez',
- 'viente',
- 'treinta',
- 'cuarenta',
- 'cincuenta',
- 'sesenta',
- 'setenta',
- 'ochenta',
- 'noventa');
-
-@hundredstringspanish = ('',
- 'ciento',
- 'doscientos',
- 'trescientos',
- 'cuatrocientos',
- 'quinientos',
- 'seiscientos',
- 'setecientos',
- 'ochocientos',
- 'novecientos');
-
-$hundrednamespanish = "cien";
-$hundredthnamespanish = "centi\\`eme";
-$thousandnamespanish = "mil";
-$thousandthnamespanish = "mil\\'esimo";
-
-@unitthstringportuges = ('zero',
- 'primeiro',
- 'segundo',
- 'terceiro',
- 'quatro',
- 'quinto',
- 'sexto',
- 's\\\'etimo',
- 'oitavo',
- 'nono');
-
-@tenthstringportuges = ('',
- 'd\\\'ecimo',
- 'vig\\\'esimo',
- 'trig\\\'esimo',
- 'quadrag\\\'esimo',
- 'q\"uinquag\\\'esimo',
- 'sexag\\\'esimo',
- 'setuag\\\'esimo',
- 'octog\\\'esimo',
- 'nonag\\\'esimo');
-
-@hundredthstringportuges = ('',
- 'cent\\\'esimo',
- 'ducent\\\'esimo',
- 'trecent\\\'esimo',
- 'quadringent\\\'esimo',
- 'q\"uingent\\\'esimo',
- 'seiscent\\\'esimo',
- 'setingent\\\'esimo',
- 'octingent\\\'esimo',
- 'nongent\\\'esimo');
-
-@unitstringportuges = ('zero',
- 'um',
- 'dois',
- 'tr\^es',
- 'quatro',
- 'cinco',
- 'seis',
- 'sete',
- 'oito',
- 'nove');
-
-@teenstringportuges = ('dez',
- 'onze',
- 'doze',
- 'treze',
- 'quatorze',
- 'quinze',
- 'dezesseis',
- 'dezessete',
- 'dezoito',
- 'dezenove');
-
-@tenstringportuges = ('',
- 'dez',
- 'vinte',
- 'trinta',
- 'quaranta',
- 'cinq\"uenta',
- 'sessenta',
- 'setenta',
- 'oitenta',
- 'noventa');
-
-@hundredstringportuges = ('',
- 'cento',
- 'duzentos',
- 'trezentos',
- 'quatrocentos',
- 'quinhentos',
- 'seiscentos',
- 'setecentos',
- 'oitocentos',
- 'novecentos');
-
-$hundrednameportuges = "cem";
-$thousandnameportuges = "mil";
-$thousandthnameportuges = "mil\\'esimo";
-
-sub get_numberstringfrench{
- local($num,$gender) = @_;
- local($name)="";
-
- if ($gender eq 'f')
- {
- $unitstringfrench[1] = 'une';
- }
- else
- {
- $unitstringfrench[1] = 'un';
- }
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- local($thousands) = '';
-
- if ($num >= 2000)
- {
- $thousands = &get_numberstringfrench($num/1000,$gender).' ';
- }
-
- $name .= $thousands . $thousandnamefrench;
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = '';
-
- if ($num >= 200)
- {
- $hundreds = &get_numberstringfrench($num/100,$gender).' ';
- }
-
- $name .= $hundreds . $hundrednamefrench;
- $num = $num%100;
-
- if (($_[0]%100 == 0) && ($_[0]/100 > 1))
- {
- $name .= 's';
- }
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " "; }
-
- if ($num >= 20)
- {
- if ($frenchdialect eq 'france' and $num >= 70)
- {
- if ($num < 80)
- {
- $name .= $tenstringfrench[6];
-
- if ($num%10 == 1)
- {
- $name .= ' et ';
- }
- else
- {
- $name .= '-';
- }
-
- $num = 10+($num%10);
- }
- else
- {
- $name .= 'quatre-vingt' . ($num==80?'s':'-');
-
- if ($num >= 90)
- {
- $num = 10+($num%10);
- }
- }
- }
- elsif ($frenchdialect eq 'belgian'
- && ($num >= 80) && ($num < 90))
- {
- $name .= 'quatre-vingt' . ($num==80?'s':'-');
- }
- else
- {
- $name .= $tenstringfrench[$num/10];
-
- if ($num%10 == 1) { $name .= ' et ';}
- elsif ($num%10 > 0) { $name .= '-'; }
- }
- }
-
- if (($num >= 10) && ($num < 20))
- {
- $name .= $teenstringfrench[$num%10];
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $name .= $unitstringfrench[$num%10];
- }
- }
-
- $name;
-}
-
-sub get_numberstringspanish{
- local($num,$gender) = @_;
- local($name)="";
-
- if ($gender eq 'f')
- {
- $unitstringspanish[1] = 'una';
- }
- else
- {
- $unitstringspanish[1] = 'uno';
- }
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- local($thousands) = '';
-
- if ($num >= 2000)
- {
- $thousands = &get_numberstringspanish($num/1000,$gender).' ';
- }
-
- $name .= $thousands . $thousandnamespanish;
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = '';
-
- if ($num > 100)
- {
- $hundreds = $hundredstringspanish[$num/100];
- }
- else
- {
- $hundreds = 'cien';
- }
-
- $name .= $hundreds;
- $num = $num%100;
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " y "; }
-
-
- if ($num >= 30)
- {
- $name .= $tenstringspanish[$num/10];
-
- if ($num%10 > 0) { $name .= ' y '; }
- }
-
- if (($num >=20) && ($num < 30))
- {
- $name .= $twentystringspanish[$num%10];
- }
- elsif (($num >= 10) && ($num < 20))
- {
- $name .= $teenstringspanish[$num%10];
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $name .= $unitstringspanish[$num%10];
- }
- }
-
- $name;
-}
-
-sub get_numberstringportuges{
- local($num,$gender) = @_;
- local($name)="";
-
- if ($gender eq 'f')
- {
- $unitstringportuges[0] = 'zera';
- $unitstringportuges[1] = 'uma';
- $unitstringportuges[2] = 'duas';
- }
- else
- {
- $unitstringportuges[0] = 'zero';
- $unitstringportuges[1] = 'um';
- $unitstringportuges[2] = 'dois';
- }
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- local($thousands) = '';
-
- if ($num >= 2000)
- {
- $thousands = &get_numberstringportuges($num/1000,$gender).' ';
- }
-
- $name .= $thousands . $thousandnameportuges;
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = '';
-
- if ($num > 100)
- {
- $hundreds = $hundredstringportuges[$num/100];
-
- if ($gender eq 'f' and $num >= 200)
- {
- $hundreds =~s/o(s?)$/a\1/;
- }
- }
- else
- {
- $hundreds = $hundrednameportuges;
- }
-
- $name .= $hundreds;
- $num = $num%100;
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " e "; }
-
- if ($num >= 20)
- {
- $name .= $tenstringportuges[$num/10];
-
- if ($num%10 == 1) { $name .= ' e ';}
- elsif ($num%10 > 0) { $name .= ' '; }
- }
-
- if (($num >= 10) && ($num < 20))
- {
- $name .= $teenstringportuges[$num%10];
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $name .= $unitstringportuges[$num%10];
- }
- }
-
- $name;
-}
-
-sub get_numberstring{
- local($val,$gender) = @_;
-
- if ($default_language eq 'french')
- {
- &get_numberstringfrench($val,$gender);
- }
- elsif ($default_language eq 'spanish')
- {
- &get_numberstringspanish($val,$gender);
- }
- elsif ($default_language eq 'portuges')
- {
- &get_numberstringportuges($val,$gender);
- }
- else
- {
- &get_numberstringenglish($val);
- }
-}
-
-sub do_cmd_numberstringnum{
- local($_) = @_;
- local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
-
- if ($_[0] =~ s/\[(m|f)\]//)
- {
- $gender = $1;
- }
- else
- {
- $gender = 'm';
- }
-
- join('', &get_numberstring($num,$gender), $_[0]);
-}
-
-sub do_cmd_numberstring{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{NUMBERSTRING{', $ctr, '}}', $_[0]);
- }
- else
- {
- join('', &get_numberstring($val, $gender), $_[0]);
- }
-}
-
-sub do_cmd_storenumberstring{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{NUMBERSTRING{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = join('', &get_numberstring($val, $gender));
- }
-
- $_;
-}
-
-sub do_cmd_storenumberstringnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = join('', &get_numberstring($val, $gender));
-
- $_;
-}
-
-sub get_Numberstring{
- local($val,$gender) = @_;
- local($string) = &get_numberstring($val,$gender);
- $string =~ s/([a-z])([^\s\-]+)/\u\1\2/g;
-
- if ($default_language eq 'french')
- {
- $string =~ s/ Et / et /g;
- }
- elsif ($default_language eq 'spanish')
- {
- $string =~ s/ Y / y /g;
- }
- elsif ($default_language eq 'portuges')
- {
- $string =~ s/ E / e /g;
- }
- else
- {
- $string =~ s/ And / and /g;
- }
-
- $string;
-}
-
-sub do_cmd_Numberstringnum{
- local($_) = @_;
- local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
-
- if ($_[0] =~ s/\[(m|f)\]//)
- {
- $gender = $1;
- }
- else
- {
- $gender = 'm';
- }
-
- join('', &get_Numberstring($num,$gender), $_[0]);
-}
-
-sub do_cmd_Numberstring{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{NNUMBERSTRING{', $ctr, '}}', $_[0]);
- }
- else
- {
- join('', &get_Numberstring($val, $gender), $_[0]);
- }
-}
-
-sub do_cmd_storeNumberstring{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{NNUMBERSTRING{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = join('', &get_Numberstring($val, $gender));
- }
-
- $_;
-}
-
-sub do_cmd_storeNumberstringnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = join('', &get_Numberstring($val, $gender));
-
- $_;
-}
-
-sub do_cmd_NUMBERstringnum{
- local($_) = @_;
- local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
-
- if ($_[0] =~ s/\[(m|f)\]//)
- {
- $gender = $1;
- }
- else
- {
- $gender = 'm';
- }
-
- join('', uc(&get_numberstring($num,$gender)), $_[0]);
-}
-
-sub do_cmd_NUMBERstring{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{CAPNUMBERSTRING{', $ctr, '}}', $_);
- }
- else
- {
- join('', uc(&get_numberstring($val, $gender)), $_);
- }
-}
-
-sub do_cmd_storeNUMBERstring{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{CAPNUMBERSTRING{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = uc(&get_numberstring($val, $gender));
- }
-
- $_;
-}
-
-sub do_cmd_storeNUMBERstringnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = uc(&get_numberstring($val, $gender));
-
- $_;
-}
-
-sub get_ordinalstringenglish{
- local($num) = @_;
- local($name)="";
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- local($thousands) = &get_numberstring($num/1000);
- $name .= $thousands;
-
- if ($num%1000 > 0)
- {
- $name .= " $thousandname";
- }
- else
- {
- $name .= " $thousandthname";
- }
-
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = &get_numberstring($num/100);
- $name .= $hundreds;
-
- if ($num%100 > 0)
- {
- $name .= " $hundredname";
- }
- else
- {
- $name .= " $hundredthname";
- }
-
- $num = $num%100;
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " and "; }
-
- if ($num >= 20)
- {
- if ($num%10 > 0)
- {
- $name .= $tenstring[$num/10] . '-';
- }
- else
- {
- $name .= $tenthstring[$num/10];
- }
- }
-
- if (($num >= 10) && ($num < 20))
- {
- $name .= $teenthstring[$num%10];
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $name .= $unitthstring[$num%10];
- }
- }
-
- $name;
-}
-
-sub get_ordinalstringfrench{
- local($num,$gender) = @_;
- local($name)="";
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- local($thousands) = '';
-
- if ($num >= 2000)
- {
- $thousands = &get_numberstringfrench($num/1000,$gender).' ';
- }
-
- $num = $num%1000;
-
- if ($num > 0)
- {
- $name .= $thousands . $thousandnamefrench;
- }
- else
- {
- $name .= $thousands . $thousandthnamefrench;
- }
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = '';
-
- if ($num >= 200)
- {
- $hundreds = &get_numberstringfrench($num/100,$gender).' ';
- }
-
- $num = $num%100;
-
- if ($num > 0)
- {
- $name .= $hundreds . $hundrednamefrench;
- }
- else
- {
- $name .= $hundreds . $hundredthnamefrench;
- }
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " "; }
-
- if ($num >= 20)
- {
- if ($frenchdialect eq 'france' and $num >= 70)
- {
- if ($num < 80)
- {
- if ($num%10 > 0)
- {
- $name .= $tenstringfrench[6];
- }
- else
- {
- $name .= $tenthstringfrench[6];
- }
-
- if ($num%10 == 1)
- {
- $name .= ' et ';
- }
- else
- {
- $name .= '-';
- }
-
- $num = 10+($num%10);
- }
- else
- {
- $name .= 'quatre-vingt' . ($num==80?'i\`eme':'-');
-
- if ($num >= 90)
- {
- $num = 10+($num%10);
- }
- }
- }
- elsif ($frenchdialect eq 'belgian' and $num >= 80)
- {
- $name .= 'quatre-vingt' . ($num==80?'i\`eme':'-');
-
- if ($num >= 90)
- {
- $num = 10+($num%10);
- }
- }
- else
- {
- if ($num%10 > 0)
- {
- $name .= $tenstringfrench[$num/10];
- }
- else
- {
- $name .= $tenthstringfrench[$num/10];
- }
-
- if ($num%10 == 1) { $name .= ' et ';}
- elsif ($num%10 > 0) { $name .= '-'; }
- }
- }
-
- if (($num >= 10) && ($num < 20))
- {
- $name .= $teenthstringfrench[$num%10];
- }
- elsif ($_[0] == 1)
- {
- $name = 'premi\`ere';
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $name .= $unitthstringfrench[$num%10];
- }
- }
-
- $name;
-}
-
-sub get_ordinalstringspanish{
- local($num,$gender) = @_;
- local($name)="";
- local($str);
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- if ($num >= 2000)
- {
- local($thousands) = &get_ordinalstringspanish($num/1000);
-
- if ($gender eq 'f')
- {
- $thousands =~s/o(s?)$/a\1/;
- }
-
- $name .= $thousands. " ";
- }
- else
- {
- $name = "";
- }
-
- $name .= "$thousandthnamespanish";
-
- if ($gender eq 'f')
- {
- $name =~s/o$/a/;
- }
-
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = $hundredthstringspanish[$num/100];
-
- if ($gender eq 'f')
- {
- $hundreds =~s/o$/a/;
- }
-
- $name .= $hundreds;
-
- $num = $num%100;
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= " "; }
-
- local($lastbit)="";
-
- if ($num >= 20)
- {
- $lastbit = $tenthstringspanish[$num/10];
-
- if ($num%10 > 0)
- {
- $lastbit .= ' ';
- }
-
- if ($gender eq 'f')
- {
- $lastbit =~s/o([ s]*)$/a\1/;
- }
-
- $name .= $lastbit;
-
- $lastbit = "";
- }
-
- if (($num >= 10) && ($num < 20))
- {
- $lastbit = $teenthstringspanish[$num%10];
- }
- elsif (($num%10 > 0) || ($_[0] == 0))
- {
- $lastbit = $unitthstringspanish[$num%10];
- }
-
- if ($gender eq 'f')
- {
- $lastbit =~s/o([ s]*)$/a\1/;
- }
-
- $name .= $lastbit;
- }
-
- $name;
-}
-
-sub get_ordinalstringportuges{
- local($num,$gender) = @_;
- local($name)="";
- local($str);
-
- unless (($num >= 1000000) || ($num < 0))
- {
- if ($num >= 1000)
- {
- if ($num >= 2000)
- {
- local($thousands) = &get_ordinalstringportuges($num/1000);
-
- if ($gender eq 'f')
- {
- $thousands =~s/o(s?)$/a\1/;
- }
-
- $name .= $thousands. " ";
- }
- else
- {
- $name = "";
- }
-
- $name .= "$thousandthnameportuges";
-
- if ($gender eq 'f')
- {
- $name =~s/o$/a/;
- }
-
- $num = $num%1000;
- }
-
- if ($num >= 100)
- {
- if ($_[0] >= 1000) { $name .= " "; }
-
- local($hundreds) = $hundredthstringportuges[$num/100];
-
- if ($gender eq 'f')
- {
- $hundreds =~s/o$/a/;
- }
-
- $name .= $hundreds;
-
- $num = $num%100;
- }
-
- if (($_[0] > 100) && ($_[0]%100 > 0)) { $name .= "-"; }
-
- local($lastbit)="";
-
- if ($num >= 10)
- {
- $lastbit = $tenthstringportuges[$num/10];
-
- if ($num%10 > 0)
- {
- $lastbit .= '-';
- }
-
- if ($gender eq 'f')
- {
- $lastbit =~s/o([ s]*)$/a\1/;
- }
-
- $name .= $lastbit;
-
- $lastbit = "";
- }
-
- if (($num%10 > 0) || ($_[0] == 0))
- {
- $lastbit = $unitthstringportuges[$num%10];
- }
-
- if ($gender eq 'f')
- {
- $lastbit =~s/o([ s]*)$/a\1/;
- }
-
- $name .= $lastbit;
- }
-
- $name;
-}
-
-sub get_ordinalstring{
- local($val,$gender) = @_;
-
- if ($default_language eq 'french')
- {
- &get_ordinalstringfrench($val,$gender);
- }
- elsif ($default_language eq 'spanish')
- {
- &get_ordinalstringspanish($val,$gender);
- }
- elsif ($default_language eq 'portuges')
- {
- &get_ordinalstringportuges($val,$gender);
- }
- else
- {
- &get_ordinalstringenglish($val);
- }
-}
-
-sub do_cmd_ordinalstringnum{
- local($_) = @_;
- local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
-
- if ($_[0] =~ s/\[(m|f)\]//)
- {
- $gender = $1;
- }
- else
- {
- $gender = 'm';
- }
-
- join('', &get_ordinalstring($num,$gender), $_[0]);
-}
-
-sub do_cmd_ordinalstring{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{ORDINALSTRING{', $ctr, '}}', $_);
- }
- else
- {
- join('', &get_ordinalstring($val, $gender), $_);
- }
-}
-
- %fmtcntvar = ();
-
-sub do_cmd_FMCuse{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $fmtcntvar{$key}.$_;
-}
-
-sub do_cmd_storeordinalstring{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{ORDINALSTRING{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = join('', &get_ordinalstring($val, $gender));
- }
-
- $_;
-}
-
-sub do_cmd_storeordinalstringnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = join('', &get_ordinalstring($val, $gender));
-
- $_;
-}
-
-sub get_Ordinalstring{
- local($val,$gender) = @_;
- local($string) = &get_ordinalstring($val,$gender);
- $string =~ s/\b([a-z])([^\s\-]+)/\u\1\2/g;
-
- if ($default_language eq 'french')
- {
- $string =~ s/ Et / et /g;
- }
- else
- {
- $string =~ s/ And / and /g;
- }
-
- $string;
-}
-
-sub do_cmd_Ordinalstringnum{
- local($_) = @_;
- local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
-
- if ($_[0] =~ s/\[(m|f)\]//)
- {
- $gender = $1;
- }
- else
- {
- $gender = 'm';
- }
-
- join('', &get_Ordinalstring($num,$gender), $_[0]);
-}
-
-sub do_cmd_Ordinalstring{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{OORDINALSTRING{', $ctr, '}}', $_[0]);
- }
- else
- {
- join('', &get_Ordinalstring($val, $gender), $_[0]);
- }
-}
-
-sub do_cmd_storeOrdinalstring{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{OORDINALSTRING{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = join('', &get_Ordinalstring($val, $gender));
- }
-
- $_;
-}
-
-sub do_cmd_storeOrdinalstringnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = join('', &get_Ordinalstring($val, $gender));
-
- $_;
-}
-
-sub do_cmd_ORDINALstringnum{
- local($_) = @_;
- local($num,$gender);
- $num = &missing_braces
- unless (($_[0]=~s/$next_pair_pr_rx//o)&&($num=$2));
-
- if ($_[0] =~ s/\[(m|f)\]//)
- {
- $gender = $1;
- }
- else
- {
- $gender = 'm';
- }
-
- join('', uc(&get_ordinalstring($num,$gender)), $_[0]);
-}
-
-sub do_cmd_ORDINALstring{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
- local($gender)='m';
-
- $_[0] =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_[0]=~s/\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- join('', '{CAPORDINALSTRING{', $ctr, '}}', $_);
- }
- else
- {
- join('', uc(&get_ordinalstring($val, $gender)), $_);
- }
-}
-
-sub do_cmd_storeORDINALstring{
- local($_) = @_;
- local($key);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- local($ctr, $val, $id, $_) = &read_counter_value($_);
- local($gender)='m';
-
- $_ =~ s/${OP}$id${CP}$ctr${OP}$id${CP}//;
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- if ($ctr eq 'DAY' or $ctr eq 'MONTH' or $ctr eq 'YEAR')
- {
- # this is a cludge to make it work with newdateformat
- $fmtcntvar{$key} = join('', '{CAPORDINALSTRING{', $ctr, '}}');
- }
- else
- {
- $fmtcntvar{$key} = uc(&get_ordinalstring($val, $gender));
- }
-
- $_;
-}
-
-sub do_cmd_storeORDINALstringnum{
- local($_) = @_;
- local($key, $val);
-
- $key = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($key=$2));
-
- $val = &missing_braces
- unless ((s/$next_pair_pr_rx//o)&&($val=$2));
-
- local($gender)='m';
-
- if ($_ =~s/\s*\[(.)\]//)
- {
- $gender = $1;
- }
-
- $fmtcntvar{$key} = uc(&get_ordinalstring($val, $gender));
-
- $_;
-}
-
-sub do_cmd_fmtcountsetoptions{
- local($_) = @_;
- local($options) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($options=$2));
-
- if ($options =~ m/french=?(\w*)(,|$)/)
- {
- if ($1 eq 'france' or $1 eq 'swiss' or $1 eq 'belgian')
- {
- $frenchdialect = $1;
-
- print "Using French dialect: $1" if ($VERBOSITY > 0) ;
- }
- elsif ($1 eq '')
- {
- $frenchdialect = 'france';
-
- print "Using French dialect: france" if ($VERBOSITY > 0);
- }
- else
- {
- &write_warnings("unknown french dialect '$1'");
- }
- }
-
- if ($options =~ m/abbrv=?(\w*)(,|$)/)
- {
- if ($1 eq 'true' or $1 eq '')
- {
- $ordinalabbrv = 1;
-
- print "Setting abbrv=true" if ($VERBOSITY > 0);
- }
- elsif ($1 eq 'false')
- {
- $ordinalabbrv = 0;
-
- print "Setting abbrv=false" if ($VERBOSITY > 0);
- }
- else
- {
- &write_warnings("fmtcountsetoptions key abbrv: unknown value '$1'.");
- }
- }
-
- if ($options =~ m/fmtord=(\w*)(,|$)/)
- {
- if ($1 eq 'raise')
- {
- &do_fmtcount_raise();
-
- print "Using raised ordinals" if ($VERBOSITY > 0);
- }
- elsif ($1 eq 'level')
- {
- &do_fmtcount_level();
-
- print "Using level ordinals" if ($VERBOSITY > 0);
- }
- elsif ($1 eq 'user')
- {
- # do nothing
-
- print "Using user defined fmtord" if ($VERBOSITY > 0);
- }
- else
- {
- &write_warnings("unknown fmtcount option fmtord=$1");
- }
- }
-
- $_[0];
-}
-
-$padzeroes = 0;
-
-sub do_cmd_padzeroes{
- local($_) = @_;
- local($val,$pat) = &get_next_optional_argument;
-
- if ($val eq '')
- {
- $padzeroes = 17;
- }
- else
- {
- $padzeroes = $val;
- }
-
- $_;
-}
-
-sub get_binary{
- local($num) = @_;
- local($val) = "";
-
- for (my $i=17; $i>=0; $i--)
- {
- if (($i < $padzeroes) || ($num & (1 << $i)) || !($val eq ""))
- {
- $val .= ($num & (1 << $i) ? 1 : 0);
- }
- }
-
- $val;
-}
-
-sub do_cmd_binary{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_binary($val), $_);
-}
-
-sub do_cmd_binarynum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', &get_binary($num), $_);
-}
-
-sub get_decimal{
- local($num) = @_;
-
- sprintf "%0${padzeroes}d", $num;
-}
-
-sub do_cmd_decimal{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_decimal($val), $_);
-}
-
-sub do_cmd_decimalnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', &get_decimal($num), $_);
-}
-
-sub get_hexadecimal{
- local($num) = @_;
-
- sprintf "%0${padzeroes}lx", $num;
-}
-
-sub do_cmd_hexadecimal{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_hexadecimal($val), $_);
-}
-
-sub do_cmd_hexadecimalnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', &get_hexadecimal($num), $_);
-}
-
-sub get_Hexadecimal{
- local($num) = @_;
-
- sprintf "%0${padzeroes}lX", $num;
-}
-
-sub do_cmd_Hexadecimal{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_Hexadecimal($val), $_);
-}
-
-sub do_cmd_Hexadecimalnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', &get_Hexadecimal($num), $_);
-}
-
-sub get_octal{
- local($num) = @_;
-
- sprintf "%0${padzeroes}lo", $num;
-}
-
-sub do_cmd_octal{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_octal($val), $_);
-}
-
-sub do_cmd_octalnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', &get_octal($num), $_);
-}
-
-sub get_aaalph{
- local($num) = @_;
- local($rep) = int($num/26) + 1;
- local($c) = chr(ord('a')-1+$num%26);
-
- local($_) = $c x $rep;
-}
-
-sub do_cmd_aaalph{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_aaalph($val), $_);
-}
-
-sub get_AAAlph{
- local($num) = @_;
- local($rep) = int($num/26) + 1;
- local($c) = chr(ord('A')-1+$num%26);
-
- local($_) = $c x $rep;
-}
-
-sub do_cmd_AAAlph{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', &get_AAAlph($val), $_);
-}
-
-sub do_cmd_aaalphnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', (sprintf "%${padzeroes}s", &get_aaalph($num)), $_);
-}
-
-sub do_cmd_AAAlphnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', uc(sprintf "%${padzeroes}s", &get_aaalph($num)), $_);
-}
-
-sub get_abalph{
- local($num) = @_;
- local($str);
-
- if ($num == 0)
- {
- $str = '';
- }
- elsif ($num > 0 && $num <= 26)
- {
- $str = chr(ord('a')-1+$num);
- }
- else
- {
- $str = &get_abalph(int($num/26)) . chr(ord('a')-1+($num%26));
- }
-
- $str;
-}
-
-sub do_cmd_abalph{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', (sprintf "%${padzeroes}s", &get_abalph($val)), $_);
-}
-
-sub do_cmd_abalphnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', (sprintf "%${padzeroes}s", &get_abalph($num)), $_);
-}
-
-sub do_cmd_ABAlph{
- local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
-
- join('', uc(sprintf "%${padzeroes}s", &get_abalph($val)), $_);
-}
-
-sub do_cmd_ABAlphnum{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- join('', uc(sprintf "%${padzeroes}s", &get_abalph($num)), $_);
-}
-
-sub get_twodigit{
- local($num) = @_;
-
- sprintf "%02d", $num;
-}
-
-sub do_cmd_twodigit{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- # this is a cludge
- if ($num eq "THEDAY" or $num eq "THEYEAR" or $num eq "THEMONTH")
- {
- join('', 'TWODIGIT{', $num, '}', $_[0]);
- }
- else
- {
- join('', get_twodigit($num), $_[0]);
- }
-}
-
-# this was put here to help with the definition of \datelatin
-
-sub do_cmd_romannumeral{
- local($_) = @_;
- local($num) = &missing_braces unless ($_[0]=~(s/$next_pair_pr_rx//o)&&($num=$2));
-
- # this is a cludge
- if ($num eq "THEDAY" or $num eq "THEYEAR" or $num eq "THEMONTH")
- {
- join('', 'ROMANNUMERAL{', $num, '}', $_[0]);
- }
- else
- {
- join('', &froman($num), $_[0]);
- }
-}
-
-# load configuration file if it exists
-# Note: The configuration file should be loaded before
-# the package options are executed.
-
-# why doesn't this work? If I call this subroutine it
-# causes an infinite loop.
-
-sub load_fmtcount_cfg{
- local($file,$found);
-
- $file = &fulltexpath('fmtcount.cfg');
-
- $found = (-f $file);
-
- if (!$found)
- {
- foreach $texpath (split /$envkey/, $TEXINPUTS)
- {
- $file = "$texpath${dd}fmtcount.cfg";
-
- last if ($found = (-f $file));
- }
- }
-
- if ($found)
- {
- print "\nusing configuration file $file\n";
-
- &slurp_input($file);
- &pre_process;
- &substitute_meta_cmds if (%new_command || %new_environment);
- &wrap_shorthand_environments;
- $_ = &translate_commands(&translate_environments($_));
-
- print "\n processed size: ".length($_)."\n" if ($VERBOSITY>1)
- }
- else
- {
- print "\nNo configuation file fmtcount.cfg found\n" if ($VERBOSITY>1)
- }
-}
-
-1;
-% \end{macrocode}
-%\iffalse
-% \begin{macrocode}
-%</fmtcount.perl>
-% \end{macrocode}
-%\fi
-%\iffalse
-% \begin{macrocode}
-%<*fc-samp.tex>
-% \end{macrocode}
-%\fi
-% \begin{macrocode}
-\documentclass[a4paper]{article}
-
-\usepackage{fmtcount}
-\newcounter{N}
-
-\padzeroes[5]
-
-\newcommand{\printrow}[1]{%
-\newline
-\setcounter{N}{#1}
-\makebox[0.75in][r]{\decimal{N}\quad}
-\makebox[0.75in][r]{\hexadecimal{N}\quad}
-\makebox[0.75in][r]{\ordinal{N}\quad}
-\makebox[2in][l]{\numberstring{N}}
-}
-
-\renewcommand{\thesection}{\ordinal{section}}
-
-\begin{document}
-
-\section{Displaying the value of a counter}
-\label{ex}
-
-\begin{ttfamily}
-\noindent
-\makebox[0.75in][c]{decimal}
-\makebox[0.75in][c]{hexadecimal}
-\makebox[0.75in][c]{ordinal}
-numberstring
-\printrow{0}
-\printrow{1}
-\printrow{2}
-\printrow{3}
-\printrow{4}
-\printrow{5}
-\printrow{6}
-\printrow{7}
-\printrow{8}
-\printrow{9}
-\printrow{10}
-\printrow{11}
-\printrow{12}
-\printrow{13}
-\printrow{14}
-\printrow{15}
-\printrow{16}
-\printrow{17}
-\printrow{18}
-\printrow{19}
-\printrow{20}
-\printrow{21}
-\printrow{22}
-\printrow{23}
-\printrow{24}
-\printrow{25}
-\printrow{30}
-\printrow{40}
-\printrow{50}
-\printrow{60}
-\printrow{70}
-\printrow{71}
-\printrow{75}
-\printrow{80}
-\printrow{81}
-\printrow{85}
-\printrow{90}
-\printrow{91}
-\printrow{95}
-\printrow{100}
-\printrow{101}
-\printrow{110}
-\printrow{125}
-\printrow{150}
-\printrow{170}
-\printrow{180}
-\printrow{190}
-\printrow{200}
-\printrow{250}
-\printrow{300}
-\printrow{400}
-\printrow{500}
-\printrow{600}
-\printrow{700}
-\printrow{800}
-\printrow{900}
-\printrow{1000}
-\printrow{99999}
-\end{ttfamily}
-
-\section{Cross-Referencing}
-
-Referencing a label: \ref{ex}.
-
-Passing numbers explicitly: \ordinalnum{10},
-\Numberstringnum{10}, \NUMBERstringnum{10}, \Ordinalstringnum{10},
-\ORDINALstringnum{10}.
-
-\end{document}
-% \end{macrocode}
-%\iffalse
-% \begin{macrocode}
-%</fc-samp.tex>
-% \end{macrocode}
-%\fi
-%\iffalse
-% \begin{macrocode}
-%<*fc-lang.tex>
-% \end{macrocode}
-%\fi
-% \begin{macrocode}
- % This is an interactive script. Run it through \LaTeX
- % and enter appropriate responses.
-
-\documentclass[a4paper]{article}
-
-\usepackage[french,english,spanish,portuges]{babel}
-\usepackage{fmtcount}
-
-\newcounter{startval}
-\newcounter{endval}
-\newcounter{stepsize}
-\newcounter{N}
-\newcount\myctr
-\newcount\langid
-
-\begin{document}
-
-\section{Displaying the value of a counter}
-
-\typeout{This is an interactive script, testing the fmtcount package.}
-
-\langid=-1
-
-\loop
-\typeout{Which language?^^J}
-\typeout{[1] English}
-\typeout{[2] Portuguese}
-\typeout{[3] Spanish}
-\typeout{[4] French}
-\typeout{[5] French (Swiss)}
-\typeout{[6] French (Belgium)}
-
-\typein[\response]{}
-
-\ifthenelse{\equal{\response}{1}}{\langid=1}{
-\ifthenelse{\equal{\response}{2}}{\langid=2}{
-\ifthenelse{\equal{\response}{3}}{\langid=3}{
-\ifthenelse{\equal{\response}{4}}{\langid=4\fmtcountsetoptions{french}}{
-\ifthenelse{\equal{\response}{5}}{\langid=5\fmtcountsetoptions{french=swiss}}{
-\ifthenelse{\equal{\response}{6}}{\langid=6\fmtcountsetoptions{french=belgian}}
-{\langid=-1
-\typeout{Invalid response '\response', please select a number from 1 to 6}}}}}}}
-\ifnum\langid=-1
-\repeat
-
-\ifcase\langid
-\or \selectlanguage{english}
-Current language: English.
-\or \selectlanguage{portuges}
-Current language: Portuguese.
-\or \selectlanguage{spanish}
-Current language: Spanish.
-\or \selectlanguage{french}
-Current language: French.
-\or \selectlanguage{french}
-Current language: French (Swiss).
-\or \selectlanguage{french}
-Current language: French (Belgium).
-\fi
-
-\def\startval{-1}
-
-\loop
-\typein[\startval]{Start value? (Integer from 0 to 99000)
-[Default 1]}
-\ifthenelse{\equal{\startval}{}}{\def\startval{1}}{}
-\ifnum\startval<0\def\startval{-1}\fi
-\ifnum\startval>99999\def\startval{-1}\fi
-\ifnum\startval=-1
-\repeat
-
-\def\endval{-1}
-
-\loop
-\typein[\endval]{End value? (Integer from 0 to 99999)
-[Default 1000]}
-\ifthenelse{\equal{\endval}{}}{\def\endval{1000}}{}
-\ifnum\endval<0\def\endval{-1}\fi
-\ifnum\endval>99000\def\endval{-1}\fi
-\ifnum\endval=-1
-\repeat
-
-\def\stepsize{0}
-
-\loop
-\typein[\stepsize]{Step size? (Non zero integer)
-[Default 1]}
-\ifthenelse{\equal{\stepsize}{}}{\def\stepsize{1}}{}
-\ifnum\stepsize=0
-\repeat
-
-\typeout{From {\startval} to {\endval} step {\stepsize}}
-
-\ifnum\startval<\endval
-\ifnum\stepsize<0
-\PackageError{fc-lang}{Infinite loop not permitted!}{}
-\def\endval{\startval}
-\fi
-\fi
-
-\ifnum\startval>\endval
-\ifnum\stepsize>0
-\PackageError{fc-lang}{Infinite loop not permitted!}{}
-\def\endval{\startval}
-\fi
-\fi
-
-\myctr=-1
-\loop
-\typeout{Which format?^^J}
-\typeout{[1] ordinalstring}
-\typeout{[2] Ordinalstring}
-\typeout{[3] ORDINALstring}
-\typeout{[4] numberstring}
-\typeout{[5] Numberstring}
-\typeout{[6] NUMBERstring}
-
-\typein[\response]{Default: 1}
-
-\ifthenelse{\equal{\response}{}}{\def\response{1}}{}%default val
-\ifthenelse{\equal{\response}{1}}{\myctr=1}{
-\ifthenelse{\equal{\response}{2}}{\myctr=2}{
-\ifthenelse{\equal{\response}{3}}{\myctr=3}{
-\ifthenelse{\equal{\response}{4}}{\myctr=4}{
-\ifthenelse{\equal{\response}{5}}{\myctr=5}{
-\ifthenelse{\equal{\response}{6}}{\myctr=6}{\myctr=-1
-\typeout{Invalid response '\response', please select a number from 1 to 4}}}}}}}
-\ifnum\myctr=-1
-\repeat
-
-\ifcase\myctr
-\or\def\stringtype{ordinalstring}
-\or\def\stringtype{Ordinalstring}
-\or\def\stringtype{ORDINALstring}
-\or\def\stringtype{numberstring}
-\or\def\stringtype{Numberstring}
-\or\def\stringtype{NUMBERstring}
-\fi
-
-\ifnum\langid>3
-\myctr=-1
-\loop
-\typeout{Ordinal type?^^J}
-\typeout{[1] eme}
-\typeout{[2] e}
-\typein[\response]{Default: 1}
-\ifthenelse{\equal{\response}{}}{\def\response{1}}{}%default
-\ifthenelse{\equal{\response}{1}}{%
-\fmtcountsetoptions{abbrv=false}\myctr=1}{%
-\ifthenelse{\equal{\response}{2}}{%
-\fmtcountsetoptions{abbrv}\myctr=2}{%
-\myctr=-1}}
-\ifnum\myctr=-1
-\repeat
-\fi
-
-\myctr=-1
-\loop
-\typeout{Ordinal format?^^J}
-\typeout{[1] raised}
-\typeout{[2] level}
-\typein[\response]{Default: 1}
-\ifthenelse{\equal{\response}{1}\or\equal{\response}{}}{%
-\fmtcountsetoptions{fmtord=raise}\myctr=1}{%
-\ifthenelse{\equal{\response}{2}}{%
-\fmtcountsetoptions{fmtord=level}\myctr=2}{%
-\myctr=-1}}
-\ifnum\myctr=-1
-\repeat
-
-\ifnum\langid=1
-\myctr=1
-\else
-\loop
-\typein[\response]{Gender? (m or f) [Default: m]}
-\ifthenelse{\equal{\response}{m}\or\equal{\response}{}}{\myctr=1}{
-\ifthenelse{\equal{\response}{f}}{\myctr=2}{\myctr=-1
-\typeout{Invalid response '\response'}}}
-\ifnum\myctr=-1
-\repeat
-\fi
-
-\ifcase\myctr
-\or \def\gender{m}
-\or \def\gender{f}
-\fi
-
-\setcounter{startval}{\startval}
-\setcounter{endval}{\endval}
-\setcounter{stepsize}{\stepsize}
-
-\stepcounter{endval}
-\begin{ttfamily}
-\noindent
-\makebox[0.25in][c]{N}
-\makebox[0.5in][c]{ordinal}\quad
-\stringtype
-\par
-\myctr=\value{startval}
-\loop
-\noindent
-\setcounter{N}{\myctr}
-\makebox[0.25in][r]{\arabic{N}}
-\makebox[0.5in][r]{\ordinal{N}[\gender]}\quad
-\csname\stringtype\endcsname{N}[\gender].
-\par
-\advance\myctr by \value{stepsize}\relax
-\ifnum\myctr<\value{endval}
-\repeat
-
-\end{ttfamily}
-
-\end{document}
-% \end{macrocode}
-%\iffalse
-% \begin{macrocode}
-%</fc-lang.tex>
-% \end{macrocode}
-%\fi
%\Finale
\endinput
diff --git a/Master/texmf-dist/source/latex/fmtcount/fmtcount.ins b/Master/texmf-dist/doc/latex/fmtcount/source/fmtcount.ins
index 6138342bbe6..5342dd34fbd 100644
--- a/Master/texmf-dist/source/latex/fmtcount/fmtcount.ins
+++ b/Master/texmf-dist/doc/latex/fmtcount/source/fmtcount.ins
@@ -1,4 +1,4 @@
-% fmtcount.ins generated using makedtx version 0.91b 2007/4/21 19:25
+% fmtcount.ins generated using makedtx version 0.91b 2007/6/14 21:12
\input docstrip
\preamble
@@ -12,19 +12,22 @@ etc.
\askforoverwritefalse
-\generate{\file{fc-english.def}{\usepreamble\defaultpreamble
+\generate{\file{fc-german.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-german.def,package}}
+\file{fc-french.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-french.def,package}}
+\file{fc-english.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-english.def,package}}
-\file{fc-samp.tex}{\usepreamble\defaultpreamble
-\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-samp.tex,package}}
-\file{fmtcount.perl}{\nopreamble\nopostamble\from{fmtcount.dtx}{fmtcount.perl}}
+\file{fc-USenglish.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-USenglish.def,package}}
\file{fmtcount.sty}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fmtcount.sty,package}}
+\file{fc-UKenglish.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-UKenglish.def,package}}
\file{fc-portuges.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-portuges.def,package}}
-\file{fc-french.def}{\usepreamble\defaultpreamble
-\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-french.def,package}}
-\file{fc-lang.tex}{\usepreamble\defaultpreamble
-\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-lang.tex,package}}
+\file{fc-british.def}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-british.def,package}}
\file{fc-spanish.def}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-spanish.def,package}}
}
diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-english.def b/Master/texmf-dist/tex/latex/fmtcount/fc-english.def
deleted file mode 100644
index 2acb6582348..00000000000
--- a/Master/texmf-dist/tex/latex/fmtcount/fc-english.def
+++ /dev/null
@@ -1,461 +0,0 @@
-%%
-%% This is file `fc-english.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fc-english.def,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
-\ProvidesFile{fc-english}[2007/04/20]
-\newcommand*{\@ordinalMenglish}[2]{%
-\def\@fc@ord{}%
-\@orgargctr=#1\relax
-\@ordinalctr=#1%
-\@modulo{\@ordinalctr}{100}%
-\ifnum\@ordinalctr=11\relax
- \def\@fc@ord{th}%
-\else
- \ifnum\@ordinalctr=12\relax
- \def\@fc@ord{th}%
- \else
- \ifnum\@ordinalctr=13\relax
- \def\@fc@ord{th}%
- \else
- \@modulo{\@ordinalctr}{10}%
- \ifcase\@ordinalctr
- \def\@fc@ord{th}% case 0
- \or \def\@fc@ord{st}% case 1
- \or \def\@fc@ord{nd}% case 2
- \or \def\@fc@ord{rd}% case 3
- \else
- \def\@fc@ord{th}% default case
- \fi
- \fi
- \fi
-\fi
-\edef#2{\number#1\relax\noexpand\fmtord{\@fc@ord}}%
-}
-\let\@ordinalFenglish=\@ordinalMenglish
-\newcommand*{\@@unitstringenglish}[1]{%
-\ifcase#1\relax
-zero%
-\or one%
-\or two%
-\or three%
-\or four%
-\or five%
-\or six%
-\or seven%
-\or eight%
-\or nine%
-\fi
-}
-\newcommand*{\@@tenstringenglish}[1]{%
-\ifcase#1\relax
-\or ten%
-\or twenty%
-\or thirty%
-\or forty%
-\or fifty%
-\or sixty%
-\or seventy%
-\or eighty%
-\or ninety%
-\fi
-}
-\newcommand*{\@@teenstringenglish}[1]{%
-\ifcase#1\relax
-ten%
-\or eleven%
-\or twelve%
-\or thirteen%
-\or fourteen%
-\or fifteen%
-\or sixteen%
-\or seventeen%
-\or eighteen%
-\or nineteen%
-\fi
-}
-\newcommand*{\@@Unitstringenglish}[1]{%
-\ifcase#1\relax
-Zero%
-\or One%
-\or Two%
-\or Three%
-\or Four%
-\or Five%
-\or Six%
-\or Seven%
-\or Eight%
-\or Nine%
-\fi
-}
-\newcommand*{\@@Tenstringenglish}[1]{%
-\ifcase#1\relax
-\or Ten%
-\or Twenty%
-\or Thirty%
-\or Forty%
-\or Fifty%
-\or Sixty%
-\or Seventy%
-\or Eighty%
-\or Ninety%
-\fi
-}
-\newcommand*{\@@Teenstringenglish}[1]{%
-\ifcase#1\relax
-Ten%
-\or Eleven%
-\or Twelve%
-\or Thirteen%
-\or Fourteen%
-\or Fifteen%
-\or Sixteen%
-\or Seventeen%
-\or Eighteen%
-\or Nineteen%
-\fi
-}
-\newcommand*{\@@numberstringenglish}[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
- \divide\@strctr by 10
- \ifnum\@strctr>1\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@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-\@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
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ \@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
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ \@hundred}%
-\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>19\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-\@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
- \@modulo{\@strctr}{10}%
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@teenstring{\@strctr}}%
- \fi
-\fi
-}
-\DeclareRobustCommand{\@numberstringMenglish}[2]{%
-\let\@unitstring=\@@unitstringenglish
-\let\@teenstring=\@@teenstringenglish
-\let\@tenstring=\@@tenstringenglish
-\def\@hundred{hundred}\def\@thousand{thousand}%
-\def\@andname{and}%
-\@@numberstringenglish{#1}{#2}%
-}
-\let\@numberstringFenglish=\@numberstringMenglish
-\newcommand*{\@NumberstringMenglish}[2]{%
-\let\@unitstring=\@@Unitstringenglish
-\let\@teenstring=\@@Teenstringenglish
-\let\@tenstring=\@@Tenstringenglish
-\def\@hundred{Hundred}\def\@thousand{Thousand}%
-\def\@andname{and}%
-\@@numberstringenglish{#1}{#2}}
-\let\@NumberstringFenglish=\@NumberstringMenglish
-\newcommand*{\@@unitthstringenglish}[1]{%
-\ifcase#1\relax
-zeroth%
-\or first%
-\or second%
-\or third%
-\or fourth%
-\or fifth%
-\or sixth%
-\or seventh%
-\or eighth%
-\or ninth%
-\fi
-}
-\newcommand*{\@@tenthstringenglish}[1]{%
-\ifcase#1\relax
-\or tenth%
-\or twentieth%
-\or thirtieth%
-\or fortieth%
-\or fiftieth%
-\or sixtieth%
-\or seventieth%
-\or eightieth%
-\or ninetieth%
-\fi
-}
-\newcommand*{\@@teenthstringenglish}[1]{%
-\ifcase#1\relax
-tenth%
-\or eleventh%
-\or twelfth%
-\or thirteenth%
-\or fourteenth%
-\or fifteenth%
-\or sixteenth%
-\or seventeenth%
-\or eighteenth%
-\or nineteenth%
-\fi
-}
-\newcommand*{\@@Unitthstringenglish}[1]{%
-\ifcase#1\relax
-Zeroth%
-\or First%
-\or Second%
-\or Third%
-\or Fourth%
-\or Fifth%
-\or Sixth%
-\or Seventh%
-\or Eighth%
-\or Ninth%
-\fi
-}
-\newcommand*{\@@Tenthstringenglish}[1]{%
-\ifcase#1\relax
-\or Tenth%
-\or Twentieth%
-\or Thirtieth%
-\or Fortieth%
-\or Fiftieth%
-\or Sixtieth%
-\or Seventieth%
-\or Eightieth%
-\or Ninetieth%
-\fi
-}
-\newcommand*{\@@Teenthstringenglish}[1]{%
-\ifcase#1\relax
-Tenth%
-\or Eleventh%
-\or Twelfth%
-\or Thirteenth%
-\or Fourteenth%
-\or Fifteenth%
-\or Sixteenth%
-\or Seventeenth%
-\or Eighteenth%
-\or Nineteenth%
-\fi
-}
-\newcommand*{\@@ordinalstringenglish}[2]{%
-\@strctr=#1\relax
-\ifnum#1>99999
-\PackageError{fmtcount}{Out of range}%
-{This macro only works for values less than 100000 (value given: \number\@strctr)}%
-\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
-\def#2{}%
-\fi
-\@strctr=#1\relax \divide\@strctr by 1000\relax
-\ifnum\@strctr>9\relax
- \divide\@strctr by 10
- \ifnum\@strctr>1\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@tenstring{\@strctr}}%
- \@strctr=#1\relax
- \divide\@strctr by 1000\relax
- \@modulo{\@strctr}{10}%
- \ifnum\@strctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr-\@unitstring{\@strctr}}%
- \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}%
- \let\@@fc@ordstr#2\relax
- \ifnum\@strctr=0\relax
- \edef#2{\@@fc@ordstr\ \@thousandth}%
- \else
- \edef#2{\@@fc@ordstr\ \@thousand}%
- \fi
- \fi
-\fi
-\@strctr=#1\relax \@modulo{\@strctr}{1000}%
-\divide\@strctr by 100
-\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
-\@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}%
- \let\@@fc@ordstr#2\relax
- \ifnum\@tmpstrctr=0\relax
- \edef#2{\@@fc@ordstr\@tenthstring{\@strctr}}%
- \else
- \edef#2{\@@fc@ordstr\@tenstring{\@strctr}}%
- \fi
- \@strctr=#1\relax \@modulo{\@strctr}{10}%
- \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
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}%
- \fi
- \else
- \@modulo{\@strctr}{10}%
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@teenthstring{\@strctr}}%
- \fi
-\fi
-}
-\DeclareRobustCommand{\@ordinalstringMenglish}[2]{%
-\let\@unitthstring=\@@unitthstringenglish
-\let\@teenthstring=\@@teenthstringenglish
-\let\@tenthstring=\@@tenthstringenglish
-\let\@unitstring=\@@unitstringenglish
-\let\@teenstring=\@@teenstringenglish
-\let\@tenstring=\@@tenstringenglish
-\def\@andname{and}%
-\def\@hundred{hundred}\def\@thousand{thousand}%
-\def\@hundredth{hundredth}\def\@thousandth{thousandth}%
-\@@ordinalstringenglish{#1}{#2}}
-\let\@ordinalstringFenglish=\@ordinalstringMenglish
-\DeclareRobustCommand{\@OrdinalstringMenglish}[2]{%
-\let\@unitthstring=\@@Unitthstringenglish
-\let\@teenthstring=\@@Teenthstringenglish
-\let\@tenthstring=\@@Tenthstringenglish
-\let\@unitstring=\@@Unitstringenglish
-\let\@teenstring=\@@Teenstringenglish
-\let\@tenstring=\@@Tenstringenglish
-\def\@andname{and}%
-\def\@hundred{Hundred}\def\@thousand{Thousand}%
-\def\@hundredth{Hundredth}\def\@thousandth{Thousandth}%
-\@@ordinalstringenglish{#1}{#2}}
-\let\@OrdinalstringFenglish=\@OrdinalstringMenglish
-\endinput
-%%
-%% End of file `fc-english.def'.
diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-french.def b/Master/texmf-dist/tex/latex/fmtcount/fc-french.def
deleted file mode 100644
index eed31b8a63a..00000000000
--- a/Master/texmf-dist/tex/latex/fmtcount/fc-french.def
+++ /dev/null
@@ -1,1002 +0,0 @@
-%%
-%% This is file `fc-french.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fc-french.def,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
-\ProvidesFile{fc-french.def}[2007/04/20]
-\newcommand*{\@ordinalMfrench}[2]{%
-\iffmtord@abbrv
- \edef#2{\number#1\relax\noexpand\fmtord{e}}%
-\else
- \ifnum#1=1\relax
- \edef#2{\number#1\relax\noexpand\fmtord{er}}%
- \else
- \edef#2{\number#1\relax\noexpand\fmtord{eme}}%
- \fi
-\fi}
-\newcommand*{\@ordinalFfrench}[2]{%
-\iffmtord@abbrv
- \edef#2{\number#1\relax\noexpand\fmtord{e}}%
-\else
- \ifnum#1=1\relax
- \edef#2{\number#1\relax\noexpand\fmtord{ere}}%
- \else
- \edef#2{\number#1\relax\noexpand\fmtord{eme}}%
- \fi
-\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
-}
-\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*{\@@seventiesfrench}[1]{%
-\@tenstring{6}%
-\ifnum#1=1\relax
-\ \@andname\
-\else
--%
-\fi
-\@teenstring{#1}%
-}
-\newcommand*{\@@eightiesfrench}[1]{%
-\@unitstring{4}-\@tenstring{2}%
-\ifnum#1>0
--\@unitstring{#1}%
-\else
-s%
-\fi
-}
-\newcommand*{\@@ninetiesfrench}[1]{%
-\@unitstring{4}-\@tenstring{2}-\@teenstring{#1}%
-}
-\newcommand*{\@@seventiesfrenchswiss}[1]{%
-\@tenstring{7}%
-\ifnum#1=1\ \@andname\ \fi
-\ifnum#1>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
-}
-\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
-}
-\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
-}
-\DeclareRobustCommand{\@numberstringMfrenchswiss}[2]{%
-\let\@unitstring=\@@unitstringfrench
-\let\@teenstring=\@@teenstringfrench
-\let\@tenstring=\@@tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrenchswiss
-\let\@nineties=\@@ninetiesfrenchswiss
-\def\@hundred{cent}\def\@thousand{mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@numberstringMfrenchfrance}[2]{%
-\let\@unitstring=\@@unitstringfrench
-\let\@teenstring=\@@teenstringfrench
-\let\@tenstring=\@@tenstringfrench
-\let\@seventies=\@@seventiesfrench
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{cent}\def\@thousand{mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@numberstringMfrenchbelgian}[2]{%
-\let\@unitstring=\@@unitstringfrench
-\let\@teenstring=\@@teenstringfrench
-\let\@tenstring=\@@tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{cent}\def\@thousand{mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\let\@numberstringMfrench=\@numberstringMfrenchfrance
-\DeclareRobustCommand{\@numberstringFfrenchswiss}[2]{%
-\let\@unitstring=\@@unitstringFfrench
-\let\@teenstring=\@@teenstringfrench
-\let\@tenstring=\@@tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrenchswiss
-\let\@nineties=\@@ninetiesfrenchswiss
-\def\@hundred{cent}\def\@thousand{mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@numberstringFfrenchfrance}[2]{%
-\let\@unitstring=\@@unitstringFfrench
-\let\@teenstring=\@@teenstringfrench
-\let\@tenstring=\@@tenstringfrench
-\let\@seventies=\@@seventiesfrench
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{cent}\def\@thousand{mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@numberstringFfrenchbelgian}[2]{%
-\let\@unitstring=\@@unitstringFfrench
-\let\@teenstring=\@@teenstringfrench
-\let\@tenstring=\@@tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{cent}\def\@thousand{mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\let\@numberstringFfrench=\@numberstringFfrenchfrance
-\DeclareRobustCommand{\@NumberstringMfrenchswiss}[2]{%
-\let\@unitstring=\@@Unitstringfrench
-\let\@teenstring=\@@Teenstringfrench
-\let\@tenstring=\@@Tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrenchswiss
-\let\@nineties=\@@ninetiesfrenchswiss
-\def\@hundred{Cent}\def\@thousand{Mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringMfrenchfrance}[2]{%
-\let\@unitstring=\@@Unitstringfrench
-\let\@teenstring=\@@Teenstringfrench
-\let\@tenstring=\@@Tenstringfrench
-\let\@seventies=\@@seventiesfrench
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{Cent}\def\@thousand{Mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringMfrenchbelgian}[2]{%
-\let\@unitstring=\@@Unitstringfrench
-\let\@teenstring=\@@Teenstringfrench
-\let\@tenstring=\@@Tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{Cent}\def\@thousand{Mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\let\@NumberstringMfrench=\@NumberstringMfrenchfrance
-\DeclareRobustCommand{\@NumberstringFfrenchswiss}[2]{%
-\let\@unitstring=\@@UnitstringFfrench
-\let\@teenstring=\@@Teenstringfrench
-\let\@tenstring=\@@Tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrenchswiss
-\let\@nineties=\@@ninetiesfrenchswiss
-\def\@hundred{Cent}\def\@thousand{Mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringFfrenchfrance}[2]{%
-\let\@unitstring=\@@UnitstringFfrench
-\let\@teenstring=\@@Teenstringfrench
-\let\@tenstring=\@@Tenstringfrench
-\let\@seventies=\@@seventiesfrench
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{Cent}\def\@thousand{Mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringFfrenchbelgian}[2]{%
-\let\@unitstring=\@@UnitstringFfrench
-\let\@teenstring=\@@Teenstringfrench
-\let\@tenstring=\@@Tenstringfrench
-\let\@seventies=\@@seventiesfrenchswiss
-\let\@eighties=\@@eightiesfrench
-\let\@nineties=\@@ninetiesfrench
-\def\@hundred{Cent}\def\@thousand{Mille}%
-\def\@andname{et}%
-\@@numberstringfrench{#1}{#2}}
-\let\@NumberstringFfrench=\@NumberstringFfrenchfrance
-\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\@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{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\@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{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\@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\@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\@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\@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
-\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\@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\@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\@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\@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\@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\@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
-\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
-}
-\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*{\@@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}}%
- \else
- \ifnum\@strctr<10\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@nineties{\@tmpstrctr}}%
- \fi
- \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}}%
- \fi
- \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\ }%
- \else
- \edef#2{\@@fc@numstr-}%
- \fi
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@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%(>0,<10)
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@unitstring{\@strctr}}%
- \fi
- \else%>10
- \@modulo{\@strctr}{10}%
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@teenstring{\@strctr}}%
- \fi
-\fi
-}
-\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}}%
- \else
- \ifnum\@strctr=8\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@eighties{\@tmpstrctr}}%
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@nineties{\@tmpstrctr}}%
- \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}}%
- \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}%
- \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}}%
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@ninetieths{\@tmpstrctr}}%
- \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}}%
- \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
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}%
- \fi
- \else
- \@modulo{\@strctr}{10}%
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@teenthstring{\@strctr}}%
- \fi
-\fi
-}
-\endinput
-%%
-%% End of file `fc-french.def'.
diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def b/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def
deleted file mode 100644
index 7f77a013c15..00000000000
--- a/Master/texmf-dist/tex/latex/fmtcount/fc-portuges.def
+++ /dev/null
@@ -1,621 +0,0 @@
-%%
-%% This is file `fc-portuges.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fc-portuges.def,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
-\ProvidesFile{fc-portuges.def}[2007/04/20]
-\newcommand*{\@ordinalMportuges}[2]{%
-\ifnum#1=0\relax
- \edef#2{\number#1}%
-\else
- \edef#2{\number#1\relax\noexpand\fmtord{o}}%
-\fi}
-\newcommand*{\@ordinalFportuges}[2]{%
-\ifnum#1=0\relax
- \edef#2{\number#1}%
-\else
- \edef#2{\number#1\relax\noexpand\fmtord{a}}%
-\fi}
-\newcommand*{\@@unitstringportuges}[1]{%
-\ifcase#1\relax
-zero%
-\or um%
-\or dois%
-\or tr\^es%
-\or quatro%
-\or cinco%
-\or seis%
-\or sete%
-\or oito%
-\or nove%
-\fi
-}
-\newcommand*{\@@unitstringFportuges}[1]{%
-\ifcase#1\relax
-zero%
-\or uma%
-\or duas%
-\or tr\^es%
-\or quatro%
-\or cinco%
-\or seis%
-\or sete%
-\or oito%
-\or nove%
-\fi
-}
-\newcommand*{\@@tenstringportuges}[1]{%
-\ifcase#1\relax
-\or dez%
-\or vinte%
-\or trinta%
-\or quarenta%
-\or cinq\"uenta%
-\or sessenta%
-\or setenta%
-\or oitenta%
-\or noventa%
-\or cem%
-\fi
-}
-\newcommand*{\@@teenstringportuges}[1]{%
-\ifcase#1\relax
-dez%
-\or onze%
-\or doze%
-\or treze%
-\or quatorze%
-\or quinze%
-\or dezesseis%
-\or dezessete%
-\or dezoito%
-\or dezenove%
-\fi
-}
-\newcommand*{\@@hundredstringportuges}[1]{%
-\ifcase#1\relax
-\or cento%
-\or duzentos%
-\or trezentos%
-\or quatrocentos%
-\or quinhentos%
-\or seiscentos%
-\or setecentos%
-\or oitocentos%
-\or novecentos%
-\fi}
-\newcommand*{\@@hundredstringFportuges}[1]{%
-\ifcase#1\relax
-\or cento%
-\or duzentas%
-\or trezentas%
-\or quatrocentas%
-\or quinhentas%
-\or seiscentas%
-\or setecentas%
-\or oitocentas%
-\or novecentas%
-\fi}
-\newcommand*{\@@Unitstringportuges}[1]{%
-\ifcase#1\relax
-Zero%
-\or Um%
-\or Dois%
-\or Tr\^es%
-\or Quatro%
-\or Cinco%
-\or Seis%
-\or Sete%
-\or Oito%
-\or Nove%
-\fi
-}
-\newcommand*{\@@UnitstringFportuges}[1]{%
-\ifcase#1\relax
-Zera%
-\or Uma%
-\or Duas%
-\or Tr\^es%
-\or Quatro%
-\or Cinco%
-\or Seis%
-\or Sete%
-\or Oito%
-\or Nove%
-\fi
-}
-\newcommand*{\@@Tenstringportuges}[1]{%
-\ifcase#1\relax
-\or Dez%
-\or Vinte%
-\or Trinta%
-\or Quarenta%
-\or Cinq\"uenta%
-\or Sessenta%
-\or Setenta%
-\or Oitenta%
-\or Noventa%
-\or Cem%
-\fi
-}
-\newcommand*{\@@Teenstringportuges}[1]{%
-\ifcase#1\relax
-Dez%
-\or Onze%
-\or Doze%
-\or Treze%
-\or Quatorze%
-\or Quinze%
-\or Dezesseis%
-\or Dezessete%
-\or Dezoito%
-\or Dezenove%
-\fi
-}
-\newcommand*{\@@Hundredstringportuges}[1]{%
-\ifcase#1\relax
-\or Cento%
-\or Duzentos%
-\or Trezentos%
-\or Quatrocentos%
-\or Quinhentos%
-\or Seiscentos%
-\or Setecentos%
-\or Oitocentos%
-\or Novecentos%
-\fi}
-\newcommand*{\@@HundredstringFportuges}[1]{%
-\ifcase#1\relax
-\or Cento%
-\or Duzentas%
-\or Trezentas%
-\or Quatrocentas%
-\or Quinhentas%
-\or Seiscentas%
-\or Setecentas%
-\or Oitocentas%
-\or Novecentas%
-\fi}
-\DeclareRobustCommand{\@numberstringMportuges}[2]{%
-\let\@unitstring=\@@unitstringportuges
-\let\@teenstring=\@@teenstringportuges
-\let\@tenstring=\@@tenstringportuges
-\let\@hundredstring=\@@hundredstringportuges
-\def\@hundred{cem}\def\@thousand{mil}%
-\def\@andname{e}%
-\@@numberstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@numberstringFportuges}[2]{%
-\let\@unitstring=\@@unitstringFportuges
-\let\@teenstring=\@@teenstringportuges
-\let\@tenstring=\@@tenstringportuges
-\let\@hundredstring=\@@hundredstringFportuges
-\def\@hundred{cem}\def\@thousand{mil}%
-\def\@andname{e}%
-\@@numberstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringMportuges}[2]{%
-\let\@unitstring=\@@Unitstringportuges
-\let\@teenstring=\@@Teenstringportuges
-\let\@tenstring=\@@Tenstringportuges
-\let\@hundredstring=\@@Hundredstringportuges
-\def\@hundred{Cem}\def\@thousand{Mil}%
-\def\@andname{e}%
-\@@numberstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringFportuges}[2]{%
-\let\@unitstring=\@@UnitstringFportuges
-\let\@teenstring=\@@Teenstringportuges
-\let\@tenstring=\@@Tenstringportuges
-\let\@hundredstring=\@@HundredstringFportuges
-\def\@hundred{Cem}\def\@thousand{Mil}%
-\def\@andname{e}%
-\@@numberstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@ordinalstringMportuges}[2]{%
-\let\@unitthstring=\@@unitthstringportuges
-\let\@unitstring=\@@unitstringportuges
-\let\@teenthstring=\@@teenthstringportuges
-\let\@tenthstring=\@@tenthstringportuges
-\let\@hundredthstring=\@@hundredthstringportuges
-\def\@thousandth{mil\'esimo}%
-\@@ordinalstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@ordinalstringFportuges}[2]{%
-\let\@unitthstring=\@@unitthstringFportuges
-\let\@unitstring=\@@unitstringFportuges
-\let\@teenthstring=\@@teenthstringportuges
-\let\@tenthstring=\@@tenthstringFportuges
-\let\@hundredthstring=\@@hundredthstringFportuges
-\def\@thousandth{mil\'esima}%
-\@@ordinalstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@OrdinalstringMportuges}[2]{%
-\let\@unitthstring=\@@Unitthstringportuges
-\let\@unitstring=\@@Unitstringportuges
-\let\@teenthstring=\@@teenthstringportuges
-\let\@tenthstring=\@@Tenthstringportuges
-\let\@hundredthstring=\@@Hundredthstringportuges
-\def\@thousandth{Mil\'esimo}%
-\@@ordinalstringportuges{#1}{#2}}
-\DeclareRobustCommand{\@OrdinalstringFportuges}[2]{%
-\let\@unitthstring=\@@UnitthstringFportuges
-\let\@unitstring=\@@UnitstringFportuges
-\let\@teenthstring=\@@teenthstringportuges
-\let\@tenthstring=\@@TenthstringFportuges
-\let\@hundredthstring=\@@HundredthstringFportuges
-\def\@thousandth{Mil\'esima}%
-\@@ordinalstringportuges{#1}{#2}}
-\newcommand*{\@@unitthstringportuges}[1]{%
-\ifcase#1\relax
-zero%
-\or primeiro%
-\or segundo%
-\or terceiro%
-\or quarto%
-\or quinto%
-\or sexto%
-\or s\'etimo%
-\or oitavo%
-\or nono%
-\fi
-}
-\newcommand*{\@@tenthstringportuges}[1]{%
-\ifcase#1\relax
-\or d\'ecimo%
-\or vig\'esimo%
-\or trig\'esimo%
-\or quadrag\'esimo%
-\or q\"uinquag\'esimo%
-\or sexag\'esimo%
-\or setuag\'esimo%
-\or octog\'esimo%
-\or nonag\'esimo%
-\fi
-}
-\newcommand*{\@@teenthstringportuges}[1]{%
-\@tenthstring{1}%
-\ifnum#1>0\relax
--\@unitthstring{#1}%
-\fi}
-\newcommand*{\@@hundredthstringportuges}[1]{%
-\ifcase#1\relax
-\or cent\'esimo%
-\or ducent\'esimo%
-\or trecent\'esimo%
-\or quadringent\'esimo%
-\or q\"uingent\'esimo%
-\or seiscent\'esimo%
-\or setingent\'esimo%
-\or octingent\'esimo%
-\or nongent\'esimo%
-\fi}
-\newcommand*{\@@unitthstringFportuges}[1]{%
-\ifcase#1\relax
-zero%
-\or primeira%
-\or segunda%
-\or terceira%
-\or quarta%
-\or quinta%
-\or sexta%
-\or s\'etima%
-\or oitava%
-\or nona%
-\fi
-}
-\newcommand*{\@@tenthstringFportuges}[1]{%
-\ifcase#1\relax
-\or d\'ecima%
-\or vig\'esima%
-\or trig\'esima%
-\or quadrag\'esima%
-\or q\"uinquag\'esima%
-\or sexag\'esima%
-\or setuag\'esima%
-\or octog\'esima%
-\or nonag\'esima%
-\fi
-}
-\newcommand*{\@@hundredthstringFportuges}[1]{%
-\ifcase#1\relax
-\or cent\'esima%
-\or ducent\'esima%
-\or trecent\'esima%
-\or quadringent\'esima%
-\or q\"uingent\'esima%
-\or seiscent\'esima%
-\or setingent\'esima%
-\or octingent\'esima%
-\or nongent\'esima%
-\fi}
-\newcommand*{\@@Unitthstringportuges}[1]{%
-\ifcase#1\relax
-Zero%
-\or Primeiro%
-\or Segundo%
-\or Terceiro%
-\or Quarto%
-\or Quinto%
-\or Sexto%
-\or S\'etimo%
-\or Oitavo%
-\or Nono%
-\fi
-}
-\newcommand*{\@@Tenthstringportuges}[1]{%
-\ifcase#1\relax
-\or D\'ecimo%
-\or Vig\'esimo%
-\or Trig\'esimo%
-\or Quadrag\'esimo%
-\or Q\"uinquag\'esimo%
-\or Sexag\'esimo%
-\or Setuag\'esimo%
-\or Octog\'esimo%
-\or Nonag\'esimo%
-\fi
-}
-\newcommand*{\@@Hundredthstringportuges}[1]{%
-\ifcase#1\relax
-\or Cent\'esimo%
-\or Ducent\'esimo%
-\or Trecent\'esimo%
-\or Quadringent\'esimo%
-\or Q\"uingent\'esimo%
-\or Seiscent\'esimo%
-\or Setingent\'esimo%
-\or Octingent\'esimo%
-\or Nongent\'esimo%
-\fi}
-\newcommand*{\@@UnitthstringFportuges}[1]{%
-\ifcase#1\relax
-Zera%
-\or Primeira%
-\or Segunda%
-\or Terceira%
-\or Quarta%
-\or Quinta%
-\or Sexta%
-\or S\'etima%
-\or Oitava%
-\or Nona%
-\fi
-}
-\newcommand*{\@@TenthstringFportuges}[1]{%
-\ifcase#1\relax
-\or D\'ecima%
-\or Vig\'esima%
-\or Trig\'esima%
-\or Quadrag\'esima%
-\or Q\"uinquag\'esima%
-\or Sexag\'esima%
-\or Setuag\'esima%
-\or Octog\'esima%
-\or Nonag\'esima%
-\fi
-}
-\newcommand*{\@@HundredthstringFportuges}[1]{%
-\ifcase#1\relax
-\or Cent\'esima%
-\or Ducent\'esima%
-\or Trecent\'esima%
-\or Quadringent\'esima%
-\or Q\"uingent\'esima%
-\or Seiscent\'esima%
-\or Setingent\'esima%
-\or Octingent\'esima%
-\or Nongent\'esima%
-\fi}
-\newcommand*{\@@numberstringportuges}[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
- \divide\@strctr by 10
- \ifnum\@strctr>1\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@tenstring{\@strctr}}%
- \@strctr=#1 \divide\@strctr by 1000\relax
- \@modulo{\@strctr}{10}%
- \ifnum\@strctr>0
- \ifnum\@strctr=1\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\ \@andname}%
- \fi
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\ \@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>19\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
- \ifnum\@strctr=1\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\ \@andname}%
- \else
- \ifnum#1>100\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\ \@andname}%
- \fi
- \fi
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\ \@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%(>0,<10)
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@unitstring{\@strctr}}%
- \fi
- \else%>10
- \@modulo{\@strctr}{10}%
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@teenstring{\@strctr}}%
- \fi
-\fi
-}
-\newcommand*{\@@ordinalstringportuges}[2]{%
-\@strctr=#1\relax
-\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}%
-\else
-\def#2{}%
-\ifnum\@strctr>999\relax
- \divide\@strctr by 1000\relax
- \ifnum\@strctr>1\relax
- \ifnum\@strctr>9\relax
- \@tmpstrctr=\@strctr
- \ifnum\@strctr<20
- \@modulo{\@tmpstrctr}{10}%
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@teenthstring{\@tmpstrctr}}%
- \else
- \divide\@tmpstrctr by 10\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}%
- \@tmpstrctr=\@strctr
- \@modulo{\@tmpstrctr}{10}%
- \ifnum\@tmpstrctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitthstring{\@tmpstrctr}}%
- \fi
- \fi
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}%
- \fi
- \fi
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@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@ordstr#2\relax
- \edef#2{\@@fc@ordstr-}%
- \fi
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@hundredthstring{\@tmpstrctr}}%
-\fi
-\@modulo{\@strctr}{100}%
-\ifnum#1>99\relax
- \ifnum\@strctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr-}%
- \fi
-\fi
-\ifnum\@strctr>9\relax
- \@tmpstrctr=\@strctr
- \divide\@tmpstrctr by 10\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}%
- \@tmpstrctr=\@strctr
- \@modulo{\@tmpstrctr}{10}%
- \ifnum\@tmpstrctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr-\@unitthstring{\@tmpstrctr}}%
- \fi
-\else
- \ifnum\@strctr=0\relax
- \ifnum#1=0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitstring{0}}%
- \fi
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}%
- \fi
-\fi
-\fi
-\fi
-}
-\endinput
-%%
-%% End of file `fc-portuges.def'.
diff --git a/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def b/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def
deleted file mode 100644
index 04ac0992327..00000000000
--- a/Master/texmf-dist/tex/latex/fmtcount/fc-spanish.def
+++ /dev/null
@@ -1,721 +0,0 @@
-%%
-%% This is file `fc-spanish.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fc-spanish.def,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
-\ProvidesFile{fc-spanish.def}[2007/04/20]
-\newcommand{\@ordinalMspanish}[2]{%
-\edef#2{\number#1\relax\noexpand\fmtord{o}}}
-\newcommand{\@ordinalFspanish}[2]{%
-\edef#2{\number#1\relax\noexpand\fmtord{a}}}
-\newcommand{\@@unitstringspanish}[1]{%
-\ifcase#1\relax
-cero%
-\or uno%
-\or dos%
-\or tres%
-\or cuatro%
-\or cinco%
-\or seis%
-\or siete%
-\or ocho%
-\or nueve%
-\fi
-}
-\newcommand{\@@unitstringFspanish}[1]{%
-\ifcase#1\relax
-cera%
-\or una%
-\or dos%
-\or tres%
-\or cuatro%
-\or cinco%
-\or seis%
-\or siete%
-\or ocho%
-\or nueve%
-\fi
-}
-\newcommand{\@@tenstringspanish}[1]{%
-\ifcase#1\relax
-\or diez%
-\or viente%
-\or treinta%
-\or cuarenta%
-\or cincuenta%
-\or sesenta%
-\or setenta%
-\or ochenta%
-\or noventa%
-\or cien%
-\fi
-}
-\newcommand{\@@teenstringspanish}[1]{%
-\ifcase#1\relax
-diez%
-\or once%
-\or doce%
-\or trece%
-\or catorce%
-\or quince%
-\or diecis\'eis%
-\or diecisiete%
-\or dieciocho%
-\or diecinueve%
-\fi
-}
-\newcommand{\@@twentystringspanish}[1]{%
-\ifcase#1\relax
-veinte%
-\or veintiuno%
-\or veintid\'os%
-\or veintitr\'es%
-\or veinticuatro%
-\or veinticinco%
-\or veintis\'eis%
-\or veintisiete%
-\or veintiocho%
-\or veintinueve%
-\fi}
-\newcommand{\@@twentystringFspanish}[1]{%
-\ifcase#1\relax
-veinte%
-\or veintiuna%
-\or veintid\'os%
-\or veintitr\'es%
-\or veinticuatro%
-\or veinticinco%
-\or veintis\'eis%
-\or veintisiete%
-\or veintiocho%
-\or veintinueve%
-\fi}
-\newcommand{\@@hundredstringspanish}[1]{%
-\ifcase#1\relax
-\or ciento%
-\or doscientos%
-\or trescientos%
-\or cuatrocientos%
-\or quinientos%
-\or seiscientos%
-\or setecientos%
-\or ochocientos%
-\or novecientos%
-\fi}
-\newcommand{\@@hundredstringFspanish}[1]{%
-\ifcase#1\relax
-\or cienta%
-\or doscientas%
-\or trescientas%
-\or cuatrocientas%
-\or quinientas%
-\or seiscientas%
-\or setecientas%
-\or ochocientas%
-\or novecientas%
-\fi}
-\newcommand{\@@Unitstringspanish}[1]{%
-\ifcase#1\relax
-Cero%
-\or Uno%
-\or Dos%
-\or Tres%
-\or Cuatro%
-\or Cinco%
-\or Seis%
-\or Siete%
-\or Ocho%
-\or Nueve%
-\fi
-}
-\newcommand{\@@UnitstringFspanish}[1]{%
-\ifcase#1\relax
-Cera%
-\or Una%
-\or Dos%
-\or Tres%
-\or Cuatro%
-\or Cinco%
-\or Seis%
-\or Siete%
-\or Ocho%
-\or Nueve%
-\fi
-}
-\newcommand{\@@Tenstringspanish}[1]{%
-\ifcase#1\relax
-\or Diez%
-\or Viente%
-\or Treinta%
-\or Cuarenta%
-\or Cincuenta%
-\or Sesenta%
-\or Setenta%
-\or Ochenta%
-\or Noventa%
-\or Cien%
-\fi
-}
-\newcommand{\@@Teenstringspanish}[1]{%
-\ifcase#1\relax
-Diez%
-\or Once%
-\or Doce%
-\or Trece%
-\or Catorce%
-\or Quince%
-\or Diecis\'eis%
-\or Diecisiete%
-\or Dieciocho%
-\or Diecinueve%
-\fi
-}
-\newcommand{\@@Twentystringspanish}[1]{%
-\ifcase#1\relax
-Veinte%
-\or Veintiuno%
-\or Veintid\'os%
-\or Veintitr\'es%
-\or Veinticuatro%
-\or Veinticinco%
-\or Veintis\'eis%
-\or Veintisiete%
-\or Veintiocho%
-\or Veintinueve%
-\fi}
-\newcommand{\@@TwentystringFspanish}[1]{%
-\ifcase#1\relax
-Veinte%
-\or Veintiuna%
-\or Veintid\'os%
-\or Veintitr\'es%
-\or Veinticuatro%
-\or Veinticinco%
-\or Veintis\'eis%
-\or Veintisiete%
-\or Veintiocho%
-\or Veintinueve%
-\fi}
-\newcommand{\@@Hundredstringspanish}[1]{%
-\ifcase#1\relax
-\or Ciento%
-\or Doscientos%
-\or Trescientos%
-\or Cuatrocientos%
-\or Quinientos%
-\or Seiscientos%
-\or Setecientos%
-\or Ochocientos%
-\or Novecientos%
-\fi}
-\newcommand{\@@HundredstringFspanish}[1]{%
-\ifcase#1\relax
-\or Cienta%
-\or Doscientas%
-\or Trescientas%
-\or Cuatrocientas%
-\or Quinientas%
-\or Seiscientas%
-\or Setecientas%
-\or Ochocientas%
-\or Novecientas%
-\fi}
-\DeclareRobustCommand{\@numberstringMspanish}[2]{%
-\let\@unitstring=\@@unitstringspanish
-\let\@teenstring=\@@teenstringspanish
-\let\@tenstring=\@@tenstringspanish
-\let\@twentystring=\@@twentystringspanish
-\let\@hundredstring=\@@hundredstringspanish
-\def\@hundred{cien}\def\@thousand{mil}%
-\def\@andname{y}%
-\@@numberstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@numberstringFspanish}[2]{%
-\let\@unitstring=\@@unitstringFspanish
-\let\@teenstring=\@@teenstringspanish
-\let\@tenstring=\@@tenstringspanish
-\let\@twentystring=\@@twentystringFspanish
-\let\@hundredstring=\@@hundredstringFspanish
-\def\@hundred{cien}\def\@thousand{mil}%
-\def\@andname{y}%
-\@@numberstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringMspanish}[2]{%
-\let\@unitstring=\@@Unitstringspanish
-\let\@teenstring=\@@Teenstringspanish
-\let\@tenstring=\@@Tenstringspanish
-\let\@twentystring=\@@Twentystringspanish
-\let\@hundredstring=\@@Hundredstringspanish
-\def\@andname{y}%
-\def\@hundred{Cien}\def\@thousand{Mil}%
-\@@numberstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@NumberstringFspanish}[2]{%
-\let\@unitstring=\@@UnitstringFspanish
-\let\@teenstring=\@@Teenstringspanish
-\let\@tenstring=\@@Tenstringspanish
-\let\@twentystring=\@@TwentystringFspanish
-\let\@hundredstring=\@@HundredstringFspanish
-\def\@andname{y}%
-\def\@hundred{Cien}\def\@thousand{Mil}%
-\@@numberstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@ordinalstringMspanish}[2]{%
-\let\@unitthstring=\@@unitthstringspanish
-\let\@unitstring=\@@unitstringspanish
-\let\@teenthstring=\@@teenthstringspanish
-\let\@tenthstring=\@@tenthstringspanish
-\let\@hundredthstring=\@@hundredthstringspanish
-\def\@thousandth{mil\'esimo}%
-\@@ordinalstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@ordinalstringFspanish}[2]{%
-\let\@unitthstring=\@@unitthstringFspanish
-\let\@unitstring=\@@unitstringFspanish
-\let\@teenthstring=\@@teenthstringFspanish
-\let\@tenthstring=\@@tenthstringFspanish
-\let\@hundredthstring=\@@hundredthstringFspanish
-\def\@thousandth{mil\'esima}%
-\@@ordinalstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@OrdinalstringMspanish}[2]{%
-\let\@unitthstring=\@@Unitthstringspanish
-\let\@unitstring=\@@Unitstringspanish
-\let\@teenthstring=\@@Teenthstringspanish
-\let\@tenthstring=\@@Tenthstringspanish
-\let\@hundredthstring=\@@Hundredthstringspanish
-\def\@thousandth{Mil\'esimo}%
-\@@ordinalstringspanish{#1}{#2}}
-\DeclareRobustCommand{\@OrdinalstringFspanish}[2]{%
-\let\@unitthstring=\@@UnitthstringFspanish
-\let\@unitstring=\@@UnitstringFspanish
-\let\@teenthstring=\@@TeenthstringFspanish
-\let\@tenthstring=\@@TenthstringFspanish
-\let\@hundredthstring=\@@HundredthstringFspanish
-\def\@thousandth{Mil\'esima}%
-\@@ordinalstringspanish{#1}{#2}}
-\newcommand{\@@unitthstringspanish}[1]{%
-\ifcase#1\relax
-cero%
-\or primero%
-\or segundo%
-\or tercero%
-\or cuarto%
-\or quinto%
-\or sexto%
-\or s\'eptimo%
-\or octavo%
-\or noveno%
-\fi
-}
-\newcommand{\@@tenthstringspanish}[1]{%
-\ifcase#1\relax
-\or d\'ecimo%
-\or vig\'esimo%
-\or trig\'esimo%
-\or cuadrag\'esimo%
-\or quincuag\'esimo%
-\or sexag\'esimo%
-\or septuag\'esimo%
-\or octog\'esimo%
-\or nonag\'esimo%
-\fi
-}
-\newcommand{\@@teenthstringspanish}[1]{%
-\ifcase#1\relax
-d\'ecimo%
-\or und\'ecimo%
-\or duod\'ecimo%
-\or decimotercero%
-\or decimocuarto%
-\or decimoquinto%
-\or decimosexto%
-\or decimos\'eptimo%
-\or decimoctavo%
-\or decimonoveno%
-\fi
-}
-\newcommand{\@@hundredthstringspanish}[1]{%
-\ifcase#1\relax
-\or cent\'esimo%
-\or ducent\'esimo%
-\or tricent\'esimo%
-\or cuadringent\'esimo%
-\or quingent\'esimo%
-\or sexcent\'esimo%
-\or septing\'esimo%
-\or octingent\'esimo%
-\or noningent\'esimo%
-\fi}
-\newcommand{\@@unitthstringFspanish}[1]{%
-\ifcase#1\relax
-cera%
-\or primera%
-\or segunda%
-\or tercera%
-\or cuarta%
-\or quinta%
-\or sexta%
-\or s\'eptima%
-\or octava%
-\or novena%
-\fi
-}
-\newcommand{\@@tenthstringFspanish}[1]{%
-\ifcase#1\relax
-\or d\'ecima%
-\or vig\'esima%
-\or trig\'esima%
-\or cuadrag\'esima%
-\or quincuag\'esima%
-\or sexag\'esima%
-\or septuag\'esima%
-\or octog\'esima%
-\or nonag\'esima%
-\fi
-}
-\newcommand{\@@teenthstringFspanish}[1]{%
-\ifcase#1\relax
-d\'ecima%
-\or und\'ecima%
-\or duod\'ecima%
-\or decimotercera%
-\or decimocuarta%
-\or decimoquinta%
-\or decimosexta%
-\or decimos\'eptima%
-\or decimoctava%
-\or decimonovena%
-\fi
-}
-\newcommand{\@@hundredthstringFspanish}[1]{%
-\ifcase#1\relax
-\or cent\'esima%
-\or ducent\'esima%
-\or tricent\'esima%
-\or cuadringent\'esima%
-\or quingent\'esima%
-\or sexcent\'esima%
-\or septing\'esima%
-\or octingent\'esima%
-\or noningent\'esima%
-\fi}
-\newcommand{\@@Unitthstringspanish}[1]{%
-\ifcase#1\relax
-Cero%
-\or Primero%
-\or Segundo%
-\or Tercero%
-\or Cuarto%
-\or Quinto%
-\or Sexto%
-\or S\'eptimo%
-\or Octavo%
-\or Noveno%
-\fi
-}
-\newcommand{\@@Tenthstringspanish}[1]{%
-\ifcase#1\relax
-\or D\'ecimo%
-\or Vig\'esimo%
-\or Trig\'esimo%
-\or Cuadrag\'esimo%
-\or Quincuag\'esimo%
-\or Sexag\'esimo%
-\or Septuag\'esimo%
-\or Octog\'esimo%
-\or Nonag\'esimo%
-\fi
-}
-\newcommand{\@@Teenthstringspanish}[1]{%
-\ifcase#1\relax
-D\'ecimo%
-\or Und\'ecimo%
-\or Duod\'ecimo%
-\or Decimotercero%
-\or Decimocuarto%
-\or Decimoquinto%
-\or Decimosexto%
-\or Decimos\'eptimo%
-\or Decimoctavo%
-\or Decimonoveno%
-\fi
-}
-\newcommand{\@@Hundredthstringspanish}[1]{%
-\ifcase#1\relax
-\or Cent\'esimo%
-\or Ducent\'esimo%
-\or Tricent\'esimo%
-\or Cuadringent\'esimo%
-\or Quingent\'esimo%
-\or Sexcent\'esimo%
-\or Septing\'esimo%
-\or Octingent\'esimo%
-\or Noningent\'esimo%
-\fi}
-\newcommand{\@@UnitthstringFspanish}[1]{%
-\ifcase#1\relax
-Cera%
-\or Primera%
-\or Segunda%
-\or Tercera%
-\or Cuarta%
-\or Quinta%
-\or Sexta%
-\or S\'eptima%
-\or Octava%
-\or Novena%
-\fi
-}
-\newcommand{\@@TenthstringFspanish}[1]{%
-\ifcase#1\relax
-\or D\'ecima%
-\or Vig\'esima%
-\or Trig\'esima%
-\or Cuadrag\'esima%
-\or Quincuag\'esima%
-\or Sexag\'esima%
-\or Septuag\'esima%
-\or Octog\'esima%
-\or Nonag\'esima%
-\fi
-}
-\newcommand{\@@TeenthstringFspanish}[1]{%
-\ifcase#1\relax
-D\'ecima%
-\or Und\'ecima%
-\or Duod\'ecima%
-\or Decimotercera%
-\or Decimocuarta%
-\or Decimoquinta%
-\or Decimosexta%
-\or Decimos\'eptima%
-\or Decimoctava%
-\or Decimonovena%
-\fi
-}
-\newcommand{\@@HundredthstringFspanish}[1]{%
-\ifcase#1\relax
-\or Cent\'esima%
-\or Ducent\'esima%
-\or Tricent\'esima%
-\or Cuadringent\'esima%
-\or Quingent\'esima%
-\or Sexcent\'esima%
-\or Septing\'esima%
-\or Octingent\'esima%
-\or Noningent\'esima%
-\fi}
-
-\newcommand{\@@numberstringspanish}[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
- \divide\@strctr by 10
- \ifnum\@strctr>1
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@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}%
- \ifnum\@tmpstrctr=100\relax
- \let\@@fc@numstr#2\relax
- \edef#2{\@@fc@numstr\@tenstring{10}}%
- \else
- \let\@@fc@numstr#2\relax
- \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{\@@ordinalstringspanish}[2]{%
-\@strctr=#1\relax
-\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}%
-\else
-\def#2{}%
-\ifnum\@strctr>999\relax
- \divide\@strctr by 1000\relax
- \ifnum\@strctr>1\relax
- \ifnum\@strctr>9\relax
- \@tmpstrctr=\@strctr
- \ifnum\@strctr<20
- \@modulo{\@tmpstrctr}{10}%
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@teenthstring{\@tmpstrctr}}%
- \else
- \divide\@tmpstrctr by 10\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}%
- \@tmpstrctr=\@strctr
- \@modulo{\@tmpstrctr}{10}%
- \ifnum\@tmpstrctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitthstring{\@tmpstrctr}}%
- \fi
- \fi
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}%
- \fi
- \fi
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@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@ordstr#2\relax
- \edef#2{\@@fc@ordstr\ }%
- \fi
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@hundredthstring{\@tmpstrctr}}%
-\fi
-\@modulo{\@strctr}{100}%
-\ifnum#1>99\relax
- \ifnum\@strctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\ }%
- \fi
-\fi
-\ifnum\@strctr>19\relax
- \@tmpstrctr=\@strctr
- \divide\@tmpstrctr by 10\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}%
- \@tmpstrctr=\@strctr
- \@modulo{\@tmpstrctr}{10}%
- \ifnum\@tmpstrctr>0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\ \@unitthstring{\@tmpstrctr}}%
- \fi
-\else
- \ifnum\@strctr>9\relax
- \@modulo{\@strctr}{10}%
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@teenthstring{\@strctr}}%
- \else
- \ifnum\@strctr=0\relax
- \ifnum#1=0\relax
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitstring{0}}%
- \fi
- \else
- \let\@@fc@ordstr#2\relax
- \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}%
- \fi
- \fi
-\fi
-\fi
-\fi
-}
-\endinput
-%%
-%% End of file `fc-spanish.def'.
diff --git a/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty b/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty
deleted file mode 100644
index 61a1428756a..00000000000
--- a/Master/texmf-dist/tex/latex/fmtcount/fmtcount.sty
+++ /dev/null
@@ -1,613 +0,0 @@
-%%
-%% This is file `fmtcount.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% fmtcount.dtx (with options: `fmtcount.sty,package')
-%% Copyright (C) 2007 Nicola Talbot, all rights reserved.
-%% If you modify this file, you must change its name first.
-%% You are NOT ALLOWED to distribute this file alone. You are NOT
-%% ALLOWED to take money for the distribution or use of either this
-%% file or a changed version, except for a nominal charge for copying
-%% etc.
-%% \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 \~}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fmtcount}[2007/04/20 v1.09]
-\RequirePackage{ifthen}
-\RequirePackage{keyval}
-\providecommand{\fmtord}[1]{\textsuperscript{#1}}
-\newcount\c@padzeroesN
-\c@padzeroesN=1\relax
-\providecommand{\padzeroes}[1][17]{\c@padzeroesN=#1}
-\@ifundefined{dateenglish}{}{\input{fc-english.def}}
-\@ifundefined{datespanish}{}{\input{fc-spanish.def}}
-\@ifundefined{dateportuges}{}{\input{fc-portuges.def}}
-\@ifundefined{datefrench}{}{\input{fc-french.def}}
-\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'}}
-}}
-\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'}}}
-\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}{%
-\typeout{Using configuration file fmtcount.cfg}}{%
-\typeout{No configuration file fmtcount.cfg found.}}
-\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\or6\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
-\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
-\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}%
-\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]{\@ifnextchar[{\@ordinalnum{#1}}{%
-\@ordinalnum{#1}[m]}}
-\def\@ordinalnum#1[#2]{{%
-\ifthenelse{\equal{#2}{f}}{%
-\protect\@ordinalF{#1}{\@fc@ordstr}}{%
-\ifthenelse{\equal{#2}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2'}{%
-Available options are m or f}}%
-\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}{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]{%
-\@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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2' to
-\string\ordinalstring}{Available options are m 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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#3' to
-\string\ordinalstring}{Available options are m or f}}%
-\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]{%
-\@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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2'}{%
-Available options are m 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}{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}{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]{%
-\@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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2'}{%
-Available options are m or f}}%
-\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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#3'}{%
-Available options are m or f}}%
-\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]{%
-\@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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2'}{%
-Available options are m or f}}%
-\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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#3'}{%
-Available options are m or f}}%
-\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]{%
-\@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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2'}{%
-Available options are m or f}}%
-\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}{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]{%
-\@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}{m}}{}{%
-\PackageError{fmtcount}{Invalid gender option `#2'}{%
-Available options are m or f}}%
-\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}{\input{fc-english.def}}{}
-\def\@ordinalstringM{\@ordinalstringMenglish}
-\let\@ordinalstringF=\@ordinalstringMenglish
-\def\@OrdinalstringM{\@OrdinalstringMenglish}
-\let\@OrdinalstringF=\@OrdinalstringMenglish
-\def\@numberstringM{\@numberstringMenglish}
-\let\@numberstringF=\@numberstringMenglish
-\def\@NumberstringM{\@NumberstringMenglish}
-\let\@NumberstringF=\@NumberstringMenglish
-\def\@ordinalM{\@ordinalMenglish}
-\let\@ordinalF=\@ordinalM}
-
-\@ifpackageloaded{babel}{
-\ifthenelse{\equal{\languagename}{nohyphenation}\or\equal{languagename}{english}}{\@setdef@ultfmtcount}{
-\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\@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\@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\@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\@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}}
-}}{%
-\@setdef@ultfmtcount}
-\let\@ordinal=\@ordinalM
-\let\@ordinalstring=\@ordinalstringM
-\let\@Ordinalstring=\@OrdinalstringM
-\let\@numberstring=\@numberstringM
-\let\@Numberstring=\@NumberstringM
-\endinput
-%%
-%% End of file `fmtcount.sty'.
diff --git a/Master/texmf-dist/tpm/fmtcount.tpm b/Master/texmf-dist/tpm/fmtcount.tpm
index b9d9d93517a..d3a341219a7 100644
--- a/Master/texmf-dist/tpm/fmtcount.tpm
+++ b/Master/texmf-dist/tpm/fmtcount.tpm
@@ -3,7 +3,7 @@
<rdf:Description about="http://texlive.dante.de/texlive/Package/fmtcount.zip">
<TPM:Name>fmtcount</TPM:Name>
<TPM:Type>Package</TPM:Type>
- <TPM:Date>2007/04/24 23:55:18</TPM:Date>
+ <TPM:Date>2007/06/14 20:12:39</TPM:Date>
<TPM:Version>1.03 2005/06/20</TPM:Version>
<TPM:Creator>karl</TPM:Creator>
<TPM:Title>
@@ -23,27 +23,18 @@ support.
<TPM:Size>490211</TPM:Size>
<TPM:License></TPM:License>
<TPM:Build/>
- <TPM:RunFiles size="93920">
-texmf-dist/tex/latex/fmtcount/fc-english.def
-texmf-dist/tex/latex/fmtcount/fc-french.def
-texmf-dist/tex/latex/fmtcount/fc-portuges.def
-texmf-dist/tex/latex/fmtcount/fc-spanish.def
-texmf-dist/tex/latex/fmtcount/fmtcount.sty
-texmf-dist/tpm/fmtcount.tpm
- </TPM:RunFiles>
- <TPM:DocFiles size="210007">
-texmf-dist/doc/latex/fmtcount/CHANGES
+ <TPM:RunFiles size="1915">texmf-dist/tpm/fmtcount.tpm</TPM:RunFiles>
+ <TPM:DocFiles size="517889">
texmf-dist/doc/latex/fmtcount/README
-texmf-dist/doc/latex/fmtcount/fc-lang.tex
-texmf-dist/doc/latex/fmtcount/fc-samp.tex
-texmf-dist/doc/latex/fmtcount/fmtcount.pdf
-texmf-dist/doc/latex/fmtcount/fmtcount.perl
-texmf-dist/doc/latex/fmtcount/manual.html
+texmf-dist/doc/latex/fmtcount/doc/CHANGES
+texmf-dist/doc/latex/fmtcount/doc/fc-lang.tex
+texmf-dist/doc/latex/fmtcount/doc/fc-samp.tex
+texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdf
+texmf-dist/doc/latex/fmtcount/doc/manual.html
+texmf-dist/doc/latex/fmtcount/latex2html/fmtcount.perl
+texmf-dist/doc/latex/fmtcount/source/fmtcount.dtx
+texmf-dist/doc/latex/fmtcount/source/fmtcount.ins
</TPM:DocFiles>
- <TPM:SourceFiles size="186284">
-texmf-dist/source/latex/fmtcount/fmtcount.dtx
-texmf-dist/source/latex/fmtcount/fmtcount.ins
- </TPM:SourceFiles>
<TPM:Provides>Package/fmtcount</TPM:Provides>
</rdf:Description>
</rdf:RDF>
diff --git a/Master/texmf-dist/tpm/showlabels.tpm b/Master/texmf-dist/tpm/showlabels.tpm
index 9d1959d4fe0..6488ca29dfd 100644
--- a/Master/texmf-dist/tpm/showlabels.tpm
+++ b/Master/texmf-dist/tpm/showlabels.tpm
@@ -3,7 +3,7 @@
<rdf:Description about="http://texlive.dante.de/texlive/Package/showlabels.zip">
<TPM:Name>showlabels</TPM:Name>
<TPM:Type>Package</TPM:Type>
- <TPM:Date>2007/06/17 21:36:10</TPM:Date>
+ <TPM:Date>2007/06/17 21:49:29</TPM:Date>
<TPM:Version>1.4a</TPM:Version>
<TPM:Creator>rahtz</TPM:Creator>
<TPM:Title>Show label commands in the margin.</TPM:Title>
@@ -18,7 +18,7 @@ command, but it's easy to do it for others, such as the \ref or
[description copied from TeX Catalogue]
</TPM:Description>
<TPM:Author>Norman Gray</TPM:Author>
- <TPM:Size>151752</TPM:Size>
+ <TPM:Size>164269</TPM:Size>
<TPM:License></TPM:License>
<TPM:Build/>
<TPM:RunFiles size="9749">
diff --git a/Master/texmf/lists/fmtcount b/Master/texmf/lists/fmtcount
index bd27b4b2a76..de7afcc6470 100644
--- a/Master/texmf/lists/fmtcount
+++ b/Master/texmf/lists/fmtcount
@@ -1,17 +1,13 @@
-texmf-dist/doc/latex/fmtcount/CHANGES
texmf-dist/doc/latex/fmtcount/README
-texmf-dist/doc/latex/fmtcount/fc-lang.tex
-texmf-dist/doc/latex/fmtcount/fc-samp.tex
-texmf-dist/doc/latex/fmtcount/fmtcount.pdf
-texmf-dist/doc/latex/fmtcount/fmtcount.perl
-texmf-dist/doc/latex/fmtcount/manual.html
-texmf-dist/source/latex/fmtcount/fmtcount.dtx
-texmf-dist/source/latex/fmtcount/fmtcount.ins
-texmf-dist/tex/latex/fmtcount/fc-english.def
-texmf-dist/tex/latex/fmtcount/fc-french.def
-texmf-dist/tex/latex/fmtcount/fc-portuges.def
-texmf-dist/tex/latex/fmtcount/fc-spanish.def
-texmf-dist/tex/latex/fmtcount/fmtcount.sty
+texmf-dist/doc/latex/fmtcount/doc/CHANGES
+texmf-dist/doc/latex/fmtcount/doc/fc-lang.tex
+texmf-dist/doc/latex/fmtcount/doc/fc-samp.tex
+texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdf
+texmf-dist/doc/latex/fmtcount/doc/manual.html
+texmf-dist/doc/latex/fmtcount/latex2html/fmtcount.perl
+texmf-dist/doc/latex/fmtcount/source/fmtcount.dtx
+texmf-dist/doc/latex/fmtcount/source/fmtcount.ins
+
texmf-dist/tpm/fmtcount.tpm
texmf/lists/fmtcount