如何在align环境中为每个方程式标记?

105
我想知道如何在align环境中为每个方程添加标签?例如:
\begin{align} \label{eq:lnnonspbb}
\lambda_i + \mu_i = 0 \\
\mu_i \xi_i = 0 \\
\lambda_i [y_i( w^T x_i + b) - 1 + \xi_i] = 0
\end{align} 

仅标记第一个方程式,且之后只能引用该方程式。

6个回答

131
您可以分别为每一行进行标记,例如在您的情况下:
\begin{align}
  \lambda_i + \mu_i = 0 \label{eq:1}\\
  \mu_i \xi_i = 0 \label{eq:2}\\
  \lambda_i [y_i( w^T x_i + b) - 1 + \xi_i] = 0 \label{eq:3}
\end{align} 

请注意,这仅适用于为多个方程式设计的AMS环境(而不是多行单个方程式)。

6
你所说的“为多个方程而设计的AMS环境(与单行多个方程相对)”是什么意思? - jvriesem
7
环境 align 用于多个方程式的排列,每个方程式都会被编号。如果您在一个 equation 环境中放置一个 aligned 环境,则整个块被视为一个方程式,并将获得一个编号。在其中放置多个 \label 将导致错误。 - Martijn

18
通常我的对齐环境会设置如下:
\begin{align} 
  \label{eqn1}
  \lambda_i + \mu_i = 0 \\
  \label{eqn2}
  \mu_i \xi_i = 0 \\
  \label{eqn3}
  \lambda_i [y_i( w^T x_i + b) - 1 + \xi_i] = 0
\end{align} 

\label 命令应该放置在您想要引用的行中,行内位置不重要。我更喜欢将其放在行的开头(作为一种描述),而其他人则将其放在行末。


11

amsmath包提供的align环境中,可以将每个方程或行的\label\tag结合使用。例如,以下代码:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
Write
\begin{align}
x+y\label{eq:eq1}\tag{Aa}\\
x+z\label{eq:eq2}\tag{Bb}\\
y-z\label{eq:eq3}\tag{Cc}\\
y-2z\nonumber
\end{align}
then cite \eqref{eq:eq1} and \eqref{eq:eq2} or \eqref{eq:eq3} separately.
\end{document}

结果产生:

输出屏幕截图


2
那个nonumber命令帮了我很多,谢谢! - Wanshan

9

\tagalign* 中同样适用。例如:

\begin{align*}
  a(x)^{2} &= bx\tag{1}\\ 
  a(x)^{2} &= b\tag{2}\\ 
  ax &= b\tag{3}\\ 
  a(x)^{2}+bx &= c\tag{4}\\ 
  a(x)^{2}+c &= bx\tag{5}\\ 
  a(x)^{2} &= bx+c\tag{6}\\ \\ 
  Where\quad a, b, c \, \in N
\end{align*}

输出:

标签示例的PDF输出


4
重要提示:此方法只适用于align*环境,不适用于align环境。 - pentavalentcarbon
1
为什么标签在左边? - Cheng

6

like this

\begin{align} 

x_{\rm L} & = L \int{\cos\theta\left(\xi\right) d\xi}, \label{eq_1} \\\\

y_{\rm L} & = L \int{\sin\theta\left(\xi\right) d\xi}, \nonumber

\end{align}

3
答案似乎有点过时,对我没用。有效的方法是:
\begin{align}
1+1=2     \tag{xyz}
\end{align}

reference


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接