Makro als Totcount-Zählernamen verwenden

Makro als Totcount-Zählernamen verwenden

Auf der obersten Ebene der documentUmgebung kann ein (mit ) definiertes Makro \defin den Namen eines totcountZählers erweitert werden. Dies funktioniert aus irgendeinem Grund innerhalb einer Umgebungsdefinition nicht. Ich habe verschiedene Kombinationen von \newcommand, \expandafter, \edef, usw. ausprobiert, von denen keine funktioniert hat.

\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}

Antwort1

Da Sie dies innerhalb einer Umgebung tun, müssen Sie \counterIDX „global“ mithilfe von Folgendem definieren \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}

verwandte Informationen