参考自定义的“枚举”计数器

参考自定义的“枚举”计数器

背景

我正在排版某个数学对象的条件列表。有三个条件。稍后我希望为第三个条件提供一个等效条件。因此,最好有这样的编号:

c) 条件 1

b) 条件 2

c) 条件 3

而稍后会有

c') 条件 3(替代方案)

我的想法是使用 a\label{c}表示原始条件并写入

\item[\ref{c}]\label{c-prime} ...

并希望能够以这种方式引用 c')。但\ref{c-prime}结果是定义的数量,而不是枚举计数器的数量。

解决方案

我有一个解决方案,基于计数器的硬编码起点和固定布局。使用enumitem我可以写

\begin{enumerate}[label=\alph*'),ref=(\alph*'),start=3]

一切顺利

问题

但也有一些缺点:

  • 我必须手动选择柜台的起点,因此无法自动更改顺序;
  • 标签和参考的格式是硬编码的,如果我更改全局格式,我仍然必须在本地进行调整。

我该怎么做才能让它更加灵活?

我知道这是一个相当学术的问题,因为它已经起作用了,但我很好奇

答案1

enumitem软件包为您提供了更多功能——您可以创建enumerate类似列表的环境并全局设置其格式。然后,您可以使用计数器保存当前项目的值,以便start稍后提供。

\documentclass{article}
\usepackage{lipsum}% just for blind text
\usepackage{enumitem}
\newlist{conditions}{enumerate}{1}
\newlist{altconditions}{enumerate}{1}
\setlist[conditions]{label=\alph*),ref=(\alph*)}
\setlist[altconditions]{label=\alph*$'$),ref=(\alph*$'$)}
\newcounter{favoritecondition}
\begin{document}

\lipsum[1]

\begin{conditions}
\item condition 1
\item condition 2
\item condition 3\label{c}\setcounter{favoritecondition}{\value{conditionsi}}
\item condition 4
\end{conditions}

\lipsum[2]

An alternative to condition \ref{c} is

\begin{altconditions}[start=\value{favoritecondition}]
\item\label{c-prime} condition 3 alternative 
\end{altconditions}

We leave as an exercise to the reader that \ref{c} and \ref{c-prime} are equivalent.
\end{document}

相关内容