共享计数器(在描述环境之间)导致“未定义的控制序列”

共享计数器(在描述环境之间)导致“未定义的控制序列”

目的是在描述环境中共享计数器SharedCTR1。以下代码仅适用于一个描述环境,但不能同时适用于两个描述环境。

\documentclass{report}

\begin{document}

{\newcounter{SharedCTR}
\def\SharedCTR1{\stepcounter{SharedCTR}\arabic{SharedCTR}}

\section{Section one}

\begin{description}
  \item[desc \SharedCTR1.] text text.
  \item[desc \SharedCTR1.] text text text.
  \item[desc \SharedCTR1.] text text text text.
\end{description}                                %% In original doc: extra curly bracket was here.


\section{Section two}

\begin{description}
  \item[desc \myUseCaseCTR1.] text text.          % Fails on this line.
  \item[desc \myUseCaseCTR1.] text text text.
  \item[desc \myUseCaseCTR1.] text text text text.
\end{description}

\end{document}

我一开始以为问题出在名称中的数字1,但如果我将其删除,它仍然不起作用。错误如下:

! Undefined control sequence.
<argument> desc \myUseCaseCTR 
                              1.
l.20   \item[desc \myUseCaseCTR1.]
                                   text text.          % Fails on this line.

[编辑] 在原始(长)文档中的某个地方,它被写成\end{description}}。有一个额外的花括号},当变量在不同的描述环境中再次使用时,几行之后会导致错误。我花了一段时间才发现问题。

答案1

我删除了一个多余的{,但这不是主要问题。您尚未定义第二个定义(\myUseCaseCTR),如果仔细检查,名称与(\SharedCTR)不同。我已使用\let命令来定义它,请参阅第 7 行。

我附上了一个工作示例和一个预览。

\documentclass{report}
\pagestyle{empty}
\begin{document}
%{ % Deleted
\newcounter{SharedCTR}
\def\SharedCTR1{\stepcounter{SharedCTR}\arabic{SharedCTR}}
\let\myUseCaseCTR=\SharedCTR
\section{Section one}
\begin{description}
  \item[desc \SharedCTR1.] text text.
  \item[desc \SharedCTR1.] text text text.
  \item[desc \SharedCTR1.] text text text text.
\end{description}
\section{Section two}
\begin{description}
  \item[desc \myUseCaseCTR1.] text text. % Failed on this line.
  \item[desc \myUseCaseCTR1.] text text text.
  \item[desc \myUseCaseCTR1.] text text text text.
\end{description}
\end{document}

在此处输入图片描述

相关内容