对齐线性程序

对齐线性程序

我想编写我的线性程序,使其看起来像这张图:integer program

这意味着我想要得到以下内容:

  • 文本左对齐
  • 所有x_{j}变量都彼此相关
  • i=和语句j=再次成为另一个之下的一个

这是我目前所拥有的:

\begin{equation}
\begin{split}
\text{minimize} \displaystyle\sum\limits_{j=1}^{m} w_{j}*&x_{j} \\
\text{subject to} \displaystyle\sum\limits_{j:e_{i} \in S_{j}} &x_{j} \geq 1, i=1 ,..., n\\
                                         &x_{j} \in \{0,1\}, j=1 ,..., m
\end{split}
\end{equation}

我尝试使用多个&s,但要么我使用它们却没有任何变化,要么我收到以下错误:Extra alingment tab has been changed to \cr \end{split}。我搜索过这个错误,我知道如果我忘记写一个&或我有一个多余的,它就会出现,但这不是我的情况。这是代码:

\begin{equation}
\begin{split}
&\text{minimize} \displaystyle\sum\limits_{j=1}^{m} w_{j}*&x_{j} & \\
&\text{subject to} \displaystyle\sum\limits_{j:e_{i} \in S_{j}} &x_{j} \geq 1, &i=1 ,..., n\\
&                                             &x_{j} \in \{0,1\}, &j=1 ,..., m
\end{split}
\end{equation}

我怎样才能按照我想要的方式对齐它们?

还有,不用 可以做到吗align?因为这个程序位于我的页面末尾,如果我使用align它,它会被放置在下一页,我不想这样。

答案1

类似这样。使用数组

enter image description here

代码

\documentclass[a4paper]{article}
\usepackage[paper size={10cm,5cm}]{geometry}
\pagestyle{empty}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{equation*}
\begin{array}{ll@{}ll}
\text{minimize}  & \displaystyle\sum\limits_{j=1}^{m} w_{j}&x_{j} &\\
\text{subject to}& \displaystyle\sum\limits_{j:e_{i} \in S_{j}}   &x_{j} \geq 1,  &i=1 ,\dots, n\\
                 &                                                &x_{j} \in \{0,1\}, &j=1 ,\dots, m
\end{array}
\end{equation*}
\end{document}

答案2

这些=符号不是完全垂直对齐的。这里有一个解决方案,alignat*它给出了正确的对齐方式,并且语法稍微简单一些。我还提出了一个变体,其中总和是对齐的,而 x_j 只是部分对齐,在我看来看起来更好:

\documentclass[a4paper]{article}
\usepackage[paper size={10cm,5cm}]{geometry}
\pagestyle{empty}
\usepackage{mathtools,amssymb}

\begin{document}

\begin{alignat*}{3}
 & \text{minimize} & \sum_{j=1}^{m} w_{j}x_{j}& \\
 & \text{subject to} \quad& \sum_{\mathclap{{j:e_{i} \in S_{j}}}}x_{j}& \geq 1, & i &=1 ,..., n\\
                 && x_{j}& \in \{0,1\},\quad & j &=1 ,..., m
\end{alignat*}

\begin{alignat*}{2}
  & \text{minimize: } & & \sum_{j=1}^{m} w_{j}x_{j} \\
   & \text{subject to: }& \quad & \sum_{\mathclap{{j:e_{i} \in S_{j}}}}\begin{aligned}[t]
                    x_{j} & \geq 1,& i & =1, \dots, n\\[3ex]
                  x_{j} & \in \{0,1\}, & \quad j &=1 ,\dots, m
                \end{aligned}
\end{alignat*}

\end{document} 

enter image description here

变体: enter image description here

答案3

使用包你可以获得相同的结果,如下所示:

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{optidef}


\begin{document}
\begin{mini*}
{}{\sum_{j=1}^{m} w_{j}x_{j}}{}{}
\addConstraint{\sum_{j:\, e_{i} \in S_{j}} } {x_{j}\geq 1,}{}{\mkern53mu i=1 ,\ldots, n}
\addConstraint{ }{x_{j}}{ \in \{0,1\},}{\quad j=1 ,\ldots, m}
\end{mini*}
\end{document}

enter image description here

相关内容