Is there a way to get reverse numbering on the enumerate environment?

To build a list of publications, I wish to show the most recent on top of the list, while keeping the numbering similar. This can be achieved manually by doing something like:

\begin{enumerate}
\item[42] pub num 42
\item[41] pub num 41
\item[...]
\item[1] pub num 1
\end{enumerate}

but is there a more principled approach?

-
See the etaremune package. I think there was a question about reverse numbering of bibliographies as well, I'll search. Edit: tex.stackexchange.com/questions/58642/bibtex-reverse-numbering/… –  Torbjørn T. Apr 23 '13 at 12:31
CTAN also lists revnumerate, but I'm afraid it's not included in TL. –  Paulo Cereda Apr 23 '13 at 14:48
@PauloCereda: it’s revnum, and it’s not in tl because the author didn’t provide any statement of the licence — any licence must be listed, as otherwise no-one knows what the licence may be. (nowadays we might prod the author for a statement of licence, but revnum was uploaded in 1998, somewhat before we had started paying detailed attention to the licensing situation.) –  wasteofspace Apr 23 '13 at 16:00
@wasteofspace: Ah I see, thanks! :) –  Paulo Cereda Apr 23 '13 at 16:08

The etaremune package provides an etaremune environment that does just this. Note that two compile runs is necessary to get the correct numbering.

\documentclass{article}
\usepackage{etaremune}
\begin{document}
\begin{etaremune}
\item Last things first
\item \ldots
\item First things last
\end{etaremune}
\end{document}
-
+1 for the name of the package –  meduz May 13 '13 at 11:32
The problem I encountered with etaremune is that I do not seem to be able to change margins and indentation for the list, as I can with the enumerate package. –  user47979 Mar 14 '14 at 18:50
@user47979 You could always ask a new question about that problem. –  Torbjørn T. Mar 14 '14 at 19:11

Here's a the first solution that comes to mind. Kind of a hack actually, but it works fine.

\documentclass{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newenvironment{benumerate}[1]{
\let\oldItem\item
\begin{enumerate}
\setcounter{enumi}{#1}
}{
\end{enumerate}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{enumerate}
\item A  % 1
\item B  % 2
\item C  % 3
\end{enumerate}

\begin{benumerate}{9}
\item A  % 9
\item B  % 8
\item C  % 7
\end{benumerate}

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The benumerate environment expects one mandatory argument: the first number of the list. Ideally you wouldn't have to give it (if you always expect to end the list with 1). But that solution would be a bit more complicated.

-
Hm. I'm just now seeing Torbjørn's comment. Of course the etaremune package is more elegant than my hack. And more importantly, it has a much funnier name. ;-) –  mhelvens Apr 23 '13 at 14:44