From 873660d1a83ece926fe7206288dda9c36b349c1b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:46:03 +0000 Subject: generic 1 git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/generic/genmisc/nth.sty | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Master/texmf-dist/tex/generic/genmisc/nth.sty (limited to 'Master/texmf-dist/tex/generic/genmisc/nth.sty') diff --git a/Master/texmf-dist/tex/generic/genmisc/nth.sty b/Master/texmf-dist/tex/generic/genmisc/nth.sty new file mode 100644 index 00000000000..8a96c73903d --- /dev/null +++ b/Master/texmf-dist/tex/generic/genmisc/nth.sty @@ -0,0 +1,56 @@ +% nth.sty version 2002/27/02 Donald Arseneau +% Ordinal numbering style, 1st 2nd 3rd 4th 5th... 12th... 101st 102nd... +% +% (Public domain: take, include, extract, whatever) +% +% In LaTeX: +% \usepackage[super,negative]{nth} +% where option [super] gives superscript `th' +% and option [negative] allows ``st, nd, rd'' suffixes on negative numbers. +% +% example: \renewcommand{\thesection}{\ordinal{section}} +% or \renewcommand{\thesection}{\@ordinal\c@section} +% or \renewcommand{\thesection}{\nth\c@section} +% +% In plain TeX: +% \input nth.sty +% use: \nth{}. +% Change formatting by redefining \nthscript and \nthtest + +\def\nth#1{% First print number: + \expandafter\nthM \number #1\relax + \nthscript{% + \ifnum#1\nthtest0 th\else % negatives are all ``th'' (depending on \nthtest) + \expandafter \nthSuff \expandafter 0\number\ifnum #1<0-\fi#1\delimiter + \fi + }} + +% Minus sign using math mode: +\def\nthM#1{\if -#1\ifmmode-\else$-$\fi\else #1\fi} + +% Print suffix depending on last two digits: +\def\nthSuff#1#2#3{% + \ifx \delimiter#3% #1#2 are last two digits + \ifnum #1=1 th% teens are always ``th'' + \else % use appropriate suffix + \ifcase #2 th\or st\or nd\or rd\else th\fi + \fi + \else % continue scanning for last two digits + \expandafter \nthSuff \expandafter #2\expandafter #3% + \fi} + +% Formatting hook for ordinals (\let\nthscript\textsuperscript) +\def\nthscript#1{#1}% alternate: \def\nthscript#1{$\rm^{#1}$} + +% Formatting hook for all negative numbers giving ``th'' +\def\nthtest{<} % alternate: \def\nthtest{=} + +\ifx\Alph\undefined\else + \def\ordinal#1{\expandafter\@ordinal\csname c@#1\endcsname} + \let\@ordinal\nth + \ProvidesPackage{nth}[2002/02/27] + \DeclareOption{super}{\def\nthscript{\textsuperscript}} + \DeclareOption{negative}{\def\nthtest{=}} + \ProcessOptions +\fi + -- cgit v1.2.3