etaremune
我想创建指向或环境项目的超链接revnum
。它适用于枚举环境,但如何使用反向编号的列表执行相同操作?以下是仅指向环境的超链接起作用的示例enumerate
。
\documentclass[a4paper,10pt]{article}
\usepackage{etaremune}
\usepackage{revnum}
\usepackage{hyperref}
\begin{document}
\begin{enumerate}
\item aaa \label{1}
\item bbb \label{2}
\end{enumerate}
\begin{etaremune}[start=4]
\item ccc \label{4}
\item ddd \label{3}
\end{etaremune}
\begin{revnumerate}[6]
\item eee \label{6}
\item fff \label{5}
\end{revnumerate}
\ref{1}, \ref{2}, \ref{3}, \ref{4}, \ref{5}, \ref{6}
\end{document}
在相应的 pdf 中, \ref{3} 和 \ref{4} 并没有像应该的那样链接到第 3.ddd 行和第 4.ccc 行,而是链接到了枚举环境的最后一项,即第 2.bbb 行。
答案1
这是一种似乎有效的方法(并且允许嵌套枚举)。
\documentclass[a4paper,10pt]{article}
\usepackage{etaremune}
\usepackage[colorlinks]{hyperref}
\providecommand*{\phantomsection}{}% for compatibility if hyperref not loaded
\newcommand{\lebal}{\phantomsection\label}
\begin{document}
\begin{etaremune}[start=4]
\item \lebal{A} ccc
\item \lebal{B} ddd
\item \lebal{C} and
\begin{etaremune}
\item \lebal{C.top} eee
\item \lebal{C.middle} fff
\item \lebal{C.bottom} ggg
\end{etaremune}
\end{etaremune}
\ref{A}, \ref{B}, \ref{C} and \ref{C.top}, \ref{C.middle}, \ref{C.bottom}
\end{document}
答案2
我找到了一种解决方法:使用 newenvironment 时,反向编号的超链接可以工作(最初由姆赫尔文斯在有没有办法在枚举环境中获得反向编号?):
\newenvironment{benumerate}[1]{
\let\oldItem\item
\def\item{\addtocounter{enumi}{-2}\oldItem}
\begin{enumerate}
\setcounter{enumi}{#1}
\addtocounter{enumi}{1}
}{
\end{enumerate}
}