환경 의 최상위 수준에서 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}