使用“对齐”环境我可以编写以下代码:
\begin{align}
&\sum_k y_{ik}= \left\{ \begin{array}{l}
1, \\
m,
\end{array} \right. & \begin{array}{l}
i=2,...,n,\\
i=1,
\end{array}\\
&\sum_i q_i y_{ij} \le Q_k, &k=1,...,m, \\
\sum_j x_{ijk}= &\sum_j x_{ijk}= y_{ik}, &i=1,...,n, &&k=1,...,m,\\
&\sum_{i,j \in S} x_{ijk} \le |S| -1, &\text{para todo } S \subseteq \{2,...,n\},&& k=1,...,m,
\end{align}
它几乎是完美的,但第二列的等号没有完全对齐,我不明白环境是如何工作的:为什么在某些情况下我必须写两个“&&”,而在其他情况下只需写一个?为什么“para todo”(西班牙语中的“全部”)与列不对齐,而是从左边开始?它看起来像我想要的那样,但我不明白为什么。如果有人能告诉我如何编写它或给我一些环境教程,我将不胜感激。谢谢。
答案1
您可以将环境想象align
成一个具有交替r
和l
列的表格。每隔一个&
(从切换r
到l
)对齐周围的符号,其他的则将内容分隔为不同的对齐位置。
第一行使事情有点复杂,但aligned
环境可以工作:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\sum_k y_{ik} &= \begin{cases} 1, \\ m, \end{cases} &
\begin{aligned}
i \\
i
\end{aligned} &
\begin{aligned}
&= 2, ..., n, \\
&= 1,
\end{aligned} \\
\sum_i q_i y_{ij} &\le Q_k, &
k &= 1, ..., m, \\
\sum_j x_{ijk} = \sum_j x_{ijk} &= y_{ik}, &
i &= 1, ..., n, &
k &= 1, ..., m, \\
\sum_{i, j \in S} x_{ijk} &\le |S| - 1, &
\text{para todo } S &\subseteq \{2, ..., n\}, &
k &= 1, ..., m,
\end{align}
\end{document}
答案2
我提出这个建议,基于mathtools
(无需加载àmsmath`)以及调整第一行的一些反复试验:
\documentclass[12pt, a4paper]{report}
\usepackage{mathtools}
\begin{document}
\begin{align}
\sum_k y_{ik} & =\mathrlap{\begin{cases}
1, & i=2,...,n,\\
m, \hspace{6.09em}& i=1,
\end{cases}} \\
\sum_i q_i y_{ij} &\le Q_k, &k&=1,...,m, \\
\sum_j x_{ijk}=\sum_j x_{ijk}&= y_{ik}, &i & =1,...,n, &&k=1,...,m, \\
\sum_{i,j \in S} x_{ijk} &\le |S| -1, &\text{para todo } S & \subseteq \{2,...,n\},&& k=1,...,m,
\end{align}
\end{document}