我有一个多行方程e_1 = e_2 = ... = e_n
。每个表达式e_i
都很长。事实上,太长了,以至于使用align
环境会导致一些方程侵入右边距,甚至超出页面。使用multline
环境解决了这些问题,但这会导致另一个问题。使用环境,align
我可以标记每个方程,并在文档的下方引用它们;但是,使用环境multline
,会发出以下错误消息:
Package amsmath Error: Multiple \label's: label '...' will be lost.
我如何标记multline
环境的线条?或者,是否有另一种方法可以同时实现以下目标:
- 将多行方程按每行一个方程的方式排列。
- 确保没有任何方程式超出范围。
- 标记每个方程式(或更准确地说,选定的方程式),以便可以引用它们。
这是一个可以用于实验目的的示例文档。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\sup_{\mathbf{N}}V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m+_{\mathbf{M}}n)\rangle &\geq_{\mathbf{N}}\sup_{\mathbf{N}}V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m) +_{\mathbf{R}^{(S)}_{\mathbf{N}, \varphi}} S_{\mathbf{M}, S, \mathbf{N}, \varphi}(n) \rangle\label{eq:1}\\
&= \sup_{\mathbf{N}}\left(V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m)\rangle +_{\mathbf{R}^{(S)}_{\mathbf{N}, \varphi}} V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(n) \rangle\right)\label{eq:2}\\
&\geq_{\mathbf{N}} \sup_{\mathbf{N}}\left(V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m)\rangle\right) +_{\mathbf{N}} \sup_{\mathbf{N}}\left(V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(n) \rangle\right),\label{eq:3}
\end{align}
Referencing eq.~\ref{eq:1}.
\end{document}
答案1
我认为除了以下方法之外没有其他合理的方法:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\bvar}[1]{\mathbf{#1}}
\newcommand{\bM}{\bvar{M}}
\newcommand{\bN}{\bvar{N}}
\newcommand{\bR}{\bvar{R}}
\begin{document}
\begin{align}
&\sup_{\bN}V_{\bN, S, \varphi}\langle S_{\bM, S, \bN, \varphi}(m+_{\bM}n)\rangle
\notag \\
&\qquad\geq_{\bN}\sup_{\bN}
V_{\bN, S, \varphi}\langle S_{\bM, S, \bN, \varphi}(m)
+_{\bR^{(S)}_{\bN, \varphi}} S_{\bM, S, \bN, \varphi}(n) \rangle
\label{eq:1}\\
&\qquad= \sup_{\bN}
\bigl(V_{\bN, S, \varphi}\langle S_{\bM, S, \bN, \varphi}(m)\rangle
+_{\bR^{(S)}_{\bN, \varphi}} V_{\bN, S, \varphi}
\langle S_{\bM, S, \bN, \varphi}(n) \rangle
\bigr)
\label{eq:2}\\
&\qquad\geq_{\bN} \sup_{\bN}
\bigl(V_{\bN, S, \varphi}\langle S_{\bM, S, \bN, \varphi}(m)\rangle)
+_{\bN} \sup_{\bN}(V_{\bN, S, \varphi}\langle S_{\bM, S, \bN, \varphi}(n) \rangle
\bigr),
\label{eq:3}
\end{align}
Referencing eq.~\ref{eq:1}.
\end{document}
答案2
我建议使用\mathlap
frommathtools
和 an\intertext
作为方程式的开头。我还建议使用cleveref
更简单的方程式输入参考:
\documentclass{article}
\usepackage{mathtools, nccmath}
\usepackage{cleveref}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}
\begin{document}
\begin{align}
\intertext[0ex]{$\displaystyle \sup_{\mathbf{N}}\mathrlap{V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m +_{\mathbf{M}}n) \rangle} $}
&{}\geq_{\mathbf{N}}\sup_{\mathbf{N}}V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m) +_{\mathbf{R}^{(S)}_{\mathbf{N}, \varphi}} S_{\mathbf{M}, S, \mathbf{N}, \varphi}(n) \rangle\label{eq:1}\\
&= \sup_{\mathbf{N}}\left(V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m)\rangle +_{\mathbf{R}^{(S)}_{\mathbf{N}, \varphi}} V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(n) \rangle\right)\label{eq:2}\\
&\geq_{\mathbf{N}} \sup_{\mathbf{N}}\left(V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(m)\rangle\right) +_{\mathbf{N}} \sup_{\mathbf{N}}\left(V_{\mathbf{N}, S, \varphi}\langle S_{\mathbf{M}, S, \mathbf{N}, \varphi}(n) \rangle\right),\label{eq:3}
\end{align}
Referencing \cref{eq:1}.
\end{document}
答案3
\subequations
尝试使用环境,而不是 multine
\begin{subequations}
\begin{align}
e_1 = ... \\
e_2 = ... \\
... \\
\end{align}
\end{subequations}
有了这个解决方案,每个 e_i 都将被编号(x.i)
对于方程式大小,您肯定必须调整字体大小(一个很好的方法是使用,fontspec
因为它可以精确调整大小。
编辑 :
阅读您的评论,您还可以使用\split{}
如下环境:
\begin{equation}
\begin{split}
e_1 = x +4 ... 5 +6 \\
= hello \\
... \\
\end{split}
\end{equation}
这个可以让你在方程式中任意选择的位置进行换行,而不改变编号。
编辑2:
\begin{equation}
\begin{subequations*}
equ1 \\
equ2\\
\end{subequations*}
\end{equation}
应该允许在子方程上添加标签,而在编号方程内没有任何标签。