步骤列表:“第 k 步(共 n 步)”

步骤列表:“第 k 步(共 n 步)”

我正在尝试提出一个新的枚举列表环境“stepslist”,其中项目标记为“第 k 步,共 n 步”,其中 n 是一个 stepslist 环境中的项目总数,k 是其中的第 k 个项目。因此例如代码

\begin{stepslist}

\item A

\item B

\item C

\end{stepslist}

应呈现为:

第 1 步(共 3 步):A

第 2 步(共 3 步):B

步骤 3(共 3 步):C

\begin{stepslist}

\item A

\item B

\item C

\item D

\end{stepslist}

应呈现为:

第 1 步(共 4 步):A

第 2 步(共 4 步):B

步骤 3(共 4 步):C

步骤 4(共 4 步):D

我不想自己定义变量 n;我希望它的值由宏自动确定。与 GPT4 的对话建议采用“两遍方法”(这是有道理的,因为据我所知,它LaTeX在列表环境的开头并不知道其中有多少个项目)。

我不知道这是否可以做到,但如果可以的话,我将非常感激一种可以在 Overleaf 中起作用的方法。

答案1

您可以设置一个用于计数项目的标签:

\documentclass{article} 

\usepackage{enumitem} % 
\newlist{stepslist}{enumerate}{1}
\setlist[stepslist,1]{label={Step \arabic* of \ref{steplist:\themylistcnt}:},ref=\arabic{stepslisti}}

\newcounter{mylistcnt} % for a unique label
\AddToHook{env/stepslist/begin}{\stepcounter{mylistcnt}}
\AddToHook{env/stepslist/end}{\label{steplist:\themylistcnt}}

\begin{document}

\begin{stepslist}
\item A
\item B
\item C
\item D
\end{stepslist}


\begin{stepslist}
\item A
\item B
\item C
\end{stepslist}

\end{document}

在此处输入图片描述

相关内容