对齐环境中的 \label

对齐环境中的 \label

似乎每当我\label{an-label}在 align 环境中使用,然后使用 来引用它时\refeq{an-label},我都会得到部分编号而不是方程编号。当我使用方程环境时不会发生这种情况。

例如:

\begin{align}
f(x) & = x^2 \label{label1}
\end{align}

Equation \refeq{label1}

将显示部分编号而不是方程编号。我使用 mathtools。发生这种情况有什么原因吗?

在谷歌中查找时,某些网页上说\begin{align} \end{align}应该与一起使用来\label{}命名等式,所以我不确定我做错了什么。

答案1

我不知道为什么您要使用align单个方程的环境而不是环境equation。无论如何,我尝试了此代码并且它运行良好:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\section{Section 1}
\label{sec1}
 This is section \ref{sec1}.
 \section{Section 2}
 \label{sec2}
 This is section \ref{sec2}
 \begin{equation}
 2+2=4
 \end{equation}
\begin{equation}
 3+3=6
 \end{equation}
 \begin{align}
 f(x)&=x^2 \label{ali1}
 \end{align}
 Take a look at equation \eqref{ali1}.
\end{document}

我尝试过使用“mathtools”包代替“amsmath”,但没有发现任何问题......我不知道到底发生了什么......

答案2

我遇到了与 Stefan 相同的问题,不过是与“gather”有关。由于我找到了他的问题的答案,并且能够重现“错误”引用,因此我想与您分享我的发现。

这取决于您在方程式环境中放置的位置\label。工作示例:在此示例中,您可以获得分配给方程式的一个标签的正确标签。

\begin{gather}
\arraycolsep=3pt
\medmuskip = 1mu
{^{O}{\dot{\psi}(t)}} = \int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}, \nonumber \\
{^{O}{\psi(t)}} = \int^{t}_{0} (\int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}) dt \nonumber \\
\label{calcAngularPosVel} + {^{O}{\psi}(t=0)}, \\
{^{O}{\dot{\psi}(t)}} = {^{B}{\dot{\psi}(t)}}, {^{O}{\psi(t)}} = {^{B}{\psi(t)}}. \nonumber 
\end{gather}
\ref{calcAngularPosVel}

带有“错误”引用的示例:在此示例中,您将获得该部分的标签,而不是方程的标签,因为标签试图引用环境中提供的所有方程的最后一行gather。但是,最后一行方程不提供标签,因为\nonumber命令会抑制这一点。因此,latex 无法引用此方程。

\begin{gather}
\arraycolsep=3pt
\medmuskip = 1mu
{^{O}{\dot{\psi}(t)}} = \int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}, \nonumber \\
{^{O}{\psi(t)}} = \int^{t}_{0} (\int^{t}_{0} \frac{{^{O}\V{\tau}_{G,z}}}{{^{B}{J}_{zz}}} dt + {^{O}{\dot{\psi}(t=0)}}) dt \nonumber \\
+ {^{O}{\psi}(t=0)}, \\
{^{O}{\dot{\psi}(t)}} = {^{B}{\dot{\psi}(t)}}, {^{O}{\psi(t)}} = {^{B}{\psi(t)}}. \nonumber
\label{calcAngularPosVel}  
\end{gather}
\ref{calcAngularPosVel}

\label因此,如果您想要仅通过一个引用来引用整个方程组,则取决于您将命令放在哪里。

希望这对任何人都有帮助。

相关内容