共有カウンター(記述環境間)により「未定義の制御シーケンス」が発生する

共有カウンター(記述環境間)により「未定義の制御シーケンス」が発生する

SharedCTR1目的は、記述環境間でカウンターを共有することです。次のコードは、1 つの記述環境でのみ機能しますが、両方では機能しません。

\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

余分な を削除しました{が、それが大きな問題ではありませんでした。2 番目の定義 ( \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}

ここに画像の説明を入力してください

関連情報