diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/fmtcount')
-rw-r--r-- | Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx | 614 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/fmtcount/fmtcount.ins | 8 |
2 files changed, 383 insertions, 239 deletions
diff --git a/Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx b/Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx index bdcb4edbb91..10e9dac5fa3 100644 --- a/Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx +++ b/Master/texmf-dist/source/latex/fmtcount/fmtcount.dtx @@ -1,12 +1,12 @@ %\iffalse -% fmtcount.dtx generated using makedtx version 0.94b (c) Nicola Talbot +% fmtcount.dtx generated using makedtx version 1.1 (c) Nicola Talbot % Command line args: % -src "(.+)\.(sty)=>\1.\2" % -src "(.+)\.(def)=>\1.\2" % -doc "fmtcount-manual.tex" % -author "Nicola Talbot and Vincent Belaïche" % fmtcount -% Created on 2013/8/17 16:54 +% Created on 2014/6/18 14:52 %\fi %\iffalse %<*package> @@ -29,7 +29,7 @@ %\fi % \iffalse % Doc-Source file to use with LaTeX2e -% Copyright (C) 2013 Nicola Talbot and Vincent Belaïche, all rights reserved. +% Copyright (C) 2014 Nicola Talbot and Vincent Belaïche, all rights reserved. % \fi % \iffalse %<*driver> @@ -52,7 +52,7 @@ pdftitle={fmtcount.sty: Displaying the Values of LaTeX Counters}, pdfkeywords={LaTeX,counter}]{hyperref} -\CheckSum{9271} +\CheckSum{9726} \doxitem{Option}{option}{options} @@ -71,7 +71,7 @@ % \url{www.dickimaw-books.com} % \and % Vincent Bela\"iche} -% \date{2013-08-17 (version 2.03)\relax +% \date{2014-06-18 (version 2.04)\relax %} % \maketitle % \tableofcontents @@ -818,6 +818,9 @@ %There is a FAQ available at: %\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/}. % +%Bug reporting should be done via the Github issue manager at: +%\url{https://github.com/nlct/fmtcount/issues/}. +% % % %\StopEventually{} @@ -1005,7 +1008,7 @@ % \end{macrocode} % \DescribeMacro\fc@parse@integer@digits Macro \cs{fc@parse@integer@digits} is used to % \begin{macrocode} -\@ifundefined{fc@parse@integer@digits}{}{% +\ifcsundef{fc@parse@integer@digits}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@parse@integer@digits'}} \def\fc@parse@integer@digits#1#2\fc@nil{% @@ -1028,7 +1031,7 @@ % number.\newline \DescribeMacro\fc@read@unit \cs{fc@read@unit} just reads one digit and form an integer in % the range \([0 \intv 9]\). First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@read@unit}{}{% +\ifcsundef{fc@read@unit}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@read@unit'}} % \end{macrocode} % Arguments as follows:\def\interface{\newline\noindent @@ -1061,7 +1064,7 @@ % \DescribeMacro\fc@read@hundred Macro \cs{fc@read@hundred} is used to read a pair of digits and form an % integer in the range \([0 \intv 99]\). First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@read@hundred}{}{% +\ifcsundef{fc@read@hundred}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@read@hundred'}} % \end{macrocode} % Arguments as follows --- same interface as \cs{fc@read@unit}:\interface @@ -1084,7 +1087,7 @@ % \DescribeMacro\fc@read@thousand Macro \cs{fc@read@thousand} is used to read a trio of digits and form an % integer in the range \([0 \intv 999]\). First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@read@thousand}{}{% +\ifcsundef{fc@read@thousand}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@read@thousand'}} % \end{macrocode} @@ -1109,7 +1112,7 @@ % \DescribeMacro\fc@read@thousand Macro \cs{fc@read@myriad} is used to read a quatuor of digits and form an % integer in the range \([0 \intv 9999]\). First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@read@myriad}{}{% +\ifcsundef{fc@read@myriad}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@read@myriad'}} % \end{macrocode} @@ -1134,7 +1137,7 @@ % represented by digits \cs{fc@digit@}\meta{$n$}, with \(n\) in some interval, is zero, one, or more than one. % First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@check@nonzeros}{}{% +\ifcsundef{fc@check@nonzeros}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@check@nonzeros'}} % \end{macrocode} @@ -1246,7 +1249,7 @@ % \DescribeMacro\fc@intpart@find@last Macro \cs{fc@intpart@find@last} find the rightmost non zero digit in the % integer part. First check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@intpart@find@last}{}{% +\ifcsundef{fc@intpart@find@last}{}{% \PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@intpart@find@last'}} % \end{macrocode} @@ -1298,7 +1301,7 @@ % \#3&output macro 2: last word\\ % \end{tabularx} % \begin{macrocode} -\@ifundefined{fc@get@last@word}{}{\PackageError{fcnumparser}{Duplicate definition}{Redefinition +\ifcsundef{fc@get@last@word}{}{\PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@get@last@word'}}% \def\fc@get@last@word#1#2#3{% {% @@ -1368,7 +1371,7 @@ % \#3&output macro 2: last letter\\ % \end{tabularx} % \begin{macrocode} -\@ifundefined{fc@get@last@letter}{}{\PackageError{fcnumparser}{Duplicate definition}{Redefinition +\ifcsundef{fc@get@last@letter}{}{\PackageError{fcnumparser}{Duplicate definition}{Redefinition of macro `fc@get@last@letter'}}% \def\fc@get@last@letter#1#2#3{% {% @@ -1596,7 +1599,7 @@ % this prefix is that of Russ Rowlett I founds its documentation on Alain Lassine's site: % \url{http://www.alain.be/Boece/grands\_nombres.html}. First check that macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@@latin@cardinal@pefix}{}{% +\ifcsundef{fc@@latin@cardinal@pefix}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@latin@cardinal@pefix'}} % \end{macrocode} % Arguments as follows:\newline\noindent @@ -1771,7 +1774,7 @@ % etc\ldots I found the algorithm to derive this prefix on Alain Lassine's site: % \url{http://www.alain.be/Boece/nombres\_gargantuesques.html}. First check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@@latin@numeral@pefix}{}{% +\ifcsundef{fc@@latin@numeral@pefix}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@latin@numeral@pefix'}} % \end{macrocode} @@ -2020,7 +2023,7 @@ % This section deals with the code for |fmtcount.sty| % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{fmtcount}[2013/08/17 v2.03] +\ProvidesPackage{fmtcount}[2014/06/18 v2.04] \RequirePackage{ifthen} \RequirePackage{keyval} \RequirePackage{etoolbox} @@ -2174,17 +2177,18 @@ % \end{macrocode} %\end{macro} %\begin{option}{french} +%\changes{2.04}{2014-06-18}{swapped second and third arguments} % \begin{macrocode} \define@key{fmtcount}{french}[france]{% - \@ifundefined{datefrench}% + \@FC@iflangloaded{french}% + {% + \setkeys{fcfrench}{#1}% + }% {% \PackageError{fmtcount}% {Language `french' not defined}% {You need to load babel before loading fmtcount}% }% - {% - \setkeys{fcfrench}{#1}% - }% } % \end{macrocode} %\end{option} @@ -2242,7 +2246,7 @@ \newcommand*{\fmtcountsetoptions}[1]{% \def\fmtcount@fmtord{}% \setkeys{fmtcount}{#1}% - \@ifundefined{datefrench}{}% + \@FC@iflangloaded{french}{\ifcsundef{@ordinalstringMfrench}% {% \edef\@ordinalstringMfrench{\noexpand \csname @ordinalstringMfrench\fmtcount@french\noexpand\endcsname}% @@ -2260,7 +2264,7 @@ \csname @NumberstringMfrench\fmtcount@french\noexpand\endcsname}% \edef\@NumberstringFfrench{\noexpand \csname @NumberstringFfrench\fmtcount@french\noexpand\endcsname}% - }% + }{}}{}% \ifthenelse{\equal{\fmtcount@fmtord}{level}}% {% \renewcommand{\fmtord}[1]{##1}% @@ -2304,10 +2308,11 @@ % \begin{macrocode} \ProcessOptions % \end{macrocode} -%\begin{macro}{\@modulo} +%\begin{macro}{\@FCmodulo} %\begin{definition} -%\cs{@modulo}\marg{count reg}\marg{n} +%\cs{@FCmodulo}\marg{count reg}\marg{n} %\end{definition} +%\changes{2.04}{2014-06-18}{renamed \cs{@modulo} to \cs{@FCmodulo}} % Sets the count register to be its value modulo \meta{n}. % This is used for the % date, time, ordinal and numberstring commands. (The @@ -2315,7 +2320,7 @@ % \sty{datetime} package.) % \begin{macrocode} \newcount\@DT@modctr -\def\@modulo#1#2{% +\newcommand*{\@FCmodulo}[2]{% \@DT@modctr=#1\relax \divide \@DT@modctr by #2\relax \multiply \@DT@modctr by #2\relax @@ -2657,7 +2662,7 @@ % for \cs{FCordinal} to maintain compatibility with previous % versions. % \begin{macrocode} -\@ifundefined{ordinal} +\ifcsundef{ordinal} {\let\ordinal\FCordinal}% {% \PackageWarning{fmtcount}% @@ -3480,7 +3485,7 @@ % sets the macros to use English. % \begin{macrocode} \def\@setdef@ultfmtcount{% - \@ifundefined{@ordinalMenglish}{\FCloadlang{english}}{}% + \ifcsundef{@ordinalMenglish}{\FCloadlang{english}}{}% \def\@ordinalstringM{\@ordinalstringMenglish}% \let\@ordinalstringF=\@ordinalstringMenglish \let\@ordinalstringN=\@ordinalstringMenglish @@ -3761,11 +3766,11 @@ % argument) to an ordinal, and stores the result in the % second argument, which should be a control sequence. % \begin{macrocode} -\gdef\@ordinalMenglish#1#2{% +\newcommand*\@ordinalMenglish[2]{% \def\@fc@ord{}% \@orgargctr=#1\relax \@ordinalctr=#1% -\@modulo{\@ordinalctr}{100}% +\@FCmodulo{\@ordinalctr}{100}% \ifnum\@ordinalctr=11\relax \def\@fc@ord{th}% \else @@ -3775,7 +3780,7 @@ \ifnum\@ordinalctr=13\relax \def\@fc@ord{th}% \else - \@modulo{\@ordinalctr}{10}% + \@FCmodulo{\@ordinalctr}{10}% \ifcase\@ordinalctr \def\@fc@ord{th}% case 0 \or \def\@fc@ord{st}% case 1 @@ -3789,6 +3794,7 @@ \fi \edef#2{\number#1\relax\noexpand\fmtord{\@fc@ord}}% }% +\global\let\@ordinalMenglish\@ordinalMenglish % \end{macrocode} % There is no gender difference in English, so make feminine and % neuter the same as the masculine. @@ -3801,7 +3807,7 @@ % tens. First, the units: the argument should be between 0 and 9 % inclusive. % \begin{macrocode} -\gdef\@@unitstringenglish#1{% +\newcommand*\@@unitstringenglish[1]{% \ifcase#1\relax zero% \or one% @@ -3815,11 +3821,12 @@ \or nine% \fi }% +\global\let\@@unitstringenglish\@@unitstringenglish % \end{macrocode} % Next the tens, again the argument should be between 0 and 9 % inclusive. % \begin{macrocode} -\gdef\@@tenstringenglish#1{% +\newcommand*\@@tenstringenglish[1]{% \ifcase#1\relax \or ten% \or twenty% @@ -3832,11 +3839,12 @@ \or ninety% \fi }% +\global\let\@@tenstringenglish\@@tenstringenglish % \end{macrocode} % Finally the teens, again the argument should be between 0 and 9 % inclusive. % \begin{macrocode} -\gdef\@@teenstringenglish#1{% +\newcommand*\@@teenstringenglish[1]{% \ifcase#1\relax ten% \or eleven% @@ -3850,10 +3858,11 @@ \or nineteen% \fi }% +\global\let\@@teenstringenglish\@@teenstringenglish % \end{macrocode} % As above, but with the initial letter in uppercase. The units: % \begin{macrocode} -\gdef\@@Unitstringenglish#1{% +\newcommand*\@@Unitstringenglish[1]{% \ifcase#1\relax Zero% \or One% @@ -3867,10 +3876,11 @@ \or Nine% \fi }% +\global\let\@@Unitstringenglish\@@Unitstringenglish % \end{macrocode} % The tens: % \begin{macrocode} -\gdef\@@Tenstringenglish#1{% +\newcommand*\@@Tenstringenglish[1]{% \ifcase#1\relax \or Ten% \or Twenty% @@ -3883,10 +3893,11 @@ \or Ninety% \fi }% +\global\let\@@Tenstringenglish\@@Tenstringenglish % \end{macrocode} % The teens: % \begin{macrocode} -\gdef\@@Teenstringenglish#1{% +\newcommand*\@@Teenstringenglish[1]{% \ifcase#1\relax Ten% \or Eleven% @@ -3900,6 +3911,7 @@ \or Nineteen% \fi }% +\global\let\@@Teenstringenglish\@@Teenstringenglish % \end{macrocode} % This has changed in version 1.09, so that it now stores % the result in the second argument, but doesn't display anything. @@ -3907,7 +3919,7 @@ % documents created with older versions. (These internal macros are % not meant for use in documents.) % \begin{macrocode} -\gdef\@@numberstringenglish#1#2{% +\newcommand*\@@numberstringenglish[2]{% \ifnum#1>99999 \PackageError{fmtcount}{Out of range}% {This macro only works for values less than 100000}% @@ -3927,7 +3939,7 @@ this number}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% \@strctr=#1 \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr-\@unitstring{\@strctr}}% @@ -3935,7 +3947,7 @@ this number}% \else \@strctr=#1\relax \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% \fi @@ -3947,7 +3959,7 @@ this number}% \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ \@thousand}% \fi \fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{1000}% \divide\@strctr by 100 \ifnum\@strctr>0\relax \ifnum#1>1000\relax @@ -3957,7 +3969,7 @@ this number}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@unitstring{\@strctr}\ \@hundred}% \fi -\@strctr=#1\relax \@modulo{\@strctr}{100}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{100}% \ifnum#1>100\relax \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax @@ -3968,7 +3980,7 @@ this number}% \divide\@strctr by 10\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{10}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr-\@unitstring{\@strctr}}% @@ -3985,12 +3997,13 @@ this number}% \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% \fi \else - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% \fi \fi }% +\global\let\@@numberstringenglish\@@numberstringenglish % \end{macrocode} % All lower case version, the second argument must be a % control sequence. @@ -4016,7 +4029,7 @@ this number}% % character (except ``and''). The second argument must be a control % sequence. % \begin{macrocode} -\gdef\@NumberstringMenglish#1#2{% +\newcommand*\@NumberstringMenglish[2]{% \let\@unitstring=\@@Unitstringenglish \let\@teenstring=\@@Teenstringenglish \let\@tenstring=\@@Tenstringenglish @@ -4024,6 +4037,7 @@ this number}% \def\@andname{and}% \@@numberstringenglish{#1}{#2}% }% +\global\let\@NumberstringMenglish\@NumberstringMenglish % \end{macrocode} % There is no gender in English, so make feminine and neuter the % same @@ -4035,7 +4049,7 @@ this number}% % Define a macro that produces an ordinal as a string. Again, break % it up into units, teens and tens. First the units: % \begin{macrocode} -\gdef\@@unitthstringenglish#1{% +\newcommand*\@@unitthstringenglish[1]{% \ifcase#1\relax zeroth% \or first% @@ -4049,10 +4063,11 @@ this number}% \or ninth% \fi }% +\global\let\@@unitthstringenglish\@@unitthstringenglish % \end{macrocode} % Next the tens: % \begin{macrocode} -\gdef\@@tenthstringenglish#1{% +\newcommand*\@@tenthstringenglish[1]{% \ifcase#1\relax \or tenth% \or twentieth% @@ -4065,10 +4080,11 @@ this number}% \or ninetieth% \fi }% +\global\let\@@tenthstringenglish\@@tenthstringenglish % \end{macrocode} % The teens: % \begin{macrocode} -\gdef\@@teenthstringenglish#1{% +\newcommand*\@@teenthstringenglish[1]{% \ifcase#1\relax tenth% \or eleventh% @@ -4082,10 +4098,11 @@ this number}% \or nineteenth% \fi }% +\global\let\@@teenthstringenglish\@@teenthstringenglish % \end{macrocode} % As before, but with the first letter in upper case. The units: % \begin{macrocode} -\gdef\@@Unitthstringenglish#1{% +\newcommand*\@@Unitthstringenglish[1]{% \ifcase#1\relax Zeroth% \or First% @@ -4099,10 +4116,11 @@ this number}% \or Ninth% \fi }% +\global\let\@@Unitthstringenglish\@@Unitthstringenglish % \end{macrocode} % The tens: % \begin{macrocode} -\gdef\@@Tenthstringenglish#1{% +\newcommand*\@@Tenthstringenglish[1]{% \ifcase#1\relax \or Tenth% \or Twentieth% @@ -4115,10 +4133,11 @@ this number}% \or Ninetieth% \fi }% +\global\let\@@Tenthstringenglish\@@Tenthstringenglish % \end{macrocode} % The teens: % \begin{macrocode} -\gdef\@@Teenthstringenglish#1{% +\newcommand*\@@Teenthstringenglish[1]{% \ifcase#1\relax Tenth% \or Eleventh% @@ -4132,13 +4151,14 @@ this number}% \or Nineteenth% \fi }% +\global\let\@@Teenthstringenglish\@@Teenthstringenglish % \end{macrocode} % Again, as from version 1.09, this has been changed to take two % arguments, where the second argument is a control sequence. % The resulting text is stored in the control sequence, and nothing % is displayed. % \begin{macrocode} -\gdef\@@ordinalstringenglish#1#2{% +\newcommand*\@@ordinalstringenglish[2]{% \@strctr=#1\relax \ifnum#1>99999 \PackageError{fmtcount}{Out of range}% @@ -4163,18 +4183,18 @@ this number}% \edef#2{\@@fc@ordstr\@tenstring{\@strctr}}% \@strctr=#1\relax \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@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}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@teenstring{\@strctr}}% \fi - \@strctr=#1\relax \@modulo{\@strctr}{1000}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{1000}% \ifnum\@strctr=0\relax \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\ \@thousandth}% @@ -4186,7 +4206,7 @@ this number}% \ifnum\@strctr>0\relax \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{1000}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{1000}% \let\@@fc@ordstr#2\relax \ifnum\@strctr=0\relax \edef#2{\@@fc@ordstr\ \@thousandth}% @@ -4195,7 +4215,7 @@ this number}% \fi \fi \fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{1000}% \divide\@strctr by 100 \ifnum\@strctr>0\relax \ifnum#1>1000\relax @@ -4204,7 +4224,7 @@ this number}% \fi \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{100}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{100}% \let\@@fc@ordstr#2\relax \ifnum\@strctr=0\relax \edef#2{\@@fc@ordstr\ \@hundredth}% @@ -4212,7 +4232,7 @@ this number}% \edef#2{\@@fc@ordstr\ \@hundred}% \fi \fi -\@strctr=#1\relax \@modulo{\@strctr}{100}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{100}% \ifnum#1>100\relax \ifnum\@strctr>0\relax \let\@@fc@ordstr#2\relax @@ -4222,14 +4242,14 @@ this number}% \ifnum\@strctr>19\relax \@tmpstrctr=\@strctr \divide\@strctr by 10\relax - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@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}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0\relax \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr-\@unitthstring{\@strctr}}% @@ -4246,12 +4266,13 @@ this number}% \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}% \fi \else - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@teenthstring{\@strctr}}% \fi \fi }% +\global\let\@@ordinalstringenglish\@@ordinalstringenglish % \end{macrocode} % All lower case version. Again, the second argument must be a % control sequence in which the resulting text is stored. @@ -4348,9 +4369,9 @@ this number}% \ProvidesFCLanguage{french}[2012/10/24]% % \end{macrocode} % Package \styfmt{fcprefix} is needed to format the prefix \meta{$n$} in \meta{$n$}illion or -% \meta{$n$}illiard. Big numbers were developped based reference: +% \meta{$n$}illiard. Big numbers were developped based on reference: % \uref{http://www.alain.be/boece/noms\_de\_nombre.html} -% (Package now loaded by \sty{fmtcount}) +% (Package now loaded by \styfmt{fmtcount}) % % Options for controlling plural mark. First of all we define some temporary macro \cs{fc@french@set@plural} % in order to factorize code that defines an plural mark option:\newline\noindent @@ -4984,12 +5005,13 @@ z\'ero% % \meta{$n$}illiard, \meta{$n$}illion, mil, cent or vingt, whichever is applicable. First check that the macro % is not yet defined. % \begin{macrocode} -\@ifundefined{fc@@do@plural@mark}{}{\PackageError{fmtcount}{Duplicate definition}{Redefinition of macro +\ifcsundef{fc@@do@plural@mark}{}% +{\PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@do@plural@mark'}} % \end{macrocode} % Arguments as follows:\newline % \begin{tabularx}{\linewidth}{@{}>{\raggedleft\arraybackslash\ttfamily}rX@{}} -% \#1&plural mark, `s' in general, but for mil it is \cs{fc@frenchoptions@mil@plural@mark1}\\ +% \#1&plural mark, `s' in general, but for mil it is \cs{fc@frenchoptions@mil@plural@mark}\\ % \end{tabularx} % Implicit arguments as follows:\newline % \begin{tabularx}{\linewidth}{@{}>{\raggedleft\arraybackslash\ttfamily}rX@{}} @@ -5044,7 +5066,7 @@ z\'ero% % \DescribeMacro\fc@@nbrstr@Fpreamble Macro \cs{fc@@nbrstr@Fpreamble} do the necessary preliminaries before % formatting a cardinal with feminine gender. % \begin{macrocode} -\@ifundefined{fc@@nbrstr@Fpreamble}{}{% +\ifcsundef{fc@@nbrstr@Fpreamble}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@nbrstr@Fpreamble'}} % \end{macrocode} @@ -5076,7 +5098,7 @@ z\'ero% % powers of ten with long scale convention. The long scale convention is correct for French and elsewhere in % Europe. First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@@pot@longscalefrench}{}{% +\ifcsundef{fc@@pot@longscalefrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@pot@longscalefrench'}} % \end{macrocode} @@ -5223,7 +5245,7 @@ z\'ero% % powers of ten with short scale convention. This convention is the US convention and is not correct for % French and elsewhere in Europe. First we check that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@@pot@shortscalefrench}{}{% +\ifcsundef{fc@@pot@shortscalefrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@pot@shortscalefrench'}} % \end{macrocode} @@ -5302,7 +5324,7 @@ z\'ero% % power of tens that are of the form ``million de milliards de milliards'' for \(10^{24}\). First we check % that the macro is not yet defined. % \begin{macrocode} -\@ifundefined{fc@@pot@recursivefrench}{}{% +\ifcsundef{fc@@pot@recursivefrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@@pot@recursivefrench'}} % \end{macrocode} @@ -5421,7 +5443,7 @@ z\'ero% % digits with weight \(w' > w+2\) that have already been formatted. First check that the macro is not yet % defined. % \begin{macrocode} -\@ifundefined{fc@muladdfrench}{}{% +\ifcsundef{fc@muladdfrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@muladdfrench'}} % \end{macrocode} @@ -5515,7 +5537,7 @@ z\'ero% % \DescribeMacro\fc@lthundredstringfrench Macro \cs{fc@lthundredstringfrench} is used to format a number in % interval \([0 \intv 99]\). First we check that it is not already defined. % \begin{macrocode} -\@ifundefined{fc@lthundredstringfrench}{}{% +\ifcsundef{fc@lthundredstringfrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@lthundredstringfrench'}} % \end{macrocode} @@ -5618,7 +5640,7 @@ z\'ero% % \DescribeMacro\fc@ltthousandstringfrench Macro \cs{fc@ltthousandstringfrench} is used to format a number in % interval \([0 \intv 999]\). First we check that it is not already defined. % \begin{macrocode} -\@ifundefined{fc@ltthousandstringfrench}{}{% +\ifcsundef{fc@ltthousandstringfrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `fc@ltthousandstringfrench'}} % \end{macrocode} @@ -5699,7 +5721,7 @@ z\'ero% % \DescribeMacro\@@numberstringfrench Macro \cs{@@numberstringfrench} is the main engine for formatting % cadinal numbers in French. First we check that the control sequence is not yet defined. % \begin{macrocode} -\@ifundefined{@@numberstringfrench}{}{% +\ifcsundef{@@numberstringfrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `@@numberstringfrench'}} % \end{macrocode} % Arguments are as follows:\newline\noindent @@ -5798,7 +5820,7 @@ z\'ero% % \DescribeMacro\@@ordinalstringfrench Macro \cs{@@ordinalstringfrench} is the main engine for formatting % ordinal numbers in French. First check it is not yet defined. % \begin{macrocode} -\@ifundefined{@@ordinalstringfrench}{}{% +\ifcsundef{@@ordinalstringfrench}{}{% \PackageError{fmtcount}{Duplicate definition}{Redefinition of macro `@@ordinalstringfrench'}} % \end{macrocode} @@ -5977,7 +5999,7 @@ z\'ero% % German definitions (thank you to K. H. Fricke for supplying % this information) % \begin{macrocode} -\ProvidesFCLanguage{german}[2013/08/17]% +\ProvidesFCLanguage{german}[2014/06/09]% % \end{macrocode} % Define macro that converts a number or count register (first % argument) to an ordinal, and stores the result in the @@ -6008,10 +6030,10 @@ z\'ero% % Units (argument must be a number from 0 to 9, 1 on its own (eins) % is dealt with separately): % \begin{macrocode} -\gdef\@@unitstringgerman#1{% +\newcommand*\@@unitstringgerman[1]{% \ifcase#1% null% - \or eins% + \or ein% \or zwei% \or drei% \or vier% @@ -6022,10 +6044,11 @@ z\'ero% \or neun% \fi }% +\global\let\@@unitstringgerman\@@unitstringgerman % \end{macrocode} % Tens (argument must go from 1 to 10): % \begin{macrocode} -\gdef\@@tenstringgerman#1{% +\newcommand*\@@tenstringgerman[1]{% \ifcase#1% \or zehn% \or zwanzig% @@ -6039,6 +6062,7 @@ z\'ero% \or einhundert% \fi }% +\global\let\@@tenstringgerman\@@tenstringgerman % \end{macrocode} % |\einhundert| is set to |einhundert| by default, user can % redefine this command to just |hundert| if required, similarly @@ -6051,7 +6075,7 @@ z\'ero% % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@teenstringgerman#1{% +\newcommand*\@@teenstringgerman[1]{% \ifcase#1% zehn% \or elf% @@ -6065,6 +6089,7 @@ z\'ero% \or neunzehn% \fi }% +\global\let\@@teenstringgerman\@@teenstringgerman % \end{macrocode} % The results are stored in the second argument, but doesn't % display anything. @@ -6170,7 +6195,7 @@ z\'ero% %\changes{2.0}{2012-09-25}{fixed spelling mistake (correction %provided by Dominik Wa\ss enhoven)} % \begin{macrocode} -\gdef\@@unitthstringMgerman#1{% +\newcommand*\@@unitthstringMgerman[1]{% \ifcase#1% nullter% \or erster% @@ -6184,10 +6209,11 @@ z\'ero% \or neunter% \fi }% +\global\let\@@unitthstringMgerman\@@unitthstringMgerman % \end{macrocode} % Tens: % \begin{macrocode} -\gdef\@@tenthstringMgerman#1{% +\newcommand*\@@tenthstringMgerman[1]{% \ifcase#1% \or zehnter% \or zwanzigster% @@ -6200,10 +6226,11 @@ z\'ero% \or neunzigster% \fi }% +\global\let\@@tenthstringMgerman\@@tenthstringMgerman % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@teenthstringMgerman#1{% +\newcommand*\@@teenthstringMgerman[1]{% \ifcase#1% zehnter% \or elfter% @@ -6217,10 +6244,11 @@ z\'ero% \or neunzehnter% \fi }% +\global\let\@@teenthstringMgerman\@@teenthstringMgerman % \end{macrocode} % Units (feminine): % \begin{macrocode} -\gdef\@@unitthstringFgerman#1{% +\newcommand*\@@unitthstringFgerman[1]{% \ifcase#1% nullte% \or erste% @@ -6234,10 +6262,11 @@ z\'ero% \or neunte% \fi }% +\global\let\@@unitthstringFgerman\@@unitthstringFgerman % \end{macrocode} % Tens (feminine): % \begin{macrocode} -\gdef\@@tenthstringFgerman#1{% +\newcommand*\@@tenthstringFgerman[1]{% \ifcase#1% \or zehnte% \or zwanzigste% @@ -6250,10 +6279,11 @@ z\'ero% \or neunzigste% \fi }% +\global\let\@@tenthstringFgerman\@@tenthstringFgerman % \end{macrocode} % Teens (feminine) % \begin{macrocode} -\gdef\@@teenthstringFgerman#1{% +\newcommand*\@@teenthstringFgerman[1]{% \ifcase#1% zehnte% \or elfte% @@ -6267,12 +6297,13 @@ z\'ero% \or neunzehnte% \fi }% +\global\let\@@teenthstringFgerman\@@teenthstringFgerman % \end{macrocode} % Units (neuter): %\changes{2.0}{2012-09-25}{fixed spelling mistake (correction %provided by Dominik Wa\ss enhoven)} % \begin{macrocode} -\gdef\@@unitthstringNgerman#1{% +\newcommand*\@@unitthstringNgerman[1]{% \ifcase#1% nulltes% \or erstes% @@ -6286,10 +6317,11 @@ z\'ero% \or neuntes% \fi }% +\global\let\@@unitthstringNgerman\@@unitthstringNgerman % \end{macrocode} % Tens (neuter): % \begin{macrocode} -\gdef\@@tenthstringNgerman#1{% +\newcommand*\@@tenthstringNgerman[1]{% \ifcase#1% \or zehntes% \or zwanzigstes% @@ -6302,10 +6334,11 @@ z\'ero% \or neunzigstes% \fi }% +\global\let\@@tenthstringNgerman\@@tenthstringNgerman % \end{macrocode} % Teens (neuter) % \begin{macrocode} -\gdef\@@teenthstringNgerman#1{% +\newcommand*\@@teenthstringNgerman[1]{% \ifcase#1% zehntes% \or elftes% @@ -6319,20 +6352,21 @@ z\'ero% \or neunzehntes% \fi }% +\global\let\@@teenthstringNgerman\@@teenthstringNgerman % \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} -\gdef\@@numberunderhundredgerman#1#2{% +\newcommand*\@@numberunderhundredgerman[2]{% \ifnum#1<10\relax \ifnum#1>0\relax \eappto#2{\@unitstring{#1}}% \fi \else \@tmpstrctr=#1\relax - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \ifnum#1<20\relax \eappto#2{\@teenstring{\@tmpstrctr}}% \else @@ -6346,12 +6380,13 @@ z\'ero% \fi \fi }% +\global\let\@@numberunderhundredgerman\@@numberunderhundredgerman % \end{macrocode} % This stores the results in the second argument % (which must be a control % sequence), but it doesn't display anything. % \begin{macrocode} -\gdef\@@numberstringgerman#1#2{% +\newcommand*\@@numberstringgerman[2]{% \ifnum#1>99999\relax \PackageError{fmtcount}{Out of range}% {This macro only works for values less than 100000}% @@ -6380,7 +6415,7 @@ z\'ero% \fi \fi \@strctr=#1\relax -\@modulo{\@strctr}{1000}% +\@FCmodulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>1\relax % \end{macrocode} @@ -6406,7 +6441,7 @@ z\'ero% \fi \fi \@strctr=#1\relax -\@modulo{\@strctr}{100}% +\@FCmodulo{\@strctr}{100}% \ifnum#1=0\relax \def#2{null}% \else @@ -6417,15 +6452,16 @@ z\'ero% \fi \fi }% +\global\let\@@numberstringgerman\@@numberstringgerman % \end{macrocode} % As above, but for ordinals % \begin{macrocode} -\gdef\@@numberunderhundredthgerman#1#2{% +\newcommand*\@@numberunderhundredthgerman[2]{% \ifnum#1<10\relax \eappto#2{\@unitthstring{#1}}% \else \@tmpstrctr=#1\relax - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \ifnum#1<20\relax \eappto#2{\@teenthstring{\@tmpstrctr}}% \else @@ -6439,9 +6475,10 @@ z\'ero% \fi \fi }% +\global\let\@@numberunderhundredthgerman\@@numberunderhundredthgerman % \end{macrocode} % \begin{macrocode} -\gdef\@@ordinalstringgerman#1#2{% +\newcommand*\@@ordinalstringgerman[2]{% \ifnum#1>99999\relax \PackageError{fmtcount}{Out of range}% {This macro only works for values less than 100000}% @@ -6463,7 +6500,7 @@ z\'ero% % \end{macrocode} % is that it, or is there more? % \begin{macrocode} - \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{1000}% + \@tmpstrctr=#1\relax \@FCmodulo{\@tmpstrctr}{1000}% \ifnum\@tmpstrctr=0\relax \eappto#2{\@thousandth}% \else @@ -6482,14 +6519,14 @@ z\'ero% \fi \fi \@strctr=#1\relax -\@modulo{\@strctr}{1000}% +\@FCmodulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>1\relax % \end{macrocode} % now dealing with number in range [200,999] % is that it, or is there more? % \begin{macrocode} - \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}% + \@tmpstrctr=#1\relax \@FCmodulo{\@tmpstrctr}{100}% \ifnum\@tmpstrctr=0\relax \ifnum\@strctr=1\relax \eappto#2{\@hundredth}% @@ -6505,7 +6542,7 @@ z\'ero% % dealing with number in range [100,199] % is that it, or is there more? % \begin{macrocode} - \@tmpstrctr=#1\relax \@modulo{\@tmpstrctr}{100}% + \@tmpstrctr=#1\relax \@FCmodulo{\@tmpstrctr}{100}% \ifnum\@tmpstrctr=0\relax \eappto#2{\@hundredth}% \else @@ -6518,11 +6555,12 @@ z\'ero% \fi \fi \@strctr=#1\relax -\@modulo{\@strctr}{100}% +\@FCmodulo{\@strctr}{100}% \ifthenelse{\@strctr=0 \and #1>0}{}{% \@@numberunderhundredthgerman{\@strctr}{#2}% }% }% +\global\let\@@ordinalstringgerman\@@ordinalstringgerman % \end{macrocode} % Load fc-germanb.def if not already loaded % \begin{macrocode} @@ -6722,29 +6760,31 @@ z\'ero% % \subsubsection{fc-portuges.def} % Portuguse definitions % \begin{macrocode} -\ProvidesFCLanguage{portuges}[2013/08/17]% +\ProvidesFCLanguage{portuges}[2014/06/09]% % \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 should be a control sequence. Masculine: % \begin{macrocode} -\gdef\@ordinalMportuges#1#2{% +\newcommand*\@ordinalMportuges[2]{% \ifnum#1=0\relax \edef#2{\number#1}% \else \edef#2{\number#1\relax\noexpand\fmtord{o}}% \fi }% +\global\let\@ordinalMportuges\@ordinalMportuges % \end{macrocode} % Feminine: % \begin{macrocode} -\gdef\@ordinalFportuges#1#2{% +\newcommand*\@ordinalFportuges[2]{% \ifnum#1=0\relax \edef#2{\number#1}% \else \edef#2{\number#1\relax\noexpand\fmtord{a}}% \fi }% +\global\let\@ordinalFportuges\@ordinalFportuges % \end{macrocode} % Make neuter same as masculine: % \begin{macrocode} @@ -6754,8 +6794,10 @@ z\'ero% % split it up into units, tens, teens and hundreds. Units (argument % must % be a number from 0 to 9): +%\changes{2.04}{2014-06-09}{Fixed bug that had incorrect number of +%parameters specified} % \begin{macrocode} -\gdef\@@unitstringportuges#1#2{% +\newcommand*\@@unitstringportuges[1]{% \ifcase#1\relax zero% \or um% @@ -6769,10 +6811,11 @@ z\'ero% \or nove% \fi }% +\global\let\@@unitstringportuges\@@unitstringportuges % \end{macrocode} % As above, but for feminine: % \begin{macrocode} -\gdef\@@unitstringFportuges#1{% +\newcommand*\@@unitstringFportuges[1]{% \ifcase#1\relax zero% \or uma% @@ -6786,10 +6829,11 @@ z\'ero% \or nove% \fi }% +\global\let\@@unitstringFportuges\@@unitstringFportuges % \end{macrocode} % Tens (argument must be a number from 0 to 10): % \begin{macrocode} -\gdef\@@tenstringportuges#1{% +\newcommand*\@@tenstringportuges[1]{% \ifcase#1\relax \or dez% \or vinte% @@ -6803,10 +6847,11 @@ z\'ero% \or cem% \fi }% +\global\let\@@tenstringportuges\@@tenstringportuges % \end{macrocode} % Teens (argument must be a number from 0 to 9): % \begin{macrocode} -\gdef\@@teenstringportuges#1{% +\newcommand*\@@teenstringportuges[1]{% \ifcase#1\relax dez% \or onze% @@ -6820,10 +6865,11 @@ z\'ero% \or dezenove% \fi }% +\global\let\@@teenstringportuges\@@teenstringportuges % \end{macrocode} % Hundreds: % \begin{macrocode} -\gdef\@@hundredstringportuges#1{% +\newcommand*\@@hundredstringportuges[1]{% \ifcase#1\relax \or cento% \or duzentos% @@ -6836,10 +6882,11 @@ z\'ero% \or novecentos% \fi }% +\global\let\@@hundredstringportuges\@@hundredstringportuges % \end{macrocode} % Hundreds (feminine): % \begin{macrocode} -\gdef\@@hundredstringFportuges#1{% +\newcommand*\@@hundredstringFportuges[1]{% \ifcase#1\relax \or cento% \or duzentas% @@ -6852,10 +6899,11 @@ z\'ero% \or novecentas% \fi }% +\global\let\@@hundredstringFportuges\@@hundredstringFportuges % \end{macrocode} % Units (initial letter in upper case): % \begin{macrocode} -\gdef\@@Unitstringportuges#1{% +\newcommand*\@@Unitstringportuges[1]{% \ifcase#1\relax Zero% \or Um% @@ -6869,10 +6917,11 @@ z\'ero% \or Nove% \fi }% +\global\let\@@Unitstringportuges\@@Unitstringportuges % \end{macrocode} % As above, but feminine: % \begin{macrocode} -\gdef\@@UnitstringFportuges#1{% +\newcommand*\@@UnitstringFportuges[1]{% \ifcase#1\relax Zera% \or Uma% @@ -6886,10 +6935,11 @@ z\'ero% \or Nove% \fi }% +\global\let\@@UnitstringFportuges\@@UnitstringFportuges % \end{macrocode} % Tens (with initial letter in upper case): % \begin{macrocode} -\gdef\@@Tenstringportuges#1{% +\newcommand*\@@Tenstringportuges[1]{% \ifcase#1\relax \or Dez% \or Vinte% @@ -6903,10 +6953,11 @@ z\'ero% \or Cem% \fi }% +\global\let\@@Tenstringportuges\@@Tenstringportuges % \end{macrocode} % Teens (with initial letter in upper case): % \begin{macrocode} -\gdef\@@Teenstringportuges#1{% +\newcommand*\@@Teenstringportuges[1]{% \ifcase#1\relax Dez% \or Onze% @@ -6920,10 +6971,11 @@ z\'ero% \or Dezenove% \fi }% +\global\let\@@Teenstringportuges\@@Teenstringportuges % \end{macrocode} % Hundreds (with initial letter in upper case): % \begin{macrocode} -\gdef\@@Hundredstringportuges#1{% +\newcommand*\@@Hundredstringportuges[1]{% \ifcase#1\relax \or Cento% \or Duzentos% @@ -6936,10 +6988,11 @@ z\'ero% \or Novecentos% \fi }% +\global\let\@@Hundredstringportuges\@@Hundredstringportuges % \end{macrocode} % As above, but feminine: % \begin{macrocode} -\gdef\@@HundredstringFportuges#1{% +\newcommand*\@@HundredstringFportuges[1]{% \ifcase#1\relax \or Cento% \or Duzentas% @@ -6952,6 +7005,7 @@ z\'ero% \or Novecentas% \fi }% +\global\let\@@HundredstringFportuges\@@HundredstringFportuges % \end{macrocode} % This has changed in version 1.08, so that it now stores % the result in the second argument, but doesn't display @@ -7080,7 +7134,7 @@ z\'ero% % In order to do the ordinals, split into units, teens, tens % and hundreds. Units: % \begin{macrocode} -\gdef\@@unitthstringportuges#1{% +\newcommand*\@@unitthstringportuges[1]{% \ifcase#1\relax zero% \or primeiro% @@ -7094,10 +7148,11 @@ z\'ero% \or nono% \fi }% +\global\let\@@unitthstringportuges\@@unitthstringportuges % \end{macrocode} % Tens: % \begin{macrocode} -\gdef\@@tenthstringportuges#1{% +\newcommand*\@@tenthstringportuges[1]{% \ifcase#1\relax \or d\'ecimo% \or vig\'esimo% @@ -7110,19 +7165,21 @@ z\'ero% \or nonag\'esimo% \fi }% +\global\let\@@tenthstringportuges\@@tenthstringportuges % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@teenthstringportuges#1{% +\newcommand*\@@teenthstringportuges[1]{% \@tenthstring{1}% \ifnum#1>0\relax -\@unitthstring{#1}% \fi }% +\global\let\@@teenthstringportuges\@@teenthstringportuges % \end{macrocode} % Hundreds: % \begin{macrocode} -\gdef\@@hundredthstringportuges#1{% +\newcommand*\@@hundredthstringportuges[1]{% \ifcase#1\relax \or cent\'esimo% \or ducent\'esimo% @@ -7135,10 +7192,11 @@ z\'ero% \or nongent\'esimo% \fi }% +\global\let\@@hundredthstringportuges\@@hundredthstringportuges % \end{macrocode} % Units (feminine): % \begin{macrocode} -\gdef\@@unitthstringFportuges#1{% +\newcommand*\@@unitthstringFportuges[1]{% \ifcase#1\relax zero% \or primeira% @@ -7152,10 +7210,11 @@ z\'ero% \or nona% \fi }% +\global\let\@@unitthstringFportuges\@@unitthstringFportuges % \end{macrocode} % Tens (feminine): % \begin{macrocode} -\gdef\@@tenthstringFportuges#1{% +\newcommand*\@@tenthstringFportuges[1]{% \ifcase#1\relax \or d\'ecima% \or vig\'esima% @@ -7168,10 +7227,11 @@ z\'ero% \or nonag\'esima% \fi }% +\global\let\@@tenthstringFportuges\@@tenthstringFportuges % \end{macrocode} % Hundreds (feminine): % \begin{macrocode} -\gdef\@@hundredthstringFportuges#1{% +\newcommand*\@@hundredthstringFportuges[1]{% \ifcase#1\relax \or cent\'esima% \or ducent\'esima% @@ -7184,10 +7244,11 @@ z\'ero% \or nongent\'esima% \fi }% +\global\let\@@hundredthstringFportuges\@@hundredthstringFportuges % \end{macrocode} % As above, but with initial letter in upper case. Units: % \begin{macrocode} -\gdef\@@Unitthstringportuges#1{% +\newcommand*\@@Unitthstringportuges[1]{% \ifcase#1\relax Zero% \or Primeiro% @@ -7201,10 +7262,11 @@ z\'ero% \or Nono% \fi }% +\global\let\@@Unitthstringportuges\@@Unitthstringportuges % \end{macrocode} % Tens: % \begin{macrocode} -\gdef\@@Tenthstringportuges#1{% +\newcommand*\@@Tenthstringportuges[1]{% \ifcase#1\relax \or D\'ecimo% \or Vig\'esimo% @@ -7217,10 +7279,11 @@ z\'ero% \or Nonag\'esimo% \fi }% +\global\let\@@Tenthstringportuges\@@Tenthstringportuges % \end{macrocode} % Hundreds: % \begin{macrocode} -\gdef\@@Hundredthstringportuges#1{% +\newcommand*\@@Hundredthstringportuges[1]{% \ifcase#1\relax \or Cent\'esimo% \or Ducent\'esimo% @@ -7233,10 +7296,11 @@ z\'ero% \or Nongent\'esimo% \fi }% +\global\let\@@Hundredthstringportuges\@@Hundredthstringportuges % \end{macrocode} % As above, but feminine. Units: % \begin{macrocode} -\gdef\@@UnitthstringFportuges#1{% +\newcommand*\@@UnitthstringFportuges[1]{% \ifcase#1\relax Zera% \or Primeira% @@ -7250,10 +7314,11 @@ z\'ero% \or Nona% \fi }% +\global\let\@@UnitthstringFportuges\@@UnitthstringFportuges % \end{macrocode} % Tens (feminine); % \begin{macrocode} -\gdef\@@TenthstringFportuges#1{% +\newcommand*\@@TenthstringFportuges[1]{% \ifcase#1\relax \or D\'ecima% \or Vig\'esima% @@ -7266,10 +7331,11 @@ z\'ero% \or Nonag\'esima% \fi }% +\global\let\@@TenthstringFportuges\@@TenthstringFportuges % \end{macrocode} % Hundreds (feminine): % \begin{macrocode} -\gdef\@@HundredthstringFportuges#1{% +\newcommand*\@@HundredthstringFportuges[1]{% \ifcase#1\relax \or Cent\'esima% \or Ducent\'esima% @@ -7282,6 +7348,7 @@ z\'ero% \or Nongent\'esima% \fi }% +\global\let\@@HundredthstringFportuges\@@HundredthstringFportuges % \end{macrocode} % This has changed in version 1.09, so that it now stores % the result in the second argument (a control sequence), but it @@ -7289,120 +7356,121 @@ z\'ero% % it shouldn't affect documents created with older versions. % (These internal macros are not meant for use in documents.) % \begin{macrocode} -\gdef\@@numberstringportuges#1#2{% -\ifnum#1>99999 -\PackageError{fmtcount}{Out of range}% -{This macro only works for values less than 100000}% +\newcommand*\@@numberstringportuges[2]{% +\ifnum#1>99999\relax + \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 + \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>9 +\ifnum\@strctr>9\relax % \end{macrocode} % \#1 is greater or equal to 10000 % \begin{macrocode} - \divide\@strctr by 10 + \divide\@strctr by 10\relax \ifnum\@strctr>1\relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% + \protected@edef#2{\@@fc@numstr\@tenstring{\@strctr}}% \@strctr=#1 \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0 \ifnum\@strctr=1\relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname}% + \protected@edef#2{\@@fc@numstr\ \@andname}% \fi \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@unitstring{\@strctr}}% + \protected@edef#2{\@@fc@numstr\ \@unitstring{\@strctr}}% \fi \else \@strctr=#1\relax \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% + \protected@edef#2{\@@fc@numstr\@teenstring{\@strctr}}% \fi \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@thousand}% + \protected@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}\ }% + \protected@edef#2{\@@fc@numstr\@unitstring{\@strctr}\ }% \fi \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@thousand}% + \protected@edef#2{\@@fc@numstr\@thousand}% \fi \fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>0\relax \ifnum#1>1000 \relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ }% + \protected@edef#2{\@@fc@numstr\ }% \fi \@tmpstrctr=#1\relax - \@modulo{\@tmpstrctr}{1000}% + \@FCmodulo{\@tmpstrctr}{1000}% \let\@@fc@numstr#2\relax \ifnum\@tmpstrctr=100\relax - \edef#2{\@@fc@numstr\@tenstring{10}}% + \protected@edef#2{\@@fc@numstr\@tenstring{10}}% \else - \edef#2{\@@fc@numstr\@hundredstring{\@strctr}}% + \protected@edef#2{\@@fc@numstr\@hundredstring{\@strctr}}% \fi% \fi -\@strctr=#1\relax \@modulo{\@strctr}{100}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{100}% \ifnum#1>100\relax \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname\ }% + \protected@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}% + \protected@edef#2{\@@fc@numstr\@tenstring{\@strctr}}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0 \ifnum\@strctr=1\relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname}% + \protected@edef#2{\@@fc@numstr\ \@andname}% \else \ifnum#1>100\relax \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@andname}% + \protected@edef#2{\@@fc@numstr\ \@andname}% \fi \fi \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\ \@unitstring{\@strctr}}% + \protected@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}}% + \protected@edef#2{\@@fc@numstr\@unitstring{\@strctr}}% \fi - \else%(>0,<10) + \else %(>0,<10) \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@unitstring{\@strctr}}% + \protected@edef#2{\@@fc@numstr\@unitstring{\@strctr}}% \fi \else%>10 - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax - \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% + \protected@edef#2{\@@fc@numstr\@teenstring{\@strctr}}% \fi \fi }% +\global\let\@@numberstringportuges\@@numberstringportuges % \end{macrocode} % As above, but for ordinals. % \begin{macrocode} -\gdef\@@ordinalstringportuges#1#2{% +\newcommand*\@@ordinalstringportuges[2]{% \@strctr=#1\relax \ifnum#1>99999 \PackageError{fmtcount}{Out of range}% @@ -7421,72 +7489,73 @@ this number}% \ifnum\@strctr>9\relax \@tmpstrctr=\@strctr \ifnum\@strctr<20 - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@teenthstring{\@tmpstrctr}}% + \protected@edef#2{\@@fc@ordstr\@teenthstring{\@tmpstrctr}}% \else \divide\@tmpstrctr by 10\relax \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}% + \protected@edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}% \@tmpstrctr=\@strctr - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \ifnum\@tmpstrctr>0\relax \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitthstring{\@tmpstrctr}}% + \protected@edef#2{\@@fc@ordstr\@unitthstring{\@tmpstrctr}}% \fi \fi \else \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitstring{\@strctr}}% + \protected@edef#2{\@@fc@ordstr\@unitstring{\@strctr}}% \fi \fi \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@thousandth}% + \protected@edef#2{\@@fc@ordstr\@thousandth}% \fi \@strctr=#1\relax -\@modulo{\@strctr}{1000}% +\@FCmodulo{\@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-}% + \protected@edef#2{\@@fc@ordstr-}% \fi \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@hundredthstring{\@tmpstrctr}}% + \protected@edef#2{\@@fc@ordstr\@hundredthstring{\@tmpstrctr}}% \fi -\@modulo{\@strctr}{100}% +\@FCmodulo{\@strctr}{100}% \ifnum#1>99\relax \ifnum\@strctr>0\relax \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr-}% + \protected@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}}% + \protected@edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}% \@tmpstrctr=\@strctr - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \ifnum\@tmpstrctr>0\relax \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr-\@unitthstring{\@tmpstrctr}}% + \protected@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}}% + \protected@edef#2{\@@fc@ordstr\@unitstring{0}}% \fi \else \let\@@fc@ordstr#2\relax - \edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}% + \protected@edef#2{\@@fc@ordstr\@unitthstring{\@strctr}}% \fi \fi \fi \fi }% +\global\let\@@ordinalstringportuges\@@ordinalstringportuges % \end{macrocode} %\iffalse % \begin{macrocode} @@ -7495,6 +7564,43 @@ this number}% %\fi %\iffalse % \begin{macrocode} +%<*fc-portuguese.def> +% \end{macrocode} +%\fi +% \subsubsection{fc-portuguese.def} +% \begin{macrocode} +\ProvidesFCLanguage{portuguese}[2014/06/09]% +% \end{macrocode} +% Load fc-portuges.def if not already loaded +% \begin{macrocode} +\FCloadlang{portuges}% +% \end{macrocode} +% Set |portuguese| to be equivalent to |portuges|. +% \begin{macrocode} +\global\let\@ordinalMportuguese=\@ordinalMportuges +\global\let\@ordinalFportuguese=\@ordinalFportuges +\global\let\@ordinalNportuguese=\@ordinalNportuges +\global\let\@numberstringMportuguese=\@numberstringMportuges +\global\let\@numberstringFportuguese=\@numberstringFportuges +\global\let\@numberstringNportuguese=\@numberstringNportuges +\global\let\@NumberstringMportuguese=\@NumberstringMportuges +\global\let\@NumberstringFportuguese=\@NumberstringFportuges +\global\let\@NumberstringNportuguese=\@NumberstringNportuges +\global\let\@ordinalstringMportuguese=\@ordinalstringMportuges +\global\let\@ordinalstringFportuguese=\@ordinalstringFportuges +\global\let\@ordinalstringNportuguese=\@ordinalstringNportuges +\global\let\@OrdinalstringMportuguese=\@OrdinalstringMportuges +\global\let\@OrdinalstringFportuguese=\@OrdinalstringFportuges +\global\let\@OrdinalstringNportuguese=\@OrdinalstringNportuges +% \end{macrocode} + +%\iffalse +% \begin{macrocode} +%</fc-portuguese.def> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*fc-spanish.def> % \end{macrocode} %\fi @@ -7508,15 +7614,17 @@ this number}% % second argument, which must be a control sequence. % Masculine: % \begin{macrocode} -\gdef\@ordinalMspanish#1{% +\newcommand*\@ordinalMspanish[2]{% \edef#2{\number#1\relax\noexpand\fmtord{o}}% }% +\global\let\@ordinalMspanish\@ordinalMspanish % \end{macrocode} % Feminine: % \begin{macrocode} -\gdef\@ordinalFspanish}[2]{% +\newcommand{\@ordinalFspanish}[2]{% \edef#2{\number#1\relax\noexpand\fmtord{a}}% }% +\global\let\@ordinalFspanish\@ordinalFspanish % \end{macrocode} % Make neuter same as masculine: % \begin{macrocode} @@ -7526,7 +7634,7 @@ this number}% % break it up into units, tens, teens, twenties and hundreds. % Units (argument must be a number from 0 to 9): % \begin{macrocode} -\gdef\@@unitstringspanish#1{% +\newcommand*\@@unitstringspanish[1]{% \ifcase#1\relax cero% \or uno% @@ -7540,10 +7648,11 @@ this number}% \or nueve% \fi }% +\global\let\@@unitstringspanish\@@unitstringspanish % \end{macrocode} % Feminine: % \begin{macrocode} -\gdef\@@unitstringFspanish#1{% +\newcommand*\@@unitstringFspanish[1]{% \ifcase#1\relax cera% \or una% @@ -7557,12 +7666,13 @@ this number}% \or nueve% \fi }% +\global\let\@@unitstringFspanish\@@unitstringFspanish % \end{macrocode} % Tens (argument must go from 1 to 10): %\changes{2.0}{2012-06-18}{fixed spelling mistake (correction %provided by Fernando Maldonado)} % \begin{macrocode} -\gdef\@@tenstringspanish#1{% +\newcommand*\@@tenstringspanish[1]{% \ifcase#1\relax \or diez% \or veinte% @@ -7576,10 +7686,11 @@ this number}% \or cien% \fi }% +\global\let\@@tenstringspanish\@@tenstringspanish % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@teenstringspanish#1{% +\newcommand*\@@teenstringspanish[1]{% \ifcase#1\relax diez% \or once% @@ -7593,10 +7704,11 @@ this number}% \or diecinueve% \fi }% +\global\let\@@teenstringspanish\@@teenstringspanish % \end{macrocode} % Twenties: % \begin{macrocode} -\gdef\@@twentystringspanish#1{% +\newcommand*\@@twentystringspanish[1]{% \ifcase#1\relax veinte% \or veintiuno% @@ -7610,10 +7722,11 @@ this number}% \or veintinueve% \fi }% +\global\let\@@twentystringspanish\@@twentystringspanish % \end{macrocode} % Feminine form: % \begin{macrocode} -\gdef\@@twentystringFspanish#1{% +\newcommand*\@@twentystringFspanish[1]{% \ifcase#1\relax veinte% \or veintiuna% @@ -7627,10 +7740,11 @@ this number}% \or veintinueve% \fi }% +\global\let\@@twentystringFspanish\@@twentystringFspanish % \end{macrocode} % Hundreds: % \begin{macrocode} -\gdef\@@hundredstringspanish#1{% +\newcommand*\@@hundredstringspanish[1]{% \ifcase#1\relax \or ciento% \or doscientos% @@ -7643,10 +7757,11 @@ this number}% \or novecientos% \fi }% +\global\let\@@hundredstringspanish\@@hundredstringspanish % \end{macrocode} % Feminine form: % \begin{macrocode} -\gdef\@@hundredstringFspanish#1{% +\newcommand*\@@hundredstringFspanish[1]{% \ifcase#1\relax \or cienta% \or doscientas% @@ -7659,10 +7774,11 @@ this number}% \or novecientas% \fi }% +\global\let\@@hundredstringFspanish\@@hundredstringFspanish % \end{macrocode} % As above, but with initial letter uppercase: % \begin{macrocode} -\gdef\@@Unitstringspanish#1{% +\newcommand*\@@Unitstringspanish[1]{% \ifcase#1\relax Cero% \or Uno% @@ -7676,10 +7792,11 @@ this number}% \or Nueve% \fi }% +\global\let\@@Unitstringspanish\@@Unitstringspanish % \end{macrocode} % Feminine form: % \begin{macrocode} -\gdef\@@UnitstringFspanish#1{% +\newcommand*\@@UnitstringFspanish[1]{% \ifcase#1\relax Cera% \or Una% @@ -7693,12 +7810,13 @@ this number}% \or Nueve% \fi }% +\global\let\@@UnitstringFspanish\@@UnitstringFspanish % \end{macrocode} % Tens: % \begin{macrocode} %\changes{2.0}{2012-06-18}{fixed spelling mistake (correction %provided by Fernando Maldonado)} -\gdef\@@Tenstringspanish#1{% +\newcommand*\@@Tenstringspanish[1]{% \ifcase#1\relax \or Diez% \or Veinte% @@ -7712,10 +7830,11 @@ this number}% \or Cien% \fi }% +\global\let\@@Tenstringspanish\@@Tenstringspanish % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@Teenstringspanish#1{% +\newcommand*\@@Teenstringspanish[1]{% \ifcase#1\relax Diez% \or Once% @@ -7729,10 +7848,11 @@ this number}% \or Diecinueve% \fi }% +\global\let\@@Teenstringspanish\@@Teenstringspanish % \end{macrocode} % Twenties: % \begin{macrocode} -\gdef\@@Twentystringspanish#1{% +\newcommand*\@@Twentystringspanish[1]{% \ifcase#1\relax Veinte% \or Veintiuno% @@ -7746,10 +7866,11 @@ this number}% \or Veintinueve% \fi }% +\global\let\@@Twentystringspanish\@@Twentystringspanish % \end{macrocode} % Feminine form: % \begin{macrocode} -\gdef\@@TwentystringFspanish#1{% +\newcommand*\@@TwentystringFspanish[1]{% \ifcase#1\relax Veinte% \or Veintiuna% @@ -7763,10 +7884,11 @@ this number}% \or Veintinueve% \fi }% +\global\let\@@TwentystringFspanish\@@TwentystringFspanish % \end{macrocode} % Hundreds: % \begin{macrocode} -\gdef\@@Hundredstringspanish#1{% +\newcommand*\@@Hundredstringspanish[1]{% \ifcase#1\relax \or Ciento% \or Doscientos% @@ -7779,10 +7901,11 @@ this number}% \or Novecientos% \fi }% +\global\let\@@Hundredstringspanish\@@Hundredstringspanish % \end{macrocode} % Feminine form: % \begin{macrocode} -\gdef\@@HundredstringFspanish#1{% +\newcommand*\@@HundredstringFspanish[1]{% \ifcase#1\relax \or Cienta% \or Doscientas% @@ -7795,6 +7918,7 @@ this number}% \or Novecientas% \fi }% +\global\let\@@HundredstringFspanish\@@HundredstringFspanish % \end{macrocode} % This has changed in version 1.09, so that it now stores the % result in the second argument, but doesn't display anything. @@ -7932,7 +8056,7 @@ this number}% % it is easier to split it into units, tens, teens and hundreds. % Units: % \begin{macrocode} -\gdef\@@unitthstringspanish#1{% +\newcommand*\@@unitthstringspanish[1]{% \ifcase#1\relax cero% \or primero% @@ -7946,10 +8070,11 @@ this number}% \or noveno% \fi }% +\global\let\@@unitthstringspanish\@@unitthstringspanish % \end{macrocode} % Tens: % \begin{macrocode} -\gdef\@@tenthstringspanish#1{% +\newcommand*\@@tenthstringspanish[1]{% \ifcase#1\relax \or d\'ecimo% \or vig\'esimo% @@ -7962,10 +8087,11 @@ this number}% \or nonag\'esimo% \fi }% +\global\let\@@tenthstringspanish\@@tenthstringspanish % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@teenthstringspanish#1{% +\newcommand*\@@teenthstringspanish[1]{% \ifcase#1\relax d\'ecimo% \or und\'ecimo% @@ -7979,10 +8105,11 @@ this number}% \or decimonoveno% \fi }% +\global\let\@@teenthstringspanish\@@teenthstringspanish % \end{macrocode} % Hundreds: % \begin{macrocode} -\gdef\@@hundredthstringspanish#1{% +\newcommand*\@@hundredthstringspanish[1]{% \ifcase#1\relax \or cent\'esimo% \or ducent\'esimo% @@ -7995,10 +8122,11 @@ this number}% \or noningent\'esimo% \fi }% +\global\let\@@hundredthstringspanish\@@hundredthstringspanish % \end{macrocode} % Units (feminine): % \begin{macrocode} -\gdef\@@unitthstringFspanish#1{% +\newcommand*\@@unitthstringFspanish[1]{% \ifcase#1\relax cera% \or primera% @@ -8012,10 +8140,11 @@ this number}% \or novena% \fi }% +\global\let\@@unitthstringFspanish\@@unitthstringFspanish % \end{macrocode} % Tens (feminine): % \begin{macrocode} -\gdef\@@tenthstringFspanish#1{% +\newcommand*\@@tenthstringFspanish[1]{% \ifcase#1\relax \or d\'ecima% \or vig\'esima% @@ -8028,10 +8157,11 @@ this number}% \or nonag\'esima% \fi }% +\global\let\@@tenthstringFspanish\@@tenthstringFspanish % \end{macrocode} % Teens (feminine) % \begin{macrocode} -\gdef\@@teenthstringFspanish#1{% +\newcommand*\@@teenthstringFspanish[1]{% \ifcase#1\relax d\'ecima% \or und\'ecima% @@ -8045,10 +8175,11 @@ this number}% \or decimonovena% \fi }% +\global\let\@@teenthstringFspanish\@@teenthstringFspanish % \end{macrocode} % Hundreds (feminine) % \begin{macrocode} -\gdef\@@hundredthstringFspanish#1{% +\newcommand*\@@hundredthstringFspanish[1]{% \ifcase#1\relax \or cent\'esima% \or ducent\'esima% @@ -8061,10 +8192,11 @@ this number}% \or noningent\'esima% \fi }% +\global\let\@@hundredthstringFspanish\@@hundredthstringFspanish % \end{macrocode} % As above, but with initial letters in upper case % \begin{macrocode} -\gdef\@@Unitthstringspanish#1{% +\newcommand*\@@Unitthstringspanish[1]{% \ifcase#1\relax Cero% \or Primero% @@ -8078,10 +8210,11 @@ this number}% \or Noveno% \fi }% +\global\let\@@Unitthstringspanish\@@Unitthstringspanish % \end{macrocode} % Tens: % \begin{macrocode} -\gdef\@@Tenthstringspanish#1{% +\newcommand*\@@Tenthstringspanish[1]{% \ifcase#1\relax \or D\'ecimo% \or Vig\'esimo% @@ -8094,10 +8227,11 @@ this number}% \or Nonag\'esimo% \fi }% +\global\let\@@Tenthstringspanish\@@Tenthstringspanish % \end{macrocode} % Teens: % \begin{macrocode} -\gdef\@@Teenthstringspanish#1{% +\newcommand*\@@Teenthstringspanish[1]{% \ifcase#1\relax D\'ecimo% \or Und\'ecimo% @@ -8111,10 +8245,11 @@ this number}% \or Decimonoveno% \fi }% +\global\let\@@Teenthstringspanish\@@Teenthstringspanish % \end{macrocode} % Hundreds % \begin{macrocode} -\gdef\@@Hundredthstringspanish#1{% +\newcommand*\@@Hundredthstringspanish[1]{% \ifcase#1\relax \or Cent\'esimo% \or Ducent\'esimo% @@ -8127,10 +8262,11 @@ this number}% \or Noningent\'esimo% \fi }% +\global\let\@@Hundredthstringspanish\@@Hundredthstringspanish % \end{macrocode} % As above, but feminine. % \begin{macrocode} -\gdef\@@UnitthstringFspanish#1{% +\newcommand*\@@UnitthstringFspanish[1]{% \ifcase#1\relax Cera% \or Primera% @@ -8144,10 +8280,11 @@ this number}% \or Novena% \fi }% +\global\let\@@UnitthstringFspanish\@@UnitthstringFspanish % \end{macrocode} % Tens (feminine) % \begin{macrocode} -\gdef\@@TenthstringFspanish#1{% +\newcommand*\@@TenthstringFspanish[1]{% \ifcase#1\relax \or D\'ecima% \or Vig\'esima% @@ -8160,10 +8297,11 @@ this number}% \or Nonag\'esima% \fi }% +\global\let\@@TenthstringFspanish\@@TenthstringFspanish % \end{macrocode} % Teens (feminine): % \begin{macrocode} -\gdef\@@TeenthstringFspanish#1{% +\newcommand*\@@TeenthstringFspanish[1]{% \ifcase#1\relax D\'ecima% \or Und\'ecima% @@ -8177,10 +8315,11 @@ this number}% \or Decimonovena% \fi }% +\global\let\@@TeenthstringFspanish\@@TeenthstringFspanish % \end{macrocode} % Hundreds (feminine): % \begin{macrocode} -\gdef\@@HundredthstringFspanish#1{% +\newcommand*\@@HundredthstringFspanish[1]{% \ifcase#1\relax \or Cent\'esima% \or Ducent\'esima% @@ -8193,6 +8332,7 @@ this number}% \or Noningent\'esima% \fi }% +\global\let\@@HundredthstringFspanish\@@HundredthstringFspanish % \end{macrocode} % This has changed in version 1.09, so that it now stores the % results in the second argument (which must be a control @@ -8201,7 +8341,7 @@ this number}% % with older versions. (These internal macros are not meant for % use in documents.) % \begin{macrocode} -\gdef\@@numberstringspanish#1#2{% +\newcommand*\@@numberstringspanish[2]{% \ifnum#1>99999 \PackageError{fmtcount}{Out of range}% {This macro only works for values less than 100000}% @@ -8224,7 +8364,7 @@ this number}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% \@strctr=#1 \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\ \@andname\ \@unitstring{\@strctr}}% @@ -8232,7 +8372,7 @@ this number}% \else \@strctr=#1\relax \divide\@strctr by 1000\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% \fi @@ -8248,7 +8388,7 @@ this number}% \edef#2{\@@fc@numstr\@thousand}% \fi \fi -\@strctr=#1\relax \@modulo{\@strctr}{1000}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{1000}% \divide\@strctr by 100\relax \ifnum\@strctr>0\relax \ifnum#1>1000\relax @@ -8256,7 +8396,7 @@ this number}% \edef#2{\@@fc@numstr\ }% \fi \@tmpstrctr=#1\relax - \@modulo{\@tmpstrctr}{1000}% + \@FCmodulo{\@tmpstrctr}{1000}% \ifnum\@tmpstrctr=100\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@tenstring{10}}% @@ -8265,7 +8405,7 @@ this number}% \edef#2{\@@fc@numstr\@hundredstring{\@strctr}}% \fi \fi -\@strctr=#1\relax \@modulo{\@strctr}{100}% +\@strctr=#1\relax \@FCmodulo{\@strctr}{100}% \ifnum#1>100\relax \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax @@ -8280,7 +8420,7 @@ this number}% \divide\@strctr by 10\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@tenstring{\@strctr}}% - \@strctr=#1\relax \@modulo{\@strctr}{10}% + \@strctr=#1\relax \@FCmodulo{\@strctr}{10}% \ifnum\@strctr>0\relax \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\ \@andname\ \@unitstring{\@strctr}}% @@ -8298,21 +8438,22 @@ this number}% \fi \else \ifnum\@strctr>19\relax - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@twentystring{\@strctr}}% \else - \@modulo{\@strctr}{10}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@numstr#2\relax \edef#2{\@@fc@numstr\@teenstring{\@strctr}}% \fi \fi \fi }% +\global\let\@@numberstringspanish\@@numberstringspanish % \end{macrocode} % As above, but for ordinals % \begin{macrocode} -\gdef\@@ordinalstringspanish#1#2{% +\newcommand*\@@ordinalstringspanish[2]{% \@strctr=#1\relax \ifnum#1>99999 \PackageError{fmtcount}{Out of range}% @@ -8331,7 +8472,7 @@ this number}% \ifnum\@strctr>9\relax \@tmpstrctr=\@strctr \ifnum\@strctr<20 - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@teenthstring{\@tmpstrctr}}% \else @@ -8339,7 +8480,7 @@ this number}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}% \@tmpstrctr=\@strctr - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@tmpstrctr}{10}% \ifnum\@tmpstrctr>0\relax \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@unitthstring{\@tmpstrctr}}% @@ -8354,7 +8495,7 @@ this number}% \edef#2{\@@fc@ordstr\@thousandth}% \fi \@strctr=#1\relax -\@modulo{\@strctr}{1000}% +\@FCmodulo{\@strctr}{1000}% \ifnum\@strctr>99\relax \@tmpstrctr=\@strctr \divide\@tmpstrctr by 100\relax @@ -8365,7 +8506,7 @@ this number}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@hundredthstring{\@tmpstrctr}}% \fi -\@modulo{\@strctr}{100}% +\@FCmodulo{\@strctr}{100}% \ifnum#1>99\relax \ifnum\@strctr>0\relax \let\@@fc@ordstr#2\relax @@ -8378,14 +8519,14 @@ this number}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@tenthstring{\@tmpstrctr}}% \@tmpstrctr=\@strctr - \@modulo{\@tmpstrctr}{10}% + \@FCmodulo{\@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}% + \@FCmodulo{\@strctr}{10}% \let\@@fc@ordstr#2\relax \edef#2{\@@fc@ordstr\@teenthstring{\@strctr}}% \else @@ -8403,6 +8544,7 @@ this number}% \fi \fi }% +\global\let\@@ordinalstringspanish\@@ordinalstringspanish % \end{macrocode} %\iffalse diff --git a/Master/texmf-dist/source/latex/fmtcount/fmtcount.ins b/Master/texmf-dist/source/latex/fmtcount/fmtcount.ins index dbce0986f97..399d7d770a4 100644 --- a/Master/texmf-dist/source/latex/fmtcount/fmtcount.ins +++ b/Master/texmf-dist/source/latex/fmtcount/fmtcount.ins @@ -1,10 +1,10 @@ -% fmtcount.ins generated using makedtx version 0.94b 2013/8/17 16:54 +% fmtcount.ins generated using makedtx version 1.1 2014/6/18 14:52 \input docstrip \preamble fmtcount.dtx - Copyright 2013 Nicola Talbot and Vincent Belaïche + Copyright 2014 Nicola Talbot and Vincent Belaïche This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -18,7 +18,7 @@ The Current Maintainer of this work is Nicola Talbot and Vincent Belaïche. - This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fcnumparser.sty, fcprefix.sty, fmtcount.sty, fc-american.def, fc-british.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def. + This work consists of the files fmtcount.dtx and fmtcount.ins and the derived files fcnumparser.sty, fcprefix.sty, fmtcount.sty, fc-american.def, fc-british.def, fc-english.def, fc-francais.def, fc-french.def, fc-frenchb.def, fc-german.def, fc-germanb.def, fc-italian.def, fc-ngerman.def, fc-ngermanb.def, fc-portuges.def, fc-portuguese.def, fc-spanish.def, fc-UKenglish.def, fc-USenglish.def. \endpreamble @@ -54,6 +54,8 @@ \usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-ngermanb.def,package}} \file{fc-portuges.def}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-portuges.def,package}} +\file{fc-portuguese.def}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-portuguese.def,package}} \file{fc-spanish.def}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{fmtcount.dtx}{fc-spanish.def,package}} \file{fc-UKenglish.def}{\usepreamble\defaultpreamble |