在收集环境中的每个换行符前插入部分代码

在收集环境中的每个换行符前插入部分代码

这是重新定义方程环境:自动标记

我想要在 gather 环境中的每个换行符之前添加类似\AtEndEnvironment{gather}{\label{equ:\theequation}}(在末尾)的内容,即在此代码中自动添加代码部分:\label{equ:\theequation}\\\label{equ:\theequation}

\documentclass{report}
\usepackage{etoolbox}
\usepackage{mathtools}
\usepackage{amsmath}
\AtBeginEnvironment{gather}{\label{equ:\theequation}}

\begin{document}
\begin{gather}
x = y \text{first equation (1)} \label{equ:\theequation}\\
...
y = z \text{(n-1)th equation (n-1)}\label{equ:\theequation}\\
y = z \text{nth equation (n)}
\label{equ:\theequation}
\end{gather}
Reference to the first equation: \eqref{1}... (even if the equation is a "gather" environment)
\end{document}

答案1

LaTeX 之所以具有这种\label机制,是因为您可以引用自动编号的结构而不需要知道编号,并且在编辑文档时编号发生变化时无需更改引用标记。

如果您自动将方程 2 标记为\label{eq:2}并将其引用为,\ref{eq:2} 那么您的引用将引用恰好具有数字 2 的任何方程,而不是预期的方程。

预期用途是,您用对您有意义的内部标识符来标记方程式,说\label{pythagorus}然后将其引用为,\ref{pythagorus}并且引用将生成正确的数字,无论该数字在文档的当前(或实际上是先前)编辑中是什么。

相关内容