von Besserwisser » Fr 11. Mai 2012, 14:47
Weder \newcount (das ist ein plainTeX-Befehl) noch \newcounter (die LaTeX-Anweisung zum Anfordern eines neuen LaTeX-Zählers) sollten innerhalb der Anweisung stehen. Dabei wird nämlich dann bei jedem Aufruf der Anweisung ein neues Zählerregister belegt aber nie wieder frei gegeben. \newcount und \newcounter gehören deshalb (wie \newlength, \newskip etc.) global, außerhalb der Definition der Anweisung \mycom verwendet.
BTW: Das ifthen-Paket bietet ebenfalls Schleifenkonstrukte wie \while. Es gibt auch ein Paket, das für Zähler verwendet werden kann, die lediglich lokal benötigt werden. Ich habe nur vergessen wie das heißt, weil ich in diesen Fällen einfach einen der temporär nutzbaren Zähler des LaTeX-Kern verwende, beispielsweise \@tempcnta.
Weder \newcount (das ist ein plainTeX-Befehl) noch \newcounter (die LaTeX-Anweisung zum Anfordern eines neuen LaTeX-Zählers) sollten innerhalb der Anweisung stehen. Dabei wird nämlich dann bei jedem Aufruf der Anweisung ein neues Zählerregister belegt aber nie wieder frei gegeben. \newcount und \newcounter gehören deshalb (wie \newlength, \newskip etc.) global, außerhalb der Definition der Anweisung \mycom verwendet.
BTW: Das ifthen-Paket bietet ebenfalls Schleifenkonstrukte wie \while. Es gibt auch ein Paket, das für Zähler verwendet werden kann, die lediglich lokal benötigt werden. Ich habe nur vergessen wie das heißt, weil ich in diesen Fällen einfach einen der temporär nutzbaren Zähler des LaTeX-Kern verwende, beispielsweise \@tempcnta.