環境の最上位レベルではdocument
、( を使用)定義されたマクロをカウンター\def
の名前に展開できます。何らかの理由で、これは環境定義内では機能しません。 、 、 などのtotcount
さまざまな組み合わせを試しましたが、どれも機能しませんでした。\newcommand
\expandafter
\edef
\documentclass{memoir}
\usepackage{totcount}
\newenvironment{passagequestions}{% This does not work
\def\counterIDX{passagecounterX}%
\newtotcounter{c\counterIDX}%
\total{c\counterIDX}%
}{%
}
\begin{document}
\def\counterID{passagecounter}
\newtotcounter{c\counterID}% This works
\total{c\counterID}
\begin{passagequestions}
this doesn't work
\end{passagequestions}
\end{document}
答え1
環境内で実行する場合は、次\counterIDX
を使用して「グローバルに」定義する必要があります\gdef
。
\documentclass{memoir}
\usepackage{totcount}
\newenvironment{passagequestions}{% This does not work
\gdef\counterIDX{passagecounterX}%
\newtotcounter{c\counterIDX}%
\total{c\counterIDX}%
}{%
}
\begin{document}
\def\counterID{passagecounter}
\newtotcounter{c\counterID}% This works
\total{c\counterID}
\begin{passagequestions}
this doesn't work
\end{passagequestions}
\end{document}