我尝试对齐多个方程块,以便对不同的块使用相同的对齐方式。我目前对每行使用align
-environment array
。通过指定列的宽度,我可以确保正确对齐。但是,方程编号现在没有正确对齐。我更喜欢下面示例中第二次尝试的对齐方式,但更喜欢第一次尝试的方程编号的垂直对齐方式。
\section{attempt 1}
\begin{align}
&\text{s.t.} &\quad& \sum\limits_{i \in I_{j}^2} x_i \geq 1, &\qquad\qquad& \forall j \in J \label{myLabel}\\
&\text{s.t.} && \sum\limits_{i \in I_{j}^2} x_i \geq 1, && \forall j \in J
\end{align}
\text{这里有一些文本,可能还有新的部分}
\subsection{new subsection}
\begin{align}
&\text{s.t.} &\quad& \sum\limits_{i \in I_{j}^2} x_i + y_i + z_i\geq 1, &\qquad\qquad& \forall j \in J \label{myLabel}\\
&\text{s.t.} && \sum\limits_{i \in I_{j}^2} x_i \geq 1, && \forall j \in J
\end{align}
\section{attempt 2}
\begin{align}
\begin{array}{p{0.8 cm} p{6.2 cm} p{2 cm}}
s.t. & $\sum\limits_{i \in I_{j}^2} x_i \geq 1,$ & $ \forall j \in J$
\end{array}\\
\begin{array}{p{0.8 cm} p{6.2 cm} p{2 cm}}
s.t. & $\sum\limits_{i \in I_{j}^2} x_i \geq 1,$ & $ \forall j \in J$
\end{array}
\end{align}
\text{这里有一些文本,可能还有新的部分}
\subsection{new subsection}
\begin{align}
\begin{array}{p{0.8 cm} p{6.2 cm} p{2 cm}}
s.t. & $\sum\limits_{i \in I_{j}^2} x_i \geq 1,$ & $ \forall j \in J$
\end{array}\\
\begin{array}{p{0.8 cm} p{6.2 cm} p{2 cm}}
s.t. & $\sum\limits_{i \in I_{j}^2} x_i + y_j \geq 1,$ & $ \forall j \in J$
\end{array}
\end{align}
有办法吗?要么通过固定对齐中的列宽,要么通过更改数组中方程编号的垂直对齐。
答案1
您可以在同一个环境中拥有多个对齐点align
,或者使用一个alignat
环境。
但是这是你所要求的(如果我理解正确的话):
% arara: latex
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align}
\begin{array}{p{0.8 cm} p{6.2 cm} p{3.2 cm}} % reduced the width in order to fit on the line
s.t. & $\sum\limits_{i \in I_{j}^2} x_i \geq 1,$ & $ \forall j \in J$
\end{array}\label{myLabel} % removed back slashes here
\end{align}
\end{document}
您可以看到右边的数字似乎有点太低。这是由于求和运算符的限制。
如果你使用典型的方法,那就好了:
% arara: pdflatex
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{alignat}{3}
&\text{s.t.} &\quad& \sum\limits_{i \in I_{j}^2} x_i \geq 1, &\qquad\qquad& \forall j \in J \label{myLabel}\\
&\text{s.t.} && \sum\limits_{i \in I_{j}^2} x_i \geq 1, && \forall j \in J
\end{alignat}
\ref{myLabel}
\end{document}