From: Wolfgang Schuster <schuster.wolfgang@googlemail.com>
To: ntg-context@ntg.nl
Subject: Re: page numbering in words?
Date: Mon, 26 Mar 2007 20:40:33 +0200 [thread overview]
Message-ID: <20070326204033.44b77989.schuster.wolfgang@googlemail.com> (raw)
In-Reply-To: <39FF4EA0-9392-4D97-B347-BB50F6593F80@mac.com>
[-- Attachment #1: Type: text/plain, Size: 399 bytes --]
On Mon, 26 Mar 2007 17:39:38 +0100
cormullion@mac.com wrote:
> is it possible to adjust options so as to get page numbering done in
> words? Eg
>
> "one" "two" ..... "eighty-nine" ... "three hundred and sixty seven" ?
>
> Or does this require some more work/code?
I converted the macro to the plain TeX format. The only thing you need
to do now is to change the german text you own.
Wolfgang
[-- Attachment #2: zahl2string.tex --]
[-- Type: text/x-tex, Size: 3593 bytes --]
\catcode`\@=11
\def\numstring#1{\expandafter\@numstring\csname c@#1\endcsname}
\def\Numstring#1{\expandafter\@Numstring\csname c@#1\endcsname}
\def\ordstring#1{\expandafter\@ordstring\csname c@#1\endcsname}
\def\Ordstring#1{\expandafter\@Ordstring\csname c@#1\endcsname}
\def\@numstring#1{\ns@numstr{#1}\ns@neunzehns{null}{}}
\def\@Numstring#1{\expandafter\@@Numstring\expandafter{\number#1}}
\def\@@Numstring#1%
{\edef\@tempa{\@numstring{#1}}%
\expandafter\MakeUppercase\@tempa}
\def\@ordstring#1{\ns@numstr{#1}\ns@neunzehnord{null\-te}{te}}
\def\@Ordstring#1{\expandafter\@@Ordstring\expandafter{\number#1}}
\def\@@Ordstring#1%
{\edef\@tempa{\@ordstring{#1}}%
\expandafter\MakeUppercase\@tempa}
\let\numstr\@numstring%
\let\Numstr\@Numstring%
\let\ordstr\@ordstring%
\let\Ordstr\@Ordstring%
\def\ns@numoutofrange#1#2{\number#1#2}
\def\ns@numstr#1#2#3#4%
{\ifnum\number#1<\@ne%
#3%
\else\ifnum\number#1<1000000000 %
\expandafter\ns@numstring\expandafter{\number#1}#2%
\else%
\ns@numoutofrange{#1}{#4}%
\fi\fi}
\def\ns@numstring#1#2{%
\expandafter\ns@@numstring%
\ifcase%
\ifnum#1<10 1%
\else\ifnum#1<100 2%
\else\ifnum#1<\@m 3%
\else\ifnum#1<\@M 4%
\else\ifnum#1<100000 5%
\else\ifnum#1<1000000 6%
\else\ifnum#1<10000000 7%
\else\ifnum#1<100000000 8%
\else9%
\fi\fi\fi\fi\fi\fi\fi\fi %
\or00000000#1% case 1: Add 8 leading zeros
\or0000000#1% case 2: Add 7 leading zeros
\or000000#1% case 3: Add 6 leading zeros
\or00000#1% case 4: Add 5 leading zeros
\or0000#1% case 5: Add 4 leading zeros
\or000#1% case 6: Add 3 leading zeros
\or00#1% case 7: Add 2 leading zeros
\or0#1% case 8: Add 1 leading zero
\or#1% case 9: Add no leading zeros
\or%
\@nil#2%
\fi}
\def\ns@@numstring#1#2#3#4#5#6#7\or#8\@nil#9%
{\ifnum#1#2#3>\z@
\ns@million#1#2#3%
\ifnum#4#5#6>\z@\space\fi%
\fi%
\ifnum#4#5#6>\z@%
\ns@hundred#4#5#6{#1#2#3}{#4#5}\ns@neunzehn%
\ifnum#4#5#6>\@ne\-\fi%
tau\-send%
\ifnum#7>\z@\-\fi%
\fi%
\ns@hundred#7{#4#5#6}1#9}
\def\ns@million#1#2#3%
{\ifnum#1#2#3=\@ne%
\ns@hundred#1#2#301\ns@neunzehne%
\space%
Mil\-lion%
\else%
\ns@hundred#1#2#301\ns@neunzehns%
\space%
Mil\-lio\-nen%
\fi}
\def\ns@hundred#1#2#3#4#5#6%
{\ifnum#1>\z@%
\ifnum#4#1>\@ne\ns@neunzehn#1\-\fi%
hun\-dert%
\ifnum#2#3>\z@\-\fi%
\fi%
\ifnum#2#3<20 %
\ifnum#5#2#3>\@ne#6{#2#3}\fi%
\else%
\ifnum#3>\z@\ns@neunzehn#3\-und\-\fi%
\ns@neunzig#2%
#60%
\fi}
\def\ns@neunzehn#1%
{\ifcase#1\empty\or ein\or zwei\or drei\or vier\or f\"unf\or sechs\or%
sie\-ben\or acht\or neun\or zehn\or elf\or zw\"olf\or drei\-zehn\or%
vier\-zehn\or f\"unf\-zehn\or sech\-zehn\or sieb\-zehn\or%
acht\-zehn\or neun\-zehn\fi}
\def\ns@neunzehns#1{\ifcase#1\empty\or eins\else\ns@neunzehn{#1}\fi}
\def\ns@neunzehne#1{\ifcase#1\empty\or ei\-ne\else\ns@neunzehn{#1}\fi}
\def\ns@neunzehnord#1%
{\ifcase#1\-ste%
\or er\-ste%
\or zwei\-te%
\or drit\-te%
\or vier\-te%
\or f\"unf\-te%
\or sech\-ste%
\or sieb\-te%
\or ach\-te%
\or neun\-te%
\or zehn\-te%
\or elf\-te%
\or zw\"olf\-te%
\or drei\-zehn\-te%
\or vier\-zehn\-te%
\or f\"unf\-zehn\-te%
\or sech\-zehn\-te%
\or sieb\-zehn\-te%
\or acht\-zehn\-te%
\or neun\-zehn\-te%
\fi}
\def\ns@neunzig#1%
{\ifcase#1
\or
\or zwan\-zig%
\or drei\ss ig%
\or vier\-zig%
\or f\"unf\-zig%
\or sech\-zig%
\or sieb\-zig%
\or acht\-zig%
\or neun\-zig%
\fi}
\catcode`\@=12
\endinput
[-- Attachment #3: zahltest.tex --]
[-- Type: text/x-tex, Size: 1058 bytes --]
\input zahl2string
\long\def\zahlexamples#1
{0 $\Longrightarrow$ #1{0}\endgraf
7 $\Longrightarrow$ #1{7}\endgraf
13 $\Longrightarrow$ #1{13}\endgraf
23 $\Longrightarrow$ #1{23}\endgraf
42 $\Longrightarrow$ #1{42}\endgraf
99 $\Longrightarrow$ #1{99}\endgraf
127 $\Longrightarrow$ #1{127}\endgraf
999 $\Longrightarrow$ #1{999}\endgraf
1000 $\Longrightarrow$ #1{1000}\endgraf
1001 $\Longrightarrow$ #1{1001}\endgraf
2004 $\Longrightarrow$ #1{2004}\endgraf
2017 $\Longrightarrow$ #1{2017}\endgraf
2029 $\Longrightarrow$ #1{2029}\endgraf
9999 $\Longrightarrow$ #1{9999}\endgraf
10000 $\Longrightarrow$ #1{10000}\endgraf
101101 $\Longrightarrow$ #1{101101}\endgraf
999999 $\Longrightarrow$ #1{999999}\endgraf
1000000 $\Longrightarrow$ #1{1000000}\endgraf
1234567 $\Longrightarrow$ #1{1234567}\endgraf
123456789 $\Longrightarrow$ #1{123456789}\endgraf
101101101 $\Longrightarrow$ #1{101101101}\endgraf
999999999 $\Longrightarrow$ #1{999999999}}
\zahlexamples{\numstr}
\zahlexamples{\ordstr}
\bye
[-- Attachment #4: Type: text/plain, Size: 139 bytes --]
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context
next prev parent reply other threads:[~2007-03-26 18:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-26 16:39 cormullion
2007-03-26 18:16 ` Wolfgang Schuster
2007-03-26 18:44 ` cormullion
2007-03-26 18:40 ` Wolfgang Schuster [this message]
2007-03-26 21:31 ` cormullion
2007-03-28 11:03 ` cormullion
2007-03-28 11:59 ` Zhichu Chen
2007-03-28 12:09 ` Wolfgang Schuster
2007-03-28 15:09 ` cormullion
2007-03-28 15:49 ` Zhichu Chen
2007-03-28 22:15 ` cormullion
2007-03-29 7:39 ` Taco Hoekwater
2007-04-17 11:09 ` Mojca Miklavec
2007-04-16 12:52 Robin Kirkham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070326204033.44b77989.schuster.wolfgang@googlemail.com \
--to=schuster.wolfgang@googlemail.com \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).