![Alignat 与“混合”左右对齐](https://linux22.com/image/363712/Alignat%20%E4%B8%8E%E2%80%9C%E6%B7%B7%E5%90%88%E2%80%9D%E5%B7%A6%E5%8F%B3%E5%AF%B9%E9%BD%90.png)
下面是一些 LaTeX 片段,需要导入 amsmath
和amssymb
:
\begin{alignat}{2}
& \forall \left\{i_1, i_2\right\} \in \binom{\left\{1, \ldots, t\right\}}{2}: \mathcal{U}\left(s_{i_1}, b_{i_1}\right) \cap \mathcal{U}\left(s_{i_2}, b_{i_2}\right) = \emptyset \nonumber \\
\Leftrightarrow & \forall \left(\left(i_1, j_1\right), \left(i_2, j_2\right)\right) \in \mathcal{I}:
\left(a_{i_2} z_{i_2} + \sigma_{s_{i_2}, j_2}\right) -
\left(a_{i_1} z_{i_1} + \sigma_{s_{i_1}, j_1} + m_{j_1}\right) && \geq 0
\nonumber \\
& \vee
\left(a_{i_1} z_{i_1} + \sigma_{s_{i_1}, j_1}\right) -
\left(a_{i_2} z_{i_2} + \sigma_{s_{i_2}, j_2} + m_{j_2}\right) && \geq 0. \label{eq:disj}
\end{alignat}
结果如下所示(由于它是从包含更多文本和公式的文档中截取的屏幕截图,因此方程的编号是 (7) 而不是 (1)。
以下是我希望它看起来的样子(最后一个不等式的前半部分右对齐而不是左对齐):
那么问题就很明显了:如何不需要改变源代码就能得到想要的结果?
答案1
解决方案是使用mathrlap
from mathtools
(无需加载amsmath
)。我删除了几乎所有不必要的\left \right
对,并用一对 替换了剩余的一对\bigl \bigr
。我还冒昧地用 \emptyset
更正确的替换了\varnothing
:
\documentclass[11pt]{article}
\usepackage{geometry}
\usepackage{amssymb, mathtools}
\begin{document}
\begin{alignat}{2}
& \forall\mathrlap{\{i_1, i_2\} \in \binom{\{1, \ldots, t\}}{2} : \mathcal{U}(s_{i_1}, b_{i_1}) \cap \mathcal{U}(s_{i_2}, b_{i_2}) = \varnothing} \nonumber & \\
\Leftrightarrow {}& \forall \bigl((i_1, j_1), t(i_2, j_2)\bigr) \in \mathcal{I}&:
(a_{i_2} z_{i_2} + \sigma_{s_{i_2}, j_2}) -
(a_{i_1} z_{i_1} + \sigma_{s_{i_1}, j_1} + m_{j_1})& \geq 0
\nonumber \\
& & \vee
(a_{i_1} z_{i_1} + \sigma_{s_{i_1}, j_1}) -
(a_{i_2} z_{i_2} + \sigma_{s_{i_2}, j_2} + m_{j_2})& \geq 0. \label{eq:disj}
\end{alignat}
\end{document}