我正在尝试正确对齐一个简单的线性程序:现在我正在使用
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\begin{array}{r r c r c r}
\displaystyle \min &x_1 &+&x_2\\
\text{s.t.} & 10x_1& +&10x_2 &\leq &0\\
&111x_1 &+&x_2 &\geq &0\\
& x_1& &,x_2 & \geq & 0
\end{array}
\end{equation*}
\end{document}
但我想以这样的方式“收集”最后一个约束,使其与所有其他“x_2”右对齐,但没有“x_1”和“,”之间的空格。有没有办法在不干扰其他约束的情况下省略空格?
答案1
我还会避免列之间有太大间隙。
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\begin{equation*}
\setlength{\arraycolsep}{0pt}
\begin{array}{r @{\quad} r >{{}}c<{{}} r >{{}}c<{{}} r}
\min &x_1 &+&x_2\\
\text{s.t.} & 10x_1& +&10x_2 &\leq &0\\
&111x_1 &+&x_2 &\geq &0\\
\multicolumn{4}{r}{x_1,x_2} & \geq & 0
\end{array}
\end{equation*}
\end{document}
我们\setlength{\arraycolsep}{0pt}
告诉 LaTeX 不要在列周围添加填充;我们用第一列和第二列之间覆盖它@{\quad}
;对于包含关系或操作符号的列,我使用
>{{}}c<{{}}
这意味着{}
和{}
将被添加到实际的单元格条目周围;这样,我们得到,例如{}+{}
这使得 TeX 在运算符号周围添加通常的空格;关系也是类似地。