平均能量损失

平均能量损失

我刚刚创建了一个回答使用临时变量,\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,因此可能不需要额外的评论。

相关内容