No nível superior do document
ambiente, uma macro definida (usando \def
) pode ser expandida para o nome de um totcount
contador. Isso, por algum motivo, não funciona dentro de uma definição de ambiente. Tentei várias combinações de \newcommand
, \expandafter
, \edef
, etc., nenhuma delas funcionou.
\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}
Responder1
Como você está fazendo dentro de um ambiente, você precisa definir \counterIDX
"globalmente" usando \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}