软件包 amsmath 错误:多个 \label:标签‘{33}’将丢失

软件包 amsmath 错误:多个 \label:标签‘{33}’将丢失

我有这个代码

Package amsmath Error: Multiple \label's: label '{33}' will be lost.

错误:有人能帮助我吗?

\begin{align}
\label{33}
\begin{split}
\alpha_{ng}^{\min}-\alpha_{ng}^{\max}+\gamma_n\leq C_{ng}\forall g\in\Omega^{G-n},\forall n\in\Omega^N
\end{split}
\label{34}
\begin{split}
\beta_\ell^{\min}-\beta_\ell^{\max}+\frac{\epsilon_\ell^{\min}}{\beta_\ell}-\frac{\epsilon_\ell^{\max}}{\beta_\ell}-\gamma_{n}=0
\forall l\in\Omega^L\mid \textit{FB}(\ell)=n
\end{split}
\\
\label{35}
\begin{split}
&\beta_\ell^{\min}-\beta_\ell^{\max}+\frac{\epsilon_\ell^{\min}}{\beta_\ell}-\frac{\epsilon_\ell^{\max}}{\beta_\ell}+\gamma_{n}=0\\
\forall \ell\in\Omega^L\mid \textit{TB}(\ell)=n
\end{split}
\\
\label{36}
\begin{split}
&-\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{FB}(\ell)=n}}}\epsilon_\ell^{\min}+\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{TB}(\ell)=n}}}\epsilon_\ell^{\min}
+\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{FB}(\ell)=n}}}\epsilon_\ell^{\max}-\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{TB}(\ell)=n}}}\epsilon_\ell^{\max}
+\\\delta_n^{\min}-\delta_n^{\max}=0~~\forall n\in \Omega^N
\end{split}
\\
\label{37}
&\gamma_n \leq \textit{VOLL}_n~~\forall n\in\Omega^N\\
\label{38}
&\bar{D}_{n}-\widehat D_{n}\leq\widetilde D_{n}\leq\bar{D}_{n}+\widehat D_{n}\\
\label{39}
&\sum_{ n\in\Omega^N}|\frac{\widetilde D_{n}-\bar D_{n}}{\widehat D_{n}}|\leq\textit{DR}
%\end{flalign}
\\
\label{40}
\begin{split}
&\alpha_{ng}^{\min},\alpha_{ng}^{\max}\geq 0\quad\forall g \in \Omega^{G-n},\forall n \in \Omega^{N};\\
\beta_\ell^{\min},\beta_\ell^{\max},  \epsilon_\ell^{\min},\epsilon_\ell^{\max}\geq 0\quad\forall l \in \Omega^{L};\\
\delta_n^{\min},\delta_n^{\max}\geq 0\quad\forall n \in \Omega^{N};
\gamma _n \in R\quad\forall n \in \Omega^{N};\\
\bar{D}_{n} \in R\quad\forall n \in \Omega^{N}\\
\end{split}
\end{align}

答案1

\begin{align}
\label{33}
\begin{split}
\alpha_{ng}^{\min}-\alpha_{ng}^{\max}+\gamma_n\leq C_{ng}\forall g\in\Omega^{G-n},\forall n\in\Omega^N
\end{split}
\\
\label{34}
\begin{split}
\beta_\ell^{\min}-\beta_\ell^{\max}+\frac{\epsilon_\ell^{\min}}{\beta_\ell}-\frac{\epsilon_\ell^{\max}}{\beta_\ell}-\gamma_{n}=0\\\forall l\in\Omega^L\mid \textit{FB}(\ell)=n
\end{split}
\\
\label{35}
\begin{split}
\beta_\ell^{\min}-\beta_\ell^{\max}+\frac{\epsilon_\ell^{\min}}{\beta_\ell}-\frac{\epsilon_\ell^{\max}}{\beta_\ell}+\gamma_{n}=0\\
\forall \ell\in\Omega^L\mid \textit{TB}(\ell)=n
\end{split}
\\
\label{36}
\begin{split}
-\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{FB}(\ell)=n}}}\epsilon_\ell^{\min}+\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{TB}(\ell)=n}}}\epsilon_\ell^{\min}
+\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{FB}(\ell)=n}}}\epsilon_\ell^{\max}-\smashoperator{\sum_{\substack{ \ell \in\Omega^L\st\\ \textit{TB}(\ell)=n}}}\epsilon_\ell^{\max}
+\\\delta_n^{\min}-\delta_n^{\max}=0~~\forall n\in \Omega^N
\end{split}
\\
\label{37}
&\gamma_n \leq \textit{VOLL}_n~~\forall n\in\Omega^N\\
\label{38}
&\bar{D}_{n}-\widehat D_{n}\leq\widetilde D_{n}\leq\bar{D}_{n}+\widehat D_{n}\\
\label{39}
&\sum_{ n\in\Omega^N}|\frac{\widetilde D_{n}-\bar D_{n}}{\widehat D_{n}}|\leq\textit{DR}
%\end{flalign}
\\
\label{40}
\begin{split}
&\alpha_{ng}^{\min},\alpha_{ng}^{\max}\geq 0\quad\forall g \in \Omega^{G-n},\forall n \in \Omega^{N};\\
&\beta_\ell^{\min},\beta_\ell^{\max},  \epsilon_\ell^{\min},\epsilon_\ell^{\max}\geq 0\quad\forall l \in \Omega^{L};\\
&\delta_n^{\min},\delta_n^{\max}\geq 0\quad\forall n \in \Omega^{N};
\gamma _n \in R\quad\forall n \in \Omega^{N};\\
&\bar{D}_{n} \in R\quad\forall n \in \Omega^{N}\\
\end{split}
\end{align}

答案2

我认为这个问题有两个方面。首先,“标签”的错误信息可以更具体、更清晰。其次,这种情况的发生是因为对使用 align 和 align* 块的规则存在误解。假设你放置了一个带有 2 个方程的“align*”块(我们称之为块“A”),然后你标记了最后一个方程。然后你使用带有 2 个方程的“align”块“B”,同样你只标记了最后一个方程。最后你放置了第三个带有两个标记方程的“align”块“C”。就像这样,

\begin{align*}
x &= 1 \\
x &= 1  \label{EQ:a2}
\end{align*}

\begin{align}
x &= 1 \\
x &= 1  \label{EQ:b2}
\end{align}

\begin{align}
x &= 1 \label{EQ:c1}\\
x &= 1 \label{EQ:c2}
\end{align}

它符合要求,没有任何错误。现在,神奇的事情来了,如果你标记 B 块的第一个 eq,

\begin{align}
x &= 1 \label{EQ:b1} \\
x &= 1 \label{EQ:b2}
\end{align}

然后您就会遇到标签错误。现在您可以做两件事来获得良好的编译效果:a) 删除块 A 的标签“EQ:a2”,然后再次编译,或者 b) 再次删除块 B 中的标签“EQ:b1”。很奇怪吧?奇怪的是,块“C”中的所有方程式都已贴上标签,没有错误。

我认为最正统的解决方案是将块“A”从“align*”转换为“align”,并在第一个等式中声明 \nonumber,如下所示,

\begin{align}
x &= 1 \nonumber\\
x &= 1 \label{EQ:a2}
\end{align}

因为在这种情况下,您可以将块“B”的两个方程标记为 EQ:b1、EQ:b2,而不会出现“标签”的错误。无论如何,我个人认为标签的错误消息在这方面应该更清楚。我希望这有助于更好地理解这个问题。

相关内容