МВЭ

МВЭ

Я только что создалотвечатькоторый использует временную переменную с \write\@auxoutи подумал, что было бы неплохой идеей сделать область видимости с \begingroup, \endgroup. По какой-то причине это приводит к:

! Неопределенная управляющая последовательность.
<write> \tempvariable

МВЭ

\documentclass{article}

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

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

\end{document}

Почему это происходит и как это исправить?

решение1

Добавление \immediateдолжно помочь:

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

Из вашего ответа по ссылке я вижу, что вы знаете команду \immediate, поэтому, вероятно, дополнительные комментарии не нужны.

Связанный контент