在枚举中使用标签来获取前一项的值

在枚举中使用标签来获取前一项的值

我有一个定义中的条件列表,如下所示:

\begin{enumerate}
\item \( \recfnl{j}{X \Tplus 0^{\pair{n}{0} - 1}\concat[0]}{}\diverge \) 
\item \( \recfnl{j}{X \Tplus 0^{\pair{n}{0} - 1}\concat[1]}{}\diverge \) 
\item \( \recfnl{j}{X \Tplus 0^{\pair{n}{0} - 1}\concat[0]}{} \compat \recfnl{j}{X \Tplus 0^{\pair{n}{0} - 1}\concat[1]}{} \) 
\item \( \recfnl{j}{X \Tplus Z}{} \neq B \) 
\item \( B \Tplus \jump{X} \Tgeq Z \) \label{def:trackable:B-computes}
\end{enumerate}

我想说的是:

When conditions (1)-(\ref{def:trackable:B-computes} -1) fail then...

其中 \ref{def:trackable:B-computes} -1 为我提供了列表中前一个项目的值。显然,我可以只标记列表中的前一个项目,但我希望即使我最终更改/重新排序/等等前面的项目,它也能正常工作。

我正在使用 enumitem(在 amsart 中)。我发现了这个回答但我希望这会更容易。如果我需要定义另一个外部计数器或其他非常复杂的东西,我会放弃并手动完成。

答案1

\ref不可扩展。但是,refcount包提供了\getrefnumber可扩展的。

由于该方法通过将信息写入aux文件来工作\newlabel{def:trackable:B-computes}{{5}{1}{}{}{}},因此需要两次编译才能解析该数字。

\documentclass{article}
\usepackage{refcount}
\begin{document}
\begin{enumerate}
\item First 
\item Second 
\item Third 
\item Fourth
\item Fifth \label{def:trackable:B-computes}
\end{enumerate}

When conditions (1)-(\the\numexpr
  \getrefnumber{def:trackable:B-computes} -1\relax
  ) fail then...
\end{document}

在此处输入图片描述

相关内容