重复等式,包括其内容和数字

重复等式,包括其内容和数字

我想重复使用具有相同内容和数量的方程式。我知道该thmtools包有一个restatable环境可以为环境执行此操作(例如这个答案),但我还想使用仅属于某个环境一部分的单个方程来做到这一点。

我看了以下问题,它们仅旨在重复方程式编号,但输入整个方程式两次(前三次)或重复方程式的内容而不输入数字(最后一次):

根据那里提供的答案以及这个答案的最后一部分我尝试创建一个\restatableeq用于像这样的可重整方程的宏:

\documentclass{article}

\usepackage{amsmath}

\newcommand{\restatableeq}[3]{\label{#3}#2\xdef#1{\unexpanded#2\unexpanded\tag{\unexpanded\ref{#3}}}}

\begin{document}

\begin{eqnarray}
\restatableeq{\eqone}{This & is & eqation 1}{eq1}\\
Another & simple & equation
\end{eqnarray}

\begin{eqnarray}
One & more & equation\\
\restatableeq{\eqtwo}{This & is & eqation 2}{eq2}
\end{eqnarray}

Here, we use (\ref{eq1}) and (\ref{eq2}) again:
\begin{eqnarray*}
\eqone\\
\eqtwo
\end{eqnarray*}

\end{document}

不幸的是,它不起作用并且产生:

! Missing { inserted.
<to be read again>
                   T
l.10 ...ableeq{\eqone}{This & is & eqation 1}{eq1}
                                                  \\
?

我猜测这些&符号没有按照预期进行处理,但我也可能错了。

我如何定义这样的命令\restatableeq,以便让我能够在像本例这样的设置中重复使用具有相同内容和数量的方程式(并给它一个标签,以便我仍然可以\ref像往常一样使用)?

答案1

你的文档中有几个缺陷。

  1. 您使用\xdef{\unexpanded...}。这本质上就是\gdef,这里完全足够了。
  2. 您的使用\unexpanded是错误的。 \unexpanded需要一个由显式 , 分隔的平衡标记列表{}如果您想保护单个标记免受扩展\edef,请使用\noexpand。 Enrico 写了一篇很好的答案关于那个。
  3. 你用eqnarray切勿使用eqnarray
  4. \tag不工作eqnarray

这是一个修复版本。

\documentclass{article}
\usepackage{amsmath}
\newcommand{\restatableeq}[3]{\label{#3}#2\gdef#1{#2\tag{\ref{#3}}}}
\begin{document}
\begin{align}
\restatableeq{\eqone}{This & is & eqation 1}{eq1}\\
Another & simple & equation
\end{align}

\begin{align}
One & more & equation\\
\restatableeq{\eqtwo}{This & is & eqation 2}{eq2}
\end{align}

Here, we use (\ref{eq1}) and (\ref{eq2}) again:
\begin{align*}
\eqone\\
\eqtwo
\end{align*}
\end{document}

enter image description here

相关内容