summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/moreenum
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-07-26 23:25:26 +0000
committerKarl Berry <karl@freefriends.org>2011-07-26 23:25:26 +0000
commitfdc5e9c25570d64b606c141c6efd67c6ec046316 (patch)
tree09e404c2d6c67cdd139b0ec88f8a812fc1938a66 /Master/texmf-dist/tex/latex/moreenum
parente9b5b96e62aa1a8333723a208b797d430da33190 (diff)
new latex package moreenum (16jul11)
git-svn-id: svn://tug.org/texlive/trunk@23239 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/moreenum')
-rw-r--r--Master/texmf-dist/tex/latex/moreenum/moreenum.sty261
1 files changed, 261 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/moreenum/moreenum.sty b/Master/texmf-dist/tex/latex/moreenum/moreenum.sty
new file mode 100644
index 00000000000..00b93777c4d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/moreenum/moreenum.sty
@@ -0,0 +1,261 @@
+ %% moreenum.sty
+ %% Copyright 2011 Seamus Bradley
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % 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.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is Seamus Bradley
+ % tex@seamusbradley.net
+ %
+ % This work consists of the files moreenum.sty,testcase-moreenum.tex
+ % and README and the derived file testcase-moreenum.pdf
+
+
+\ProvidesPackage{moreenum}[2011/07/15 v1.01]
+
+
+\RequirePackage{amsmath} % For Greek letters
+\RequirePackage{alphalph} % For doubling Greek letters
+\RequirePackage{enumitem} % The enumeration workhorse
+\RequirePackage{fmtcount} % The number translation workhorse
+
+
+% Previous versions relied on the following packages that have been superceded
+% in the latest version.
+% \input{binhex} % Replaced by fmtcount
+% \RequirePackage{engord} % Replaced by fmtcount
+% \@ifclassloaded{memoir}{}{\RequirePackage{numname}} % For named
+% numbers if memoir isn't loaded. Replaced by fmtcount
+
+
+%------------------------------
+% Lowercase Greek
+%------------------------------
+
+% Thanks to T.D.'s answer on tex.sx for the basic insight
+% into how to achieve this.
+% http://tex.stackexchange.com/questions/4058/greek-numbering/4063#4063
+% And to Will Robertson's answer to the same question for pointing me to
+% the alphalph package
+
+\newcommand*{\single@greek}[1]{%
+ \expandafter\@single@greek\csname c@#1\endcsname
+}
+\newcommand*{\@single@greek}[1]{%
+ $\ifcase#1\or\alpha\or\beta\or\gamma\or\delta\or\varepsilon
+ \or\zeta\or\eta\or\theta\or\iota\or\kappa\or\lambda
+ \or\mu\or\nu\or\xi\or o\or\pi\or\varrho\or\sigma
+ \or\tau\or\upsilon\or\phi\or\chi\or\psi\or\omega
+ \else\@ctrerr\fi$
+}
+
+\newalphalph{\@greek}[alph]{\@single@greek}{24}
+\newcommand*{\greek}[1]{%
+ \expandafter\@greek\csname c@#1\endcsname
+}
+
+\AddEnumerateCounter{\greek}{\@greek}{$\omega$}
+
+%------------------------------
+% Uppercase Greek
+%------------------------------
+
+\newcommand*{\Single@Greek}[1]{%
+ \expandafter\@Single@Greek\csname c@#1\endcsname
+}
+\newcommand*{\@Single@Greek}[1]{%
+ $\ifcase#1\or A \or B\or\Gamma\or\Delta\or E
+ \or Z\or E\or\Theta\or I\or K\or\Lambda
+ \or M\or N\or \Xi\or O\or\Pi\or P\or\Sigma
+ \or T\or Y\or\Phi\or X\or\Psi\or\Omega
+ \else\@ctrerr\fi$
+}
+
+\newalphalph{\@Greek}[alph]{\@Single@Greek}{24}
+\newcommand*{\Greek}[1]{%
+ \expandafter\@Greek\csname c@#1\endcsname
+}
+
+\AddEnumerateCounter{\Greek}{\@Greek}{$W$}
+
+
+%------------------------------
+% Uppercase Hexadecimal
+%------------------------------
+
+% Thanks to egreg at tex.sx for telling me about binary.tex
+% http://tex.stackexchange.com/questions/22234/why-does-enumitem-need-the-macro-to-exist-already/22236#22236
+% Although binary.tex has now been replaced by fmtcount
+
+\newcommand*{\enumHex}[1]{%
+ \expandafter\@enumHex\csname c@#1\endcsname}
+\newcommand*{\@enumHex}[1]{%
+ \protect\Hexadecimalnum{\number#1}}
+\AddEnumerateCounter{\enumHex}{\@enumHex}{AAAA}
+
+\newenvironment{enumHexzero}{%
+ \begin{enumerate}[label=\enumHex*,start=0]%
+ }{%
+ \end{enumerate}%
+}
+
+
+%------------------------------
+% Lowercase Hexadecimal
+%------------------------------
+
+\newcommand*{\enumhex}[1]{%
+ \expandafter\@enumhex\csname c@#1\endcsname}
+\newcommand*{\@enumhex}[1]{%
+ \protect\hexadecimalnum{\number#1}}
+\AddEnumerateCounter{\enumhex}{\@enumhex}{aaaa}
+
+\newenvironment{enumhexzero}{%
+ \begin{enumerate}[label=\enumhex*,start=0]%
+ }{%
+ \end{enumerate}%
+}
+
+%------------------------------
+% Binary
+%------------------------------
+
+\newcommand*{\enumbinary}[1]{%
+ \expandafter\@enumbinary\csname c@#1\endcsname}
+\newcommand*{\@enumbinary}[1]{%
+ \protect\binarynum{\number#1}}
+\AddEnumerateCounter{\enumbinary}{\@enumbinary}{0000}
+
+\newenvironment{enumbinzero}{%
+ \begin{enumerate}[label=\enumbinary*,start=0]%
+ }{%
+ \end{enumerate}%
+}
+
+%------------------------------
+% Binary
+%------------------------------
+
+\newcommand*{\enumoctal}[1]{%
+ \expandafter\@enumoctal\csname c@#1\endcsname}
+\newcommand*{\@enumoctal}[1]{%
+ \protect\octalnum{\number#1}}
+\AddEnumerateCounter{\enumoctal}{\@enumoctal}{0000}
+
+\newenvironment{enumoctzero}{%
+ \begin{enumerate}[label=\enumoctal*,start=0]%
+ }{%
+ \end{enumerate}%
+}
+
+
+
+%------------------------------
+% "nth" (raised)
+%------------------------------
+
+\newcommand*{\raisenth}[1]{%
+ \expandafter\@raisenth\csname c@#1\endcsname}
+\newcommand*{\@raisenth}[1]{%
+ \protect\fmtcountsetoptions{fmtord=raise}%
+ \protect\ordinalnum{\number#1}}
+\AddEnumerateCounter{\raisenth}{\@raisenth}{~2nd}
+
+
+%------------------------------
+% "nth" (level)
+%------------------------------
+
+\newcommand*{\levelnth}[1]{%
+ \expandafter\@levelnth\csname c@#1\endcsname}
+\newcommand*{\@levelnth}[1]{%
+ \protect\fmtcountsetoptions{fmtord=level}%
+ \protect\ordinalnum{\number#1}}
+\AddEnumerateCounter{\levelnth}{\@levelnth}{~2nd}
+
+%------------------------------
+% "nth" words
+%------------------------------
+
+% Thanks to egreg for fixing numname and making the numname commands
+% work with labels properly.
+% http://tex.stackexchange.com/q/23043/215
+% This also gave me the clue I needed to get levelnth and raisenth working as
+% separate labels.
+
+ %%-----------------------------
+ %% Capitalised
+ %%-----------------------------
+
+\newcommand{\Nthwords}[1]{\expandafter\@Nthwords\csname c@#1\endcsname}
+\newcommand*{\@Nthwords}[1]{%
+ \protect\Numberstringnum{\number#1}}
+\AddEnumerateCounter{\Nthwords}{\@Nthwords}{Seventeenth}
+
+ %%-----------------------------
+ %% UPPERCASE
+ %%-----------------------------
+
+\newcommand*{\NTHWORDS}[1]{
+ \expandafter\@NTHWORDS\csname c@#1\endcsname}
+\newcommand*{\@NTHWORDS}[1]{
+ \protect\NUMBERstringnum{\number#1}}
+\AddEnumerateCounter{\NTHWORDS}{\@NTHWORDS}{FORTY-TWO}
+
+ %%-----------------------------
+ %% lowercase
+ %%-----------------------------
+
+\newcommand*{\nthwords}[1]{
+ \expandafter\@nthwords\csname c@#1\endcsname}
+\newcommand*{\@nthwords}[1]{
+ \protect\numberstringnum{\number#1}}
+\AddEnumerateCounter{\nthwords}{\@nthwords}{forty-two}
+
+
+
+%------------------------------
+% "n" words
+%------------------------------
+
+ %%-----------------------------
+ %% Capitalised
+ %%-----------------------------
+
+\newcommand{\Nwords}[1]{\expandafter\@Nwords\csname c@#1\endcsname}
+\newcommand*{\@Nwords}[1]{%
+ \protect\Ordinalstringnum{\number#1}}
+\AddEnumerateCounter{\Nwords}{\@Nwords}{Seventeen}
+
+
+
+ %%-----------------------------
+ %% UPPERCASE
+ %%-----------------------------
+
+\newcommand{\NWORDS}[1]{\expandafter\@NWORDS\csname c@#1\endcsname}
+\newcommand*{\@NWORDS}[1]{%
+ \protect\ORDINALstringnum{\number#1}}
+\AddEnumerateCounter{\NWORDS}{\@NWORDS}{SEVENTEEN}
+
+
+ %%-----------------------------
+ %% lowercase
+ %%-----------------------------
+
+\newcommand{\nwords}[1]{\expandafter\@nwords\csname c@#1\endcsname}
+\newcommand*{\@nwords}[1]{%
+ \protect\ordinalstringnum{\number#1}}
+\AddEnumerateCounter{\nwords}{\@nwords}{seventeen}
+
+
+%------------------------------
+% Here ends the file
+%------------------------------ \ No newline at end of file