
似乎每当我\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
因此,如果您想要仅通过一个引用来引用整个方程组,则取决于您将命令放在哪里。
希望这对任何人都有帮助。