是否可以在 align* 环境中创建命令?

是否可以在 align* 环境中创建命令?

我正在制作一些数学模式宏,但其中一些尝试在数学模式中定义新命令(用作变量)align*。我已将问题归咎于此 MWE:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

    \begin{align*}
        5+5 &= 10\\
        \def\answer{10}\\
        \answer
        \newcommand{\answer}{10}\\
        \answer
    \end{align*}

\end{document}

由于 和内部\def均不起作用,因此失败。\newcommandalign*

有可能\def在里面工作align*吗?如果不行,还有其他方法可以在align*环境中存储变量数字吗?

答案1

它们很有效;只是你没有正确使用它们……

内部的每个“单元格”都align构成一个组。因此,您对\defand/or的使用\newcommand不会在&or之外继续存在\\。在内部,使用\gdef(a \global\def) 不会出现问题:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{align*}
  5+5 &= 10\\
  \gdef\answer{10}\\
  \answer
  \gdef\answer{10}\\
  \answer
\end{align*}

\end{document}

请注意,align对其主体进行两次处理。

相关内容