共用計數器(在描述環境之間)導致“未定義的控制序列”

共用計數器(在描述環境之間)導致“未定義的控制序列”

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}

在此輸入影像描述

相關內容