매크로를 totcount 카운터 이름으로 사용

매크로를 totcount 카운터 이름으로 사용

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

관련 정보