summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/fmtcount
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-04-24 23:55:24 +0000
committerKarl Berry <karl@freefriends.org>2007-04-24 23:55:24 +0000
commitc65c25c59074eaa09621f4fd782362b2c5227e32 (patch)
tree70d64612457606868bfbc0f31af7dc82dde56ab5 /Master/texmf-dist/doc/latex/fmtcount
parent0f300547ff60c57ac58422c1d92660da8bf5efb0 (diff)
fmtcount 1.09 (24apr07)
git-svn-id: svn://tug.org/texlive/trunk@4182 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/fmtcount')
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/CHANGES11
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/README4
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex14
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex3
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdfbin121492 -> 133652 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl470
-rw-r--r--Master/texmf-dist/doc/latex/fmtcount/manual.html148
7 files changed, 608 insertions, 42 deletions
diff --git a/Master/texmf-dist/doc/latex/fmtcount/CHANGES b/Master/texmf-dist/doc/latex/fmtcount/CHANGES
index 412416bd5d7..13afa7d9565 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/CHANGES
+++ b/Master/texmf-dist/doc/latex/fmtcount/CHANGES
@@ -1,5 +1,16 @@
fmtcount package versions:
+Version 1.09: Added upper case variants \ORDINALstring etc
+(\MakeUppercase{\ordinalstring{<counter>}} doesn't work because
+of the way \MakeUppercase expands its argument).
+
+Added commands to store textual representations \storeordinalstring etc
+
+Version 1.08: fixed Portugues spelling mistakes (tr\`es -> tr\^es
+centa -> cento)
+
+Version 1.07: fixed bug that causes fc-english.def to be loaded twice
+
Version 1.06: fixed language-related bug
Version 1.05: fixed bug in \padzeroes
diff --git a/Master/texmf-dist/doc/latex/fmtcount/README b/Master/texmf-dist/doc/latex/fmtcount/README
index bad070ef6f2..6d2c2d426f0 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/README
+++ b/Master/texmf-dist/doc/latex/fmtcount/README
@@ -1,6 +1,6 @@
-LaTeX Package : fmtcount v 1.06
+LaTeX Package : fmtcount v 1.09
-Last Modified : 6 January 2007
+Last Modified : 21 April 2007
Author : Nicola Talbot
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex b/Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex
index 3600e0b5abd..0c81dc887fd 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex
+++ b/Master/texmf-dist/doc/latex/fmtcount/fc-lang.tex
@@ -138,8 +138,10 @@ Current language: French (Belgium).
\typeout{Which format?^^J}
\typeout{[1] ordinalstring}
\typeout{[2] Ordinalstring}
-\typeout{[3] numberstring}
-\typeout{[4] Numberstring}
+\typeout{[3] ORDINALstring}
+\typeout{[4] numberstring}
+\typeout{[5] Numberstring}
+\typeout{[6] NUMBERstring}
\typein[\response]{Default: 1}
@@ -147,16 +149,20 @@ Current language: French (Belgium).
\ifthenelse{\equal{\response}{1}}{\myctr=1}{
\ifthenelse{\equal{\response}{2}}{\myctr=2}{
\ifthenelse{\equal{\response}{3}}{\myctr=3}{
-\ifthenelse{\equal{\response}{4}}{\myctr=4}{\myctr=-1
-\typeout{Invalid response '\response', please select a number from 1 to 4}}}}}
+\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
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex b/Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex
index 4c5a6e47f4e..1a18321c004 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex
+++ b/Master/texmf-dist/doc/latex/fmtcount/fc-samp.tex
@@ -120,7 +120,8 @@ numberstring
Referencing a label: \ref{ex}.
Passing numbers explicitly: \ordinalnum{10},
-\Numberstringnum{10}, \Ordinalstringnum{10}.
+\Numberstringnum{10}, \NUMBERstringnum{10}, \Ordinalstringnum{10},
+\ORDINALstringnum{10}.
\end{document}
\endinput
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf b/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf
index 8f4ba512f43..64163d43156 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf
+++ b/Master/texmf-dist/doc/latex/fmtcount/fmtcount.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl b/Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl
index 875f41febc1..2cf6bb3a091 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl
+++ b/Master/texmf-dist/doc/latex/fmtcount/fmtcount.perl
@@ -1,7 +1,7 @@
# File : fmtcount.perl
# Author : Nicola Talbot
-# Date : 3 Mar 2005
-# Version : 1.02
+# Date : 21 April 2007
+# Version : 1.04
# Description : LaTeX2HTML implementation of fmtcount package
package main;
@@ -171,6 +171,58 @@ sub do_cmd_ordinal{
}
}
+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',
@@ -496,7 +548,7 @@ $thousandthnamespanish = "mil\\'esimo";
@unitstringportuges = ('zero',
'um',
'dois',
- 'tr\`es',
+ 'tr\^es',
'quatro',
'cinco',
'seis',
@@ -762,7 +814,7 @@ sub get_numberstringportuges{
{
$hundreds = $hundredstringportuges[$num/100];
- if ($gender eq 'f')
+ if ($gender eq 'f' and $num >= 200)
{
$hundreds =~s/o(s?)$/a\1/;
}
@@ -860,6 +912,58 @@ sub do_cmd_numberstring{
}
}
+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);
@@ -925,6 +1029,150 @@ sub do_cmd_Numberstring{
}
}
+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)="";
@@ -1361,18 +1609,82 @@ sub do_cmd_ordinalstring{
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, '}}', $_[0]);
+ join('', '{ORDINALSTRING{', $ctr, '}}', $_);
}
else
{
- join('', &get_ordinalstring($val, $gender), $_[0]);
+ 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/([a-z])([^\s\-]+)/\u\1\2/g;
+ $string =~ s/\b([a-z])([^\s\-]+)/\u\1\2/g;
if ($default_language eq 'french')
{
@@ -1426,6 +1738,150 @@ sub do_cmd_Ordinalstring{
}
}
+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));
diff --git a/Master/texmf-dist/doc/latex/fmtcount/manual.html b/Master/texmf-dist/doc/latex/fmtcount/manual.html
index d8ae7bd7712..c1cbfa97cc8 100644
--- a/Master/texmf-dist/doc/latex/fmtcount/manual.html
+++ b/Master/texmf-dist/doc/latex/fmtcount/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.06: Displaying the Values of LaTeX Counters</TITLE>
-<META NAME="description" CONTENT="fmtcount.sty v1.06: Displaying the Values of LaTeX Counters">
+<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">
<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.06: Displaying the Values of
+ <H1 ALIGN="CENTER">fmtcount.sty v1.09: Displaying the Values of
LaTeX Counters</H1>
<P ALIGN="CENTER"><STRONG>Nicola L.C. Talbot</STRONG></P>
-<P ALIGN="CENTER"><STRONG>6 January 2007</STRONG></P>
+<P ALIGN="CENTER"><STRONG>21st April 2007</STRONG></P>
<BR>
<H2><A NAME="SECTION00010000000000000000">
@@ -44,25 +44,25 @@ Contents</A>
<!--Table of Contents-->
<UL>
-<LI><A NAME="tex2html18"
- HREF="manual.html#SECTION00020000000000000000">Introduction</A>
<LI><A NAME="tex2html19"
- HREF="manual.html#SECTION00030000000000000000">Installation</A>
+ HREF="manual.html#SECTION00020000000000000000">Introduction</A>
<LI><A NAME="tex2html20"
- HREF="manual.html#SECTION00040000000000000000">Available Commands</A>
+ HREF="manual.html#SECTION00030000000000000000">Installation</A>
<LI><A NAME="tex2html21"
- HREF="manual.html#SECTION00050000000000000000">Package Options</A>
+ HREF="manual.html#SECTION00040000000000000000">Available Commands</A>
<LI><A NAME="tex2html22"
- HREF="manual.html#SECTION00060000000000000000">Multilingual Support</A>
+ HREF="manual.html#SECTION00050000000000000000">Package Options</A>
<LI><A NAME="tex2html23"
- HREF="manual.html#SECTION00070000000000000000">Configuration File fmtcount.cfg</A>
+ HREF="manual.html#SECTION00060000000000000000">Multilingual Support</A>
<LI><A NAME="tex2html24"
- HREF="manual.html#SECTION00080000000000000000">LaTeX2HTML style</A>
+ HREF="manual.html#SECTION00070000000000000000">Configuration File fmtcount.cfg</A>
<LI><A NAME="tex2html25"
- HREF="manual.html#SECTION00090000000000000000">Acknowledgements</A>
+ HREF="manual.html#SECTION00080000000000000000">LaTeX2HTML style</A>
<LI><A NAME="tex2html26"
- HREF="manual.html#SECTION000100000000000000000">Troubleshooting</A>
+ HREF="manual.html#SECTION00090000000000000000">Acknowledgements</A>
<LI><A NAME="tex2html27"
+ HREF="manual.html#SECTION000100000000000000000">Troubleshooting</A>
+<LI><A NAME="tex2html28"
HREF="manual.html#SECTION000110000000000000000">Contact Details</A>
</UL>
<!--End of Table of Contents-->
@@ -139,11 +139,20 @@ The macro <code>\numberstring{</code><I>counter</I><code>}</code> will print the
<code>\numberstring</code>, but with initial letters in uppercase. For
example, <code>\Numberstring{section}</code> will produce: Three.
+The macro <code>\NUMBERstring{</code><I>counter</I><code>}</code> does the same
+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>.
+
<P>
-The macros <code>\numberstringnum</code> and
-<code>\Numberstringnum</code> work like
-<code>\numberstring</code> and
-<code>\Numberstring</code>, respectively, but take an actual number
+The macros <code>\numberstringnum</code>,
+<code>\Numberstringnum</code> and
+<code>\NUMBERstringnum</code> work like
+<code>\numberstring</code>,
+<code>\Numberstring</code> and
+<code>\NUMBERstring</code>, respectively, but take an actual number
rather than a counter as the argument. For example:
<code>\Numberstringnum{105}</code> will produce: One Hundred and Five.
@@ -154,16 +163,92 @@ The macro <code>\ordinalstring{</code><I>counter</I><code>}</code> will print th
The macro <code>\Ordinalstring{</code><I>counter</I><code>}</code> does the same as
<code>\ordinalstring</code>, but with initial letters in uppercase. For example,
<code>\Ordinalstring{section}</code> will produce: Third.
+
+ The macro <code>\ORDINALstring{</code><I>counter</I><code>}</code> does the same as
+<code>\ordinalstring</code>, but with all words in upper case (see previous
+note about <TT>&#92;MakeUppercase</TT>).
<P>
-The macros <code>\ordinalstringnum</code> and
-<code>\Ordinalstringnum</code> work like
-<code>\Ordinalstring</code> and
-<code>\Ordinalstring</code>, respectively, but take an actual number
+The macros <code>\ordinalstringnum</code>,
+<code>\Ordinalstringnum</code> and <TT>&#92;ORDINALstringnum</TT> work like
+<code>\ordinalstring</code>,
+<code>\Ordinalstring</code> and <TT>&#92;ORDINALstring</TT>, respectively, but take an actual number
rather than a counter as the argument. For example,
<code>\ordinalstringnum{3}</code> will produce: third.
<P>
+As from version 1.09, textual representations can be stored for
+later use. This overcomes the problems encountered when you
+attempt to use one of the above commands in <TT>&#92;edef</TT>.
+
+<P>
+Each of the following commands takes a label as the first argument,
+the other arguments are as the analogous commands above. These
+commands do not display anything, but store the textual
+representation. This can later be retrieved using
+<TT>&#92;FMCuse</TT>{<I>label</I>}.
+Note: with <TT>&#92;storeordinal</TT> and <TT>&#92;storeordinalnum</TT>, the
+only bit that doesn't get expanded is <TT>&#92;fmtord</TT>. So, for
+example, <code>\storeordinalnum{mylabel}{3}</code> will be stored as
+<code>3\relax \fmtord{rd}</code>.
+
+<P>
+
+<TT>&#92;storeordinal</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeordinalstring</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeOrdinalstring</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeORDINALstring</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storenumberstring</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeNumberstring</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeNUMBERstring</TT>{<I>label</I>}{<I>counter</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeordinalnum</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeordinalstring</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeOrdinalstringnum</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeORDINALstringnum</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storenumberstring</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeNumberstring</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
+
+<TT>&#92;storeNUMBERstring</TT>{<I>label</I>}{<I>number</I>}[<I>gender</I>]
+
+<P>
The macro <code>\binary{</code><I>counter</I><code>}</code> will print the
value of <I>counter</I> as a binary number.
E.g. <code>\binary{section}</code> will produce: 11. The declaration
@@ -306,8 +391,8 @@ 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="tex2html4"
- HREF="#foot192"><SUP>1</SUP></A>, and will
+command <code>\date</code><I>language</I> is defined<A NAME="tex2html5"
+ HREF="#foot289"><SUP>2</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
@@ -418,7 +503,7 @@ Troubleshooting</A>
</H1>
<P>
-There is a FAQ available at: <TT><A NAME="tex2html5"
+There is a FAQ available at: <TT><A NAME="tex2html6"
HREF="http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/">http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/</A></TT>.
<P>
@@ -435,12 +520,19 @@ University of East Anglia
Norwich. NR4 7TJ.
<BR>
United Kingdom.
-<BR> <TT><A NAME="tex2html6"
+<BR> <TT><A NAME="tex2html7"
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="foot192">... defined</A><A
+<DT><A NAME="foot288">...
+argument</A><A
HREF="manual.html#tex2html4"><SUP>1</SUP></A></DT>
+<DD>See all the various postings to
+<TT>comp.text.tex</TT> about <TT>&#92;MakeUppercase</TT>
+
+</DD>
+<DT><A NAME="foot289">... defined</A><A
+ HREF="manual.html#tex2html5"><SUP>2</SUP></A></DT>
<DD>this
will be true if you have loaded <TT>babel</TT>
@@ -451,7 +543,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-01-06
+Last Modified: 2007-04-21
</ADDRESS>
</BODY>
</HTML>