我正在尝试在 LaTeX 中排版多行优化问题。
align
我在使用和alignat
环境使事物正确对齐时遇到了很多困难。
我最近设法找到了一种解决方案,可以通过在环境array
中使用环境来实现正确的对齐align
。此代码的示例如下所示
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\begin{align}
\centering
\begin{array}{>{\displaystyle}l>{\displaystyle}c>{\displaystyle\hspace{0.5cm}}l}
\min_{\bm{\alpha},\bm{\beta},\bm{\gamma},\lambdab} & \frac{1}{N}\sum_{i=1}^{N}\alpha_i + C_0\sum_{j=1}^{P}\beta_j + C_1\sum_{j=1}^{P}{\gamma_j} & \\
\textrm{s.t.} & & \\
& -M\alpha_i + \varepsilon \leq y_i \mathbf{x}_i^T \lambdab \leq M(1-\alpha_i) + \varepsilon & i= 1\ldots N \\
& -M\alpha_i + \varepsilon \leq y_i \mathbf{x}_i^T \lambdab \leq M(1-\alpha_i) + \varepsilon & i= 1\ldots N
\end{array}
\end{align}
\end{document}
\documentclass{article}
我的问题是我无法对数组环境中的每一行进行编号。我想知道是否有人知道如何对这些行进行编号/标记?
我意识到这里已经发布了几种解决方案,但在许多情况下,修复似乎涉及在方程式中定义我自己的编号系统。我宁愿尽量避免这种情况,因为我在论文的其余部分都使用编号,我认为这会产生冲突(我可能是错的)。
如果不是,我会对任何可以普遍产生这种对齐类型的解决方案感到满意(即 3 列,1 列居左;1 列居中;1 列居左)。
答案1
我建议你alignat
改用
\documentclass{article}
\usepackage{amsmath,array,bm}
\begin{document}
\begin{alignat}{3}
&\min_{\bm{\alpha},\bm{\beta},\bm{\gamma},\lambda} \quad&&
\frac{1}{N}\sum_{i=1}^{N}\alpha_i + C_0\sum_{j=1}^{P}\beta_j +
C_1\sum_{j=1}^{P}{\gamma_j} \\
&\textrm{s.t.} \notag \\
&&& -M\alpha_i + \varepsilon \leq y_i \mathbf{x}_i^T \lambda \leq
M(1-\alpha_i) + \varepsilon &\quad i&= 1\ldots N \\
&&& -M\alpha_i + \varepsilon \leq y_i \mathbf{x}_i^T \lambda \leq
M(1-\alpha_i) + \varepsilon & i&= 1\ldots N
\end{alignat}
\end{document}
这里的对齐方式是{rlrlrl}
。 更接近原始编码的替代方案是equationarray
来自 的环境eqnarray
。 这是一个示例,但我更愿意坚持使用amsmath
环境:
\documentclass{article}
\usepackage{amsmath,array,eqnarray,bm}
\begin{document}
\begin{equationarray}{lc>{\hspace{0.5cm}}l}
\min_{\bm{\alpha},\bm{\beta},\bm{\gamma},\lambda} & \frac{1}{N}\sum_{i=1}^{N}\alpha_i + C_0\sum_{j=1}^{P}\beta_j + C_1\sum_{j=1}^{P}{\gamma_j} & \\
\textrm{s.t.} & & \notag\\
& -M\alpha_i + \varepsilon \leq y_i \mathbf{x}_i^T \lambda \leq
M(1-\alpha_i) + \varepsilon & i= 1\ldots N \\
& -M\alpha_i + \varepsilon \leq y_i \mathbf{x}_i^T \lambda \leq
M(1-\alpha_i) + \varepsilon & i= 1\ldots N
\end{equationarray}
\end{document}