From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/etaremune/README | 61 +++ macros/latex/contrib/etaremune/etaremune.dtx | 602 +++++++++++++++++++++++++++ macros/latex/contrib/etaremune/etaremune.pdf | Bin 0 -> 82433 bytes macros/latex/contrib/etaremune/etaremune.sty | 98 +++++ 4 files changed, 761 insertions(+) create mode 100644 macros/latex/contrib/etaremune/README create mode 100644 macros/latex/contrib/etaremune/etaremune.dtx create mode 100644 macros/latex/contrib/etaremune/etaremune.pdf create mode 100644 macros/latex/contrib/etaremune/etaremune.sty (limited to 'macros/latex/contrib/etaremune') diff --git a/macros/latex/contrib/etaremune/README b/macros/latex/contrib/etaremune/README new file mode 100644 index 0000000000..a7b6e7512a --- /dev/null +++ b/macros/latex/contrib/etaremune/README @@ -0,0 +1,61 @@ +etaremune v1.2 +-------------- + +This package implements the etaremune environment which is similar +to the enumerate environment, except that labels are decreasing +instead of increasing. This package provides an alternative to the +revnum package which uses a lot of counters. The style of lists +can be controlled locally and globally. See for more information +the pdf documentation of this package. + + +Installation +------------ + +First check whether this package can be installed by the +distribution that you use, since that will simplify installation. +For manual installations, the structure and supposed location in a +TDS compliant TeX-tree is shown in the overview below. In words, +etaremune.sty should be available to LaTeX. Don't forget to update +your filename database after installing the files. + +CTAN:/macros/latex/contrib/etaremune: official location + | + |- readme : should not be installed + |- etaremune.dtx: /source/latex/etaremune + |- etaremune.pdf: /doc/latex/etaremune + `- etaremune.sty: /tex/latex/etaremune + +The package includes pregenerated run and doc files, but you can +reproduce them from the source if necessary. See the first lines of +etaremune.dtx for information how to do this. + +See the documentation of your LaTeX distribution or the TeX +Frequently Asked Questions for more information on installing +etaremune into your LaTeX distribution +(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages). + + +License +------- + +Copyright (C) 2004-2005 Hendri Adriaens + +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 2003/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +This Current Maintainer of this work is Hendri Adriaens. + +This work consists of the file etaremune.dtx and the +derived file etaremune.sty. + +The following files constitute the etaremune package and must be +distributed as a whole: readme, etaremune.dtx, etaremune.pdf and +etaremune.sty. diff --git a/macros/latex/contrib/etaremune/etaremune.dtx b/macros/latex/contrib/etaremune/etaremune.dtx new file mode 100644 index 0000000000..efb39513fa --- /dev/null +++ b/macros/latex/contrib/etaremune/etaremune.dtx @@ -0,0 +1,602 @@ +% \iffalse meta-comment +% +% etaremune package by Hendri Adriaens. +% +% Extract package files and examples and create documentation: +% latex etaremune.dtx +% latex etaremune.dtx +% bibtex etaremune +% makeindex -s gglo.ist -o etaremune.gls etaremune.glo +% makeindex -s gind.ist -o etaremune.ind etaremune.idx +% latex etaremune.dtx +% latex etaremune.dtx +% +% To finish the installation you have to move the following +% file into a directory searched by LaTeX: +% etaremune.sty +% +%% ---------------------------------- +%% Copyright (C) 2005 Hendri Adriaens +%% ---------------------------------- +%% +%% 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 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% This Current Maintainer of this work is Hendri Adriaens. +%% +%% This work consists of the file etaremune.dtx and the +%% derived file etaremune.sty. +%% +%% The following files constitute the etaremune package and must be +%% distributed as a whole: readme, etaremune.dtx, etaremune.pdf and +%% etaremune.sty. +%% +% \fi +% +% \iffalse +%<*batchfile> +\begingroup +\input docstrip +\keepsilent +\preamble +\endpreamble +\askforoverwritefalse +\generate{ + \file{etaremune.sty}{\from{etaremune.dtx}{etaremune}} + \file{empream.ble}{\from{etaremune.dtx}{preamble}} + \file{etaremune.bib}{\from{etaremune.dtx}{bib}} +} +\endgroup +% +%<*driver> +\documentclass[a4paper]{ltxdoc} +\input{empream.ble} +\begin{document} +\DocInput{etaremune.dtx} +\let\Section\section\def\section*#1{\Section*{#1}\addcontentsline{toc}{section}{#1}} +\bibliographystyle{plain} +\bibliography{etaremune} +\PrintChangesX\PrintIndexX +\end{document} +% +% \fi +% +% \changes{v1.0}{2005/03/12}{Initial release} +% \changes{v1.1}{2005/04/15}{Simplified} +% \changes{v1.1}{2005/04/15}{Added check on negative labels} +% \changes{v1.2}{2005/06/01}{Added global and local style control for lists} +% +% \GetFileInfo{etaremune.sty} +% +% \CheckSum{141} +% +%\DoNotIndex{\@auxout,\@currentlabel,\@enumctr,\@enumdepth,\@ifundefined, +%\@latex@warning@no@line,\@ne,\@spaces,\@toodeep,\addtocounter,\advance, +%\AtEndDocument,\csname,\def,\edef,\else,\endcsname,\endlist,\expandafter, +%\fi,\gdef,\hss,\ifnum,\immediate,\let,\list,\llap,\makelabel,\NeedsTeXFormat, +%\newcounter,\newenvironment,\ProvidesPackage,\relax,\romannumeral,\setcounter, +%\space,\stepcounter,\string,\the,\thr@@,\write,\xdef,\z@,\m@ne, +%\define@key,\define@cmdkey,\ProcessOptionsX,\presetkeys,\DeclareOptionX, +%\@tempa,\@tempb,\CurrentOption,\noexpand,\PackageWarning,\RequirePackage, +%\setkeys,\setlength,\setrmkeys,\XKV@for@n,\c@EM@etaremunectr,\c@EM@itemctr} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +%\title{The \pf{etaremune} package +%\thanks{This package can be downloaded from CTAN mirrors: +%\texttt{/macros/latex/contrib/etaremune}. See \texttt{etaremune.dtx} for +%information on installing \pf{etaremune} into your \LaTeX\ +%distribution and for the license of this package.}} +%\author{Hendri Adriaens\\\url{http://stuwww.uvt.nl/~hendri}} +%\date{\fileversion\ (\filedate)} +%\maketitle +% +%\begin{abstract}\noindent +%This package implements the |etaremune| environment which is similar +%to the |enumerate| environment, except that labels are decreasing +%instead of increasing. This package provides an alternative to the +%\pf{revnum} package which uses a lot of counters. The style of lists +%can be controlled locally and globally. +%\end{abstract} +% +%\begin{multicols}{2} +%[\section*{Contents} +%\setlength{\columnseprule}{.4pt} +%\setlength{\columnsep}{18pt}] +%\tableofcontents +%\end{multicols} +% +%\section{Introduction} +%This package implements the |etaremune| environment which labels +%items with decreasing numbers, starting from the number of items +%in the environment. Since this number is not known at the start of +%the environment, we use a two step procedure. On the first \LaTeX\ +%run, we determine the number of items in each |etaremune| +%environment and number the items in a default way and on the second +%run, we number all items correctly. +% +%The \pf{revnum} package \cite{revnum} already implements this +%environment. It provides the |revnumerate| environment which labels +%the items with decreasing numbers. This package has as main drawback +%that it consumes numerous counters. It uses 4 counters plus 1 for +%every |revnumerate| environment in the document. In big documents, +%this can cause problems. The package at hand uses only 2 counters, +%irrespective of the number of |etaremune| environments used in the +%document. +% +%I created the first version of the main code of this package to solve +%a question on the +%\TeX-NL mailing list. I figured that it might be a good idea to put +%my code in a small package on CTAN as an alternative for \pf{revnum}. +% +%\section{The \texttt{etaremune} environment} +%\DescribeEnv{etaremune} +%The |etaremune| environment works just as the |enumerate| environment +%and has the same control possibilities using macros like |\labelenumi|, +%|\theenumi| and |\@listi|. See for a detailed description of customizing +%|enumerate| and |etaremune| environments a \LaTeX\ manual, for instance +%\cite{companion}, pages 128--131 and 144--151. +% +%The |etaremune| environment is different from the |enumerate| environment +%in labeling the items. This environment labels items with decreasing +%numbers. +%\begin{command} +% `\cs{begin\char`\{etaremune\char`\}}\oarg{options}' +% `\meta{items}' +% `\cs{end\char`\{etaremune\char`\}}' +%\end{command} +% +%As \LaTeX\ cannot know at the beginning of the environment how many +%items it will have to typeset, this environment computes the +%starting point of the list in two \LaTeX\ runs, using the auxiliary +%file. On the first run, the number of items is counted and the items +%will be numbered with increasing numbers (as in the |enumerate| +%environment) and on the second run, the item labels will be set +%correctly. See an example below. +% +%\vspace*{.2cm}\noindent +%\begin{minipage}{.33\linewidth} +%\begin{etaremune} +%\item Not important. +%\item Quite relevant. +%\item Paramount. +%\end{etaremune} +%\end{minipage} +%\begin{minipage}{.666\linewidth} +%\begin{example} +% \begin{etaremune} +% \item Not important. +% \item Quite relevant. +% \item Paramount. +% \end{etaremune} +%\end{example} +%\end{minipage} +%\vspace*{.2cm} +% +%The |etaremune| environment will avoid creating labels with negative +%numbers as this can cause problems when using alphabets for +%labels.\footnote{Positions -1, -2,\dots\ in an alphabet are not +%defined by the \LaTeX\ macro \cs{@alph} and friends.} So when +%adding items to an existing list, these will be numbered with 0 on +%the next run. Another \LaTeX\ run will settle the item labels again. +% +%The optional argument \meta{options} can be used to control the +%style of the environment (see below) and the starting point (if one +%wants to replace the starting point computed by \pf{etaremune}). +% +%\vspace*{.2cm}\noindent +%\begin{minipage}{.33\linewidth} +%\begin{etaremune}[start=5] +%\item First. +%\item Second. +%\item Third. +%\end{etaremune} +%\end{minipage} +%\begin{minipage}{.666\linewidth} +%\begin{example} +% \begin{etaremune}[start=5] +% \item First. +% \item Second. +% \item Third. +% \end{etaremune} +%\end{example} +%\end{minipage} +%\vspace*{.2cm} +% +%The |etaremune| environment can be nested up to four levels deep, +%like the standard |enumerate| environment. The example below also +%shows an example of customizing item labels and referring to items. +%Notice that it takes three \LaTeX\ runs for references to items in +%the |etaremune| environment to settle. +% +%\vspace*{.2cm}\noindent +%\begin{minipage}{.33\linewidth} +%\renewcommand{\labelenumi}{\theenumi)} +%\renewcommand{\theenumii}{\roman{enumii}} +%\begin{enumerate} +%\item First. +%\begin{etaremune} +%\item third.\label{notice} +%\item second. +%\item first. +%\end{etaremune} +%\item Second. +%\item Third. +%\end{enumerate} +%Notice item~\ref{notice}. +%\end{minipage} +%\begin{minipage}{.666\linewidth} +%\begin{example} +% \renewcommand{\labelenumi}{\theenumi)} +% \renewcommand{\theenumii}{\roman{enumii}} +% \begin{enumerate} +% \item First. +% \begin{etaremune} +% \item third.\label{notice} +% \item second. +% \item first. +% \end{etaremune} +% \item Second. +% \item Third. +% \end{enumerate} +% Notice item~\ref{notice}. +%\end{example} +%\end{minipage} +%\vspace*{.2cm} +% +%\DescribeOptions{topsep,partopsep,itemsep,parsep,leftmargin,rightmargin,% +% listparindent,itemindent,labelwidth,labelsep} +%The \pf{etaremune} package allows for specifying some style +%parameters to control the markup of lists. These are the vertical +%lengths |\topsep|, |\partopsep|, |\itemsep| and |\parsep| and the +%horizontal lengths |\leftmargin|, |\rightmargin|, |\listparindent|, +%|\itemindent|, |\labelwidth| and |\labelsep|.\footnote{See for +%instance \cite{companion}, pages 144--151, for more information.} +%When set through the optional argument \meta{options}, these lengths +%are set locally (so holding only for the environment at hand). +% +%\vspace*{.2cm}\noindent +%\begin{minipage}{.33\linewidth} +%\begin{etaremune}[itemsep=0pt,parsep=0pt] +%\item third. +%\item second. +%\begin{etaremune} +%\item second. +%\item first. +%\end{etaremune} +%\item first. +%\end{etaremune} +%\end{minipage} +%\begin{minipage}{.666\linewidth} +%\begin{example} +% \begin{etaremune}[itemsep=0pt,parsep=0pt] +% \item third. +% \item second. +% \begin{etaremune} +% \item second. +% \item first. +% \end{etaremune} +% \item first. +% \end{etaremune} +%\end{example} +%\end{minipage} +%\vspace*{.2cm} +% +%One can also change the style of all |etaremune| environments +%throughout the document by specifying these options in the +%|\usepackage| command. +% +%\vspace*{.2cm}\noindent +%\begin{minipage}{.33\linewidth} +%\begin{etaremune}[leftmargin=0pt,labelsep=20pt] +%\item third. +%\item second. +%\begin{etaremune}[leftmargin=0pt,labelsep=20pt] +%\item second. +%\item first. +%\end{etaremune} +%\item first. +%\end{etaremune} +%\end{minipage} +%\begin{minipage}{.666\linewidth} +%\begin{example} +% \usepackage[leftmargin=0pt,labelsep=20pt]{etaremune} +% ... +% \begin{etaremune} +% \item third. +% \item second. +% \begin{etaremune} +% \item second. +% \item first. +% \end{etaremune} +% \item first. +% \end{etaremune} +%\end{example} +%\end{minipage} +%\vspace*{.2cm} +% +%\StopEventually{} +% +% \section{Implementation} +% \begin{macrocode} +%<*etaremune> +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{etaremune}[2005/06/01 v1.2 Reversed enumerate (HA)] +% \end{macrocode} +% Build global and local options. We need some delicate work with +% presets here as \LaTeX\ resets dimens locally in each environment. +% So setting lengths globally couldn't be done without presets. +% \begin{macrocode} +\RequirePackage{xkeyval} +\def\@tempa#1#2{% + \DeclareOptionX{#1}{\presetkeys[EM]{template}{#1=##1}{}}% + \define@key[EM]{template}{#1}{\setlength#2{##1}}% +} +\XKV@for@n{topsep,partopsep,itemsep,parsep,leftmargin,rightmargin,% + listparindent,itemindent,labelwidth,labelsep}\@tempb{% + \edef\@tempb{% + {\@tempb}\expandafter\noexpand\csname\@tempb\endcsname + }% + \expandafter\@tempa\@tempb +} +\DeclareOptionX*{% + \PackageWarning{etaremune}{Unknown option `\CurrentOption'}% +} +\ProcessOptionsX +\define@cmdkey[EM]{etaremune}[EM@]{start}{} +\presetkeys[EM]{etaremune}{start=-1}{} +% \end{macrocode} +% Two counters needed in the package. +% \begin{macrocode} +\newcounter{EM@itemctr} +\newcounter{EM@etaremunectr} +% \end{macrocode} +% \begin{environment}{etaremune} +% The main code. +% \begin{macrocode} +\newenvironment{etaremune}[1][]{% +% \end{macrocode} +% There is a (usual) maximum to nesting. +% \begin{macrocode} + \ifnum\@enumdepth>\thr@@\@toodeep\else + \setkeys*[EM]{etaremune}{#1}% + \advance\@enumdepth\@ne +% \end{macrocode} +% Count the environments. Each environment gets a unique identification +% to be used to define macros containing the number of items and +% to set starting points on the second run. +% \begin{macrocode} + \stepcounter{EM@etaremunectr}% +% \end{macrocode} +% Backup the number of items that we have seen so far in a higher +% level. We reinitialize the items counter when we get back from +% the nested environment. Unfortunately, locally counting items is +% not possible as \LaTeX\ uses a box to typeset the item label. +% Otherwise, this macros would not be necessary. +% \begin{macrocode} + \edef\EM@currnum{\the\c@EM@itemctr}% +% \end{macrocode} +% This is a backup of the current level list number. This is used to +% be able to identify the current list at the end of the list taking +% into account possibly nested lists in this list. +% \begin{macrocode} + \edef\EM@currlist{\romannumeral\c@EM@etaremunectr}% +% \end{macrocode} +% Define the current level list counter. +% \begin{macrocode} + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% +% \end{macrocode} +% Start counting items. +% \begin{macrocode} + \setcounter{EM@itemctr}\z@ +% \end{macrocode} +% Initialize the step size to count backwards. +% \begin{macrocode} + \let\EM@step\m@ne + \ifnum\EM@start<\z@ +% \end{macrocode} +% If we have no optional input, check whether the macro for the +% current list has been defined. +% \begin{macrocode} + \@ifundefined{etaremune@\EM@currlist}{% +% \end{macrocode} +% If the macro is not defined, we count forwards (like |enumerate|). +% Define the macro to produce a warning. This warning will +% be issued |\AtEndDocument| to notify the user that the document +% should be rerun. +% \begin{macrocode} + \let\EM@step\@ne + \setcounter\@enumctr\m@ne + \gdef\EM@rerun{% + \@latex@warning@no@line{Etaremune labels have changed.^^J + \@spaces\@spaces\@spaces\space\space Rerun to get them right}% + }% + }{% +% \end{macrocode} +% If the macro is defined, it contains the number of items of the +% current list at this depth. Use that to initiate the label counter. +% \begin{macrocode} + \setcounter\@enumctr{\csname etaremune@\EM@currlist\endcsname}% + }% +% \end{macrocode} +% If there was input, use that to set the starting point. +% \begin{macrocode} + \else\setcounter\@enumctr\EM@start\fi + \stepcounter\@enumctr +% \end{macrocode} +% Start the list. +% \begin{macrocode} + \list{% +% \end{macrocode} +% At every item, step the label counter, check whether it is smaller +% than 0, increase the items +% counter by 1 and define the current label for referring to items. +% \begin{macrocode} + \addtocounter\@enumctr\EM@step + \ifnum\csname c@\@enumctr\endcsname<\z@\setcounter\@enumctr\z@\fi + \stepcounter{EM@itemctr}% + \xdef\@currentlabel{% + \csname p@\@enumctr\endcsname\csname the\@enumctr\endcsname + }% +% \end{macrocode} +% Typesets the item label. +% \begin{macrocode} + \csname label\@enumctr\endcsname +% \end{macrocode} +% Define how to align the label. This is the same as for the |enumerate| +% environment. +% \begin{macrocode} + }{\def\makelabel##1{\hss\llap{##1}}\setrmkeys[EM]{template}}% + \fi +}{% +% \end{macrocode} +% The end of the environment. End the list. +% \begin{macrocode} + \endlist +% \end{macrocode} +% Write the number of items of the current list to the auxiliary file. +% \begin{macrocode} + \immediate\write\@auxout{\string\gdef\expandafter\string + \csname etaremune@\EM@currlist\endcsname{\the\c@EM@itemctr}% + }% +% \end{macrocode} +% Restore the items counter to continue counting the number of items +% in the environment at this level. This is needed when lists were +% nested. +% \begin{macrocode} + \setcounter{EM@itemctr}\EM@currnum +} +% \end{macrocode} +% \end{environment} +% Issue a warning when item labels haven't settled yet. +% \begin{macrocode} +\AtEndDocument{\EM@rerun} +\let\EM@rerun\relax +% +% \end{macrocode} +% \Finale +% \endinput +% \iffalse +%<*preamble> +\usepackage{url} +\usepackage{footmisc} +\usepackage{filecontents} +\usepackage{fourier} +\usepackage{etaremune} +\usepackage{xkeyval} +\usepackage{xcolor} +\usepackage{listings} +\lstnewenvironment{command}{% + \lstset{columns=flexible,frame=single,backgroundcolor=\color{blue!20}, + xleftmargin=\fboxsep,xrightmargin=\fboxsep,escapeinside=`',gobble=1}}{} +\lstnewenvironment{example}{% + \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single, + backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep, + xrightmargin=\fboxsep,gobble=1}}{} +\makeatletter +\def\tableofcontents{\@starttoc{toc}} +\def\changes@#1#2#3{% + \protected@edef\@tempa{% + \noexpand\glossary{\textbf{#1}\hfill\emph{(#2)}% + \levelchar + \ifx\saved@macroname\@empty + \space\actualchar\generalname + \else + \expandafter\@gobble\saved@macroname + \actualchar\string\verb\quotechar*% + \verbatimchar\saved@macroname\verbatimchar + \fi + :\levelchar #3}% + }% + \@tempa\endgroup\@esphack +} +\def\eTeX{$\m@th\varepsilon$-\TeX} +\renewenvironment{theglossary}{% + \section*{Version history}% + \GlossaryParms \let\item\@idxitem \ignorespaces + }{}% +\def\DescribeEnv#1{\leavevmode\@bsphack + \marginpar{\raggedleft\PrintDescribeEnv{#1}}% + \SpecialEnvIndex{#1}\@esphack\ignorespaces} +\def\PrintDescribeEnv#1{\strut\emph{environment}\\\MacroFont #1\ } +\def\SpecialEnvIndex#1{\@bsphack + \index{#1\actualchar{\protect\ttfamily#1} + (environment)\encapchar usage}% + \index{environments:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar + usage}\@esphack} +\def\SpecialMainEnvIndex#1{\@bsphack\special@index{% + #1\actualchar + {\string\ttfamily\space#1} + \encapchar main}% + \special@index{environments:\levelchar#1\actualchar{% + \string\ttfamily\space#1}\encapchar + main}\@esphack} +\def\SpecialOptionIndex#1{\@bsphack + \index{#1\actualchar{\protect\ttfamily#1} + (option)\encapchar usage}% + \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar + usage}\@esphack} +\def\DescribeOptions#1{\leavevmode\@bsphack + \marginpar{\raggedleft\strut\emph{options}% + \@for\@tempa:=#1\do{% + \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa + }}\@esphack\ignorespaces} +\makeatother +\def\PrintChangesX{% + \begingroup + \let\efill\relax + \PrintChanges + \endgroup +} +\def\PrintIndexX{% + \begingroup + \setcounter{IndexColumns}{2} + \setlength{\columnsep}{18pt}% + \setlength{\columnseprule}{.4pt}% + \PrintIndex + \endgroup +} +\def\larg#1{{\ttfamily\char`\<}\meta{#1}{\ttfamily\char`\>}} +\def\pf#1{\textsf{#1}} +\EnableCrossrefs +\RecordChanges +\CodelineIndex +% +% +%<*bib> +@BOOK{companion, + author = {Frank Mittelbach and Michel Goossens and Johannes Braams and David Carlisle and Chris Rowley}, + title = {The {\LaTeX} {C}ompanion, {S}econd {E}dition}, + year = {2004}, + publisher = {{Addison-Wesley}} +} + +@MISC{revnum, + author = {J\"orn Wilms}, + title = {\pf{revnum} package, v1.0, 1997/05/10}, + howpublished = {\url{CTAN:/macros/latex/contrib/revnum}} +} +% +% +% \fi diff --git a/macros/latex/contrib/etaremune/etaremune.pdf b/macros/latex/contrib/etaremune/etaremune.pdf new file mode 100644 index 0000000000..cc34925a7d Binary files /dev/null and b/macros/latex/contrib/etaremune/etaremune.pdf differ diff --git a/macros/latex/contrib/etaremune/etaremune.sty b/macros/latex/contrib/etaremune/etaremune.sty new file mode 100644 index 0000000000..f860abc4b7 --- /dev/null +++ b/macros/latex/contrib/etaremune/etaremune.sty @@ -0,0 +1,98 @@ +%% +%% This is file `etaremune.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% etaremune.dtx (with options: `etaremune') +%% +%% ---------------------------------- +%% Copyright (C) 2005 Hendri Adriaens +%% ---------------------------------- +%% +%% 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 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% This Current Maintainer of this work is Hendri Adriaens. +%% +%% This work consists of the file etaremune.dtx and the +%% derived file etaremune.sty. +%% +%% The following files constitute the etaremune package and must be +%% distributed as a whole: readme, etaremune.dtx, etaremune.pdf and +%% etaremune.sty. +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{etaremune}[2005/06/01 v1.2 Reversed enumerate (HA)] +\RequirePackage{xkeyval} +\def\@tempa#1#2{% + \DeclareOptionX{#1}{\presetkeys[EM]{template}{#1=##1}{}}% + \define@key[EM]{template}{#1}{\setlength#2{##1}}% +} +\XKV@for@n{topsep,partopsep,itemsep,parsep,leftmargin,rightmargin,% + listparindent,itemindent,labelwidth,labelsep}\@tempb{% + \edef\@tempb{% + {\@tempb}\expandafter\noexpand\csname\@tempb\endcsname + }% + \expandafter\@tempa\@tempb +} +\DeclareOptionX*{% + \PackageWarning{etaremune}{Unknown option `\CurrentOption'}% +} +\ProcessOptionsX +\define@cmdkey[EM]{etaremune}[EM@]{start}{} +\presetkeys[EM]{etaremune}{start=-1}{} +\newcounter{EM@itemctr} +\newcounter{EM@etaremunectr} +\newenvironment{etaremune}[1][]{% + \ifnum\@enumdepth>\thr@@\@toodeep\else + \setkeys*[EM]{etaremune}{#1}% + \advance\@enumdepth\@ne + \stepcounter{EM@etaremunectr}% + \edef\EM@currnum{\the\c@EM@itemctr}% + \edef\EM@currlist{\romannumeral\c@EM@etaremunectr}% + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \setcounter{EM@itemctr}\z@ + \let\EM@step\m@ne + \ifnum\EM@start<\z@ + \@ifundefined{etaremune@\EM@currlist}{% + \let\EM@step\@ne + \setcounter\@enumctr\m@ne + \gdef\EM@rerun{% + \@latex@warning@no@line{Etaremune labels have changed.^^J + \@spaces\@spaces\@spaces\space\space Rerun to get them right}% + }% + }{% + \setcounter\@enumctr{\csname etaremune@\EM@currlist\endcsname}% + }% + \else\setcounter\@enumctr\EM@start\fi + \stepcounter\@enumctr + \list{% + \addtocounter\@enumctr\EM@step + \ifnum\csname c@\@enumctr\endcsname<\z@\setcounter\@enumctr\z@\fi + \stepcounter{EM@itemctr}% + \xdef\@currentlabel{% + \csname p@\@enumctr\endcsname\csname the\@enumctr\endcsname + }% + \csname label\@enumctr\endcsname + }{\def\makelabel##1{\hss\llap{##1}}\setrmkeys[EM]{template}}% + \fi +}{% + \endlist + \immediate\write\@auxout{\string\gdef\expandafter\string + \csname etaremune@\EM@currlist\endcsname{\the\c@EM@itemctr}% + }% + \setcounter{EM@itemctr}\EM@currnum +} +\AtEndDocument{\EM@rerun} +\let\EM@rerun\relax +\endinput +%% +%% End of file `etaremune.sty'. -- cgit v1.2.3