MWE

MWE

Ich habe gerade einAntwortdas eine temporäre Variable mit verwendet \write\@auxoutund dachte, es wäre eine gute Idee, den Gültigkeitsbereich mit , zu verwenden \begingroup. \endgroupAus irgendeinem Grund ergibt sich daraus:

! Undefinierte Steuersequenz.
<write> \tempvariable

MWE

\documentclass{article}

\makeatletter
\newcommand{\abc}{%
    \begingroup%
    \newcommand\tempvariable{\relax}%
    \write\@auxout{\tempvariable}%
    \endgroup%
}
\makeatother

\begin{document}
    Why isn't this working???
    \abc 

\end{document}

Warum passiert das und wie kann ich das Problem beheben?

Antwort1

Das Hinzufügen \immediatesollte helfen:

\documentclass{article}

\makeatletter
\newcommand{\abc}{%
   \begingroup%
    \newcommand\tempvariable{\relax}%
%    \write\@auxout{\tempvariable}%
\immediate \write\@auxout{\tempvariable}%
    \endgroup%
}
\makeatother

\begin{document}
    Why isn't this working???
    \abc 

\end{document}

Aus Ihrer Antwort unter dem Link erkenne ich, dass Sie den Befehl kennen \immediate, daher ist vermutlich kein weiterer Kommentar erforderlich.

verwandte Informationen