有没有办法在枚举环境中获得反向编号?

有没有办法在枚举环境中获得反向编号?

为了建立出版物列表,我希望将最新的出版物显示在列表顶部,同时保持编号相似。这可以通过执行以下操作手动实现:

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

但是否存在更有原则性的方法?

答案1

etaremune软件包提供了etaremune执行此操作的环境。请注意,需要运行两次编译才能获得正确的编号。

在此处输入图片描述

\documentclass{article}
\usepackage{etaremune}
\begin{document}
\begin{etaremune}
  \item Last things first
  \item \ldots
  \item First things last
\end{etaremune}
\end{document}

答案2

这是我首先想到的解决方案。实际上有点像 hack,但效果很好。

\documentclass{article}

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

\newenvironment{benumerate}[1]{
    \let\oldItem\item
    \def\item{\addtocounter{enumi}{-2}\oldItem}
    \begin{enumerate}
    \setcounter{enumi}{#1}
    \addtocounter{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}

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

环境benumerate需要一个强制参数:列表的第一个数字。理想情况下,您不必提供它(如果您总是希望列表以 1 结尾)。但该解决方案会稍微复杂一些。

相关内容