diff options
Diffstat (limited to 'Master')
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 Binary files differnew file mode 100644 index 00000000000..fe3cccc2ab0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/fmtcount/doc/fmtcount.pdf 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>\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 Binary files differdeleted file mode 100644 index 64163d43156..00000000000 --- a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf +++ /dev/null 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 |