ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket zur
ordentlichen Formatierung von (englischen) Ordinalzahlen gesehen habe,
also etwas das
\ordinal{1} zu 1\textsuperscript{st} werden läßt.
Falls es soetwas nicht gibt, wäre ich auch für Hinweise dankbar, wie
groß denn das 'st' bzw. 'th' üblicherweise gesetzt wird. Die
\textsuperscript-Lösung gefällt mir nicht wirklich, $1^\mathrm{st}$
ist besser, aber was mache ich wenn ich kein 'rm' will?
--
Oliver Jennrich JILA, University of Colorado at Boulder
Gravity. It's not just a good idea, it's the law!
>ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket
>zur ordentlichen Formatierung von (englischen) Ordinalzahlen
>gesehen habe, also etwas das
>
>\ordinal{1} zu 1\textsuperscript{st} werden läßt.
>
>Falls es soetwas nicht gibt, wäre ich auch für Hinweise dankbar,
>wie groß denn das 'st' bzw. 'th' üblicherweise gesetzt wird. Die
>\textsuperscript-Lösung gefällt mir nicht wirklich,
>$1^\mathrm{st}$ ist besser, aber was mache ich wenn ich kein
>'rm' will?
Bleib beim Deutschen, da genügt ein Punkt hinter der Zahl ;).
Ernsthaft, ich kann mich entsinnen, dass beim french-Paket etwas
aehnliches vorliegt, um ein hochgestelltes -ième zu erzeugen
(2ième etc.).
Peter
--
"A great many people think they are thinking when they are merely
rearranging their prejudices." -- William James
> On 22 May 2000 15:01:01 -0600, Oliver Jennrich
> <oliver....@colorado.edu> wrote:
>> ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket
>> zur ordentlichen Formatierung von (englischen) Ordinalzahlen
>> gesehen habe, also etwas das
>>
>> \ordinal{1} zu 1\textsuperscript{st} werden läßt.
>>
>> Falls es soetwas nicht gibt, wäre ich auch für Hinweise dankbar,
>> wie groß denn das 'st' bzw. 'th' üblicherweise gesetzt wird. Die
>> \textsuperscript-Lösung gefällt mir nicht wirklich,
>> $1^\mathrm{st}$ ist besser, aber was mache ich wenn ich kein
>> 'rm' will?
> Bleib beim Deutschen, da genügt ein Punkt hinter der Zahl ;).
<Loriot>
Ach!
</Loriot>
> Ernsthaft, ich kann mich entsinnen, dass beim french-Paket etwas
> aehnliches vorliegt, um ein hochgestelltes -ième zu erzeugen
> (2ième etc.).
Hmhm. Ich werde mal schauen. Irgendwo in den Tiefen von Babel, oder?
Oliver Jennrich wrote:
> ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket zur
> ordentlichen Formatierung von (englischen) Ordinalzahlen gesehen habe,
> also etwas das
>
> \ordinal{1} zu 1\textsuperscript{st} werden läßt.
als nullte Näherung kann vielleicht
\documentclass[a4paper]{article}
\makeatletter
\def\engord#1{\expandafter\@engord\csname c@#1\endcsname}
\def\@engord#1{%
\ifcase#1\or
\mbox{1\textsuperscript{st}}\or
\mbox{2\textsuperscript{nd}}\or
\mbox{3\textsuperscript{rd}}\or
\mbox{4\textsuperscript{th}}\or
\mbox{5\textsuperscript{th}}
\fi}
\makeatother
\newcounter{count}
%\newcommand{\thecount}{{\engord{count}}}
% geht nicht, warum?
\def\thecount{{\engord{count}}}
\begin{document}
\stepcounter{count}\thecount~
\stepcounter{count}\thecount~
\stepcounter{count}\thecount~
\stepcounter{count}\thecount~
\stepcounter{count}\thecount~
\end{document}
herhalten. Bei \alph{} in latex.ltx abgeschaut.
have fun
Heiko
--
-- Liest man die Grabinschriften, dann liegt unser Heil nur in
-- Wiederbelebung der Toten und Beerdigung der Lebenden.
-- (Paul Eldridge)
-- Heiko Bauke @ http://www.uni-magdeburg.de/bauke
Heiko Bauke <Heiko...@Student.UNI-Magdeburg.DE> wrote:
[...]
>\newcounter{count}
>%\newcommand{\thecount}{{\engord{count}}}
>% geht nicht, warum?
>\def\thecount{{\engord{count}}}
durch den Befehl \newcounter{count} wird AUTOMATISCH das
passende Makro \thecount angelegt, mit arabischen Ziffern als
Defaultstil.
Benutzt daher
\renewcommand{\thecount}{{\engord{count}}}
Tschüss *Ingo*
--
_____________________________________________________________
NewsGroups Suchen, lesen, schreiben mit http://netnews.web.de
> Ave,
> Oliver Jennrich wrote:
>> ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket zur
>> ordentlichen Formatierung von (englischen) Ordinalzahlen gesehen habe,
>> also etwas das
>>
>> \ordinal{1} zu 1\textsuperscript{st} werden läßt.
> als nullte Näherung kann vielleicht
[...]
Darauf aufbauend:
\documentclass{article}
\usepackage{ifthen}
\usepackage{xspace}
\newcommand{\up}[1]{\textsuperscript{#1}}
\makeatletter
\newcount\@Ord
\newcount\@OrdR
\def\@engord#1{%
\ifcase#1\or
\mbox{1\up{st}}\or
\mbox{2\up{nd}}\or
\mbox{3\up{rd}}\or
\mbox{4\up{th}}\or
\mbox{5\up{th}}\or
\mbox{6\up{th}}\or
\mbox{7\up{th}}\or
\mbox{8\up{th}}\or
\mbox{9\up{th}}\or
\mbox{10\up{th}}\or
\mbox{11\up{th}}\or
\mbox{12\up{th}}%
\fi}
\newcommand{\Ordinal}[1]{%
\ifthenelse{\number#1<13}%
{\@engord{#1}}% THEN
{%ELSE
\@Ord=\number#1
\@OrdR=\number#1
\divide\@Ord by 100
\multiply\@Ord by 100
\advance\@OrdR by -\@Ord
\divide\@Ord by 100
\ifthenelse{\number\@OrdR<13}%
{%THEN
\the\@Ord\@engord{\@OrdR}}%
{%ELSE
\@Ord=\number#1
\@OrdR=\number#1
\divide\@Ord by 10
\multiply\@Ord by 10
\advance\@OrdR by -\@Ord
\divide\@Ord by 10
\the\@Ord\@engord{\@OrdR}}}\xspace}
\makeatother
\begin{document}
This is the \Ordinal{1} sentence. Will this work on \Ordinal{23} of
May? And what about the \Ordinal{111} cavalerie regiment?
\end{document}
>* Heiko Bauke writes:
>
>> Ave,
>> Oliver Jennrich wrote:
>>> ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket zur
>>> ordentlichen Formatierung von (englischen) Ordinalzahlen gesehen habe,
Bei so kleinen Paketen ist das Suchen wahrscheinlich aufwaendiger
als die Radneuerfindung ;-)
>[...]
> \ifthenelse{\number#1<13}%
Sollte wohl "<14" lauten
> \ifthenelse{\number\@OrdR<13}%
Ebenso "<14".
Sonst gibt es ein "13rd".
Als Fingeruebung eine weitere Radneuerfindung, dafuer
aber eine expandible Implementierung:
%%% cut %%% engord.sty %%% cut %%%
% File: engord.sty
% Version: 2000/05/23 v1.0
% Author: Heiko Oberdiek <ober...@ruf.uni-freiburg.de>
%
% Function: Converts numbers to english ordinal numbers.
%
% Copyright: Copyright (C) 2000 Heiko Oberdiek.
%
% This program may be distributed and/or modified under
% the conditions of the LaTeX Project Public License,
% either version 1.2 of this license or (at your option)
% any later version. The latest version of this license
% is in
% http://www.latex-project.org/lppl.txt
% and version 1.2 or later is part of all distributions
% of LaTeX version 1999/12/01 or later.
%
% Use:
% * \engord{<LaTeX counter name>}
% It prints the value of the LaTeX counter as English
% ordinal number. It can be used so as \arabic, \roman,
% or \alph.
% * \engordnumber{<any TeX number>}
% It prints the number as English ordinal number.
% * \engordletters#1
% This command formats the English ordinal letters
% after the number. It defaults to \textsuperscript.
% * \engorderror#1
% It can be redefined, if an other error handling is
% wanted. The argument is a negative number or zero.
%
% Examples:
% * \engordnumber{1} ==> 1st
% \engordnumber{12} ==> 12th
% \engordnumber{123} ==> 123rd
% \engord{page} ==> 1st (if page has the value of one)
% * The default output of a counter can be redefined:
% \newcounter{mycounter}
% \renewcommand{\theengcounter}{\engord{mycounter}}
% * Because the implementation of \engord and \engordnumber
% is kept expandable, these commands can be used to make
% command names with an appropriate definition of
% \engordletters:
% \renewcommand*{\engordletters}[#1]{#1}
% \@namedef{My\engordnumber{3}Command}{...}
% This generates the command name `\My4rdCommand'.
% * If the letters should not be raised, \engordletters
% can be redefined as follows:
% \renewcommand*{\engordletters}[1]{#1}
%
% History:
% 2000/05/23 v1.0: first public release
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{engord}%
[2000/05/23 v1.0 English ordinal numbers (HO)]
% \engordletters is called with one argument, the english
% ord letters, and contains the code to format them. It
% defaults to \textsuperscript:
\providecommand{\ordletters}{\textsuperscript}
% \engorderror is called, if the number is zero
% or negative.
\providecommand*{\engorderror}[1]{%
#1\ordletters{!ERROR!}%
\PackageWarning{engord}{%
`#1' is not an ordinal number%
}%
}
% \engord expects a LaTeX counter name as argument and
% calls \engordnumber
\newcommand*{\engord}[1]{%
\engordnumber{\value{#1}}%
}
% \engordnumber is the user command to print a number as
% english ordinal number. The argument can be any
% TeX number like explicit numbers, register values, ...
%
% In a safe way it converts the TeX number argument
% into a form that only consists of decimal digits
\newcommand*{\engordnumber}[1]{%
\expandafter\EO@number\expandafter{\number#1}%
}
% \EO@number expects a number with decimal digits as
% argument and looks at the size of the number and
% the count of the digits:
\def\EO@number#1{%
\ifnum#1<1 % handle the error case
\engorderror{#1}%
\else
\ifnum#1<21
\EO@ord{#1}%
\else
\ifnum#1<100
\EO@twodigits#1%
\else
\@ReturnAfterFi{%
\EO@reverse#1\@nil{}\EO@afterreverse
}%
\fi
\fi
\fi
}
% An internal help macro to prevent a too deep \if nesting.
\long\def\@ReturnAfterFi#1\fi{\fi#1}
% \EO@ord prints the number with ord letters
% #1: decimal digits, #1 < 21
\def\EO@ord#1{%
#1%
\expandafter\ordletters
\ifcase#1\or
{st}\or
{nd}\or
{rd}\else
{th}%
\fi
}
% \EO@twodigits expects a number with two digits,
% 20 < number < 100
\def\EO@twodigits#1#2{%
#1\EO@ord{#2}%
}
% \EO@reverse reverses the digits of the number
% #1: next digit
% #2: rest of the digits
% #3: already reversed digits
% #4: next command to call with the reversed number
% as argument
\def\EO@reverse#1#2\@nil#3#4{%
\ifx\\#2\\%
#4{#1#3}%
\else
\@ReturnAfterFi{%
\EO@reverse#2\@nil{#1#3}{#4}%
}%
\fi
}
% \EO@afterreverse calls \EO@reverseback so that
% \EO@reverseback can inspect the digits of the number
\def\EO@afterreverse#1{%
\EO@reverseback#1\@nil
}
% \EO@reverseback reverses the reversion
% #1: the last digit of the number
% #2: the second last digit of the number
% #3: first digits of the number in reversed order,
% it is not empty, because \EO@reverseback is
% only called with numbers > 100.
\def\EO@reverseback#1#2#3\@nil{%
\EO@reverse#3\@nil{}\@firstofone
\ifnum#2#1<21
\EO@ord{#2#1}%
\else
#2\EO@ord{#1}%
\fi
}
\endinput
%%% cut %%% engord.sty %%% cut %%%
Viele Gruesse
Heiko <ober...@ruf.uni-freiburg.de>
> Oliver Jennrich <oliver....@colorado.edu> wrote:
>> * Heiko Bauke writes:
>>
>>> Ave,
>>> Oliver Jennrich wrote:
>>>> ich bin mir fast sicher, daß ich schoneinmal irgendwo ein Paket zur
>>>> ordentlichen Formatierung von (englischen) Ordinalzahlen gesehen habe,
> Bei so kleinen Paketen ist das Suchen wahrscheinlich aufwaendiger
> als die Radneuerfindung ;-)
>> [...]
>> \ifthenelse{\number#1<13}%
> Sollte wohl "<14" lauten
>> \ifthenelse{\number\@OrdR<13}%
> Ebenso "<14".
> Sonst gibt es ein "13rd".
Da geht es Dir wie meiner Frau ;-) Madame hat den Fehlerinstinkt,
tippt als erstes \Ordinal{13} ein und grinst hämisch. Ja, es muß 14
heißen.