diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/examples/tip/ntotext.tip |
Initial commit
Diffstat (limited to 'info/examples/tip/ntotext.tip')
-rw-r--r-- | info/examples/tip/ntotext.tip | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/info/examples/tip/ntotext.tip b/info/examples/tip/ntotext.tip new file mode 100644 index 0000000000..cd1f26a4d0 --- /dev/null +++ b/info/examples/tip/ntotext.tip @@ -0,0 +1,119 @@ +% This macro source file is from the four volume series +% "TeX in Practice" by Stephan von Bechtolsheim, published +% 1993 by Springer-Verlag, New York. +% Copyright 1993 Stephan von Bechtolsheim. +% No warranty or liability is assumed. +% This macro may be copied freely if no fees other than +% media cost or shipping charges are charged and as long +% as this copyright and the following source code itself +% is not changed. Please see the series for further information. +% +% Version: 1.0 +% Date: May 1, 1993 +% +% +% This source code is documented in 3.3.16, p. I-63. +% Original source in file "reg1.TEX", starting line 1835. +\wlog{L: "ntotext.tip" ["reg1.TEX," l. 1835, p. I-63]}% +% This file DOES belong to format "texip." +\InputD{imodn.tip} +\catcode`\@ = 11 +\def\@OneDigitNumberText #1#2{% + \ifcase #2\relax + \ifnum #1=0 + \else + zero% + \fi + \or + one\or + two\or + three\or + four\or + five\or + six\or + seven\or + eight\or + nine% + \else + \errmessage{\string\@OneDigitNumberText: number + \number#2 out of range.}% + \fi +} +\newcount\@NumberToConvert +\newcount\@NumberToConvertTwo +\newcount\@NumberToConvertAndFlag +\def\NumberToText #1{% + \@NumberToConvert = #1\relax + \ifnum\@NumberToConvert < 0 + minus + \@NumberToConvert = -\@NumberToConvert + \fi + \CheckRange{\@NumberToConvert}{0}{999999}% + {\string\NumberToText: numbers >= 1.000.000 + not handled.}% + \@NumberToConvertAndFlag = 0 + \ifnum\@NumberToConvert > 999 + \@NumberToConvertTwo = \@NumberToConvert + \divide\@NumberToConvert by 1000 + \@NumberToText + \space thousand and + \IModN{\@NumberToConvertTwo}{1000}{\@NumberToConvert}% + \fi + \CheckRange{\@NumberToConvert}{0}{999}% + {\string\NumberToText: internal error 1}% + \@NumberToText +} +\newcount\@NumberToTextTmp +\def\@NumberToText{% + \ifnum\@NumberToConvert > 99 + \ValueOfDecimalPosition{\@NumberToConvert}{2}% + {\@NumberToTextTmp}% + \@OneDigitNumberText{1}{\@NumberToTextTmp}% + \space hundred and + \IModN{\@NumberToConvert}{100}{\@NumberToConvert}% + \fi + \ValueOfDecimalPosition{\@NumberToConvert}{1}% + {\@NumberToTextTmp}% + \ifnum\@NumberToTextTmp > 1 + \ifcase\@NumberToTextTmp + \errmessage{\string\@NumberToText: + internal error 1.}% + \or + \errmessage{\string\@NumberToText: + internal error 2.}% + \or + twenty\or + thirty\or + forty\or + fifty\or + sixty\or + seventy\or + eighty\or + ninety% + \else + \errmessage{\string\@NumberToText: + internal error 4.}% + \fi + \IModN{\@NumberToConvert}{10}{\@NumberToTextTmp}% + \@OneDigitNumberText{0}{\@NumberToTextTmp}% + \else + \ifnum\@NumberToTextTmp = 1 + \advance\@NumberToConvert by -10 + \ifcase\@NumberToConvert + ten\or + eleven\or + twelve\or + thirteen\or + fourteen\or + fifteen\or + sixteen\or + seventeen\or + eighteen\or + nineteen% + \fi + \else + \@OneDigitNumberText{1}{\@NumberToConvert}% + \fi + \fi +} +\catcode`\@ = 12 |