难以在方程组中写入并对齐其系数

难以在方程组中写入并对齐其系数

上面的部分hrule是我在对齐系数时所用到的。我现在想做的是写入\min\text{s.a.}并添加最后一行,即x_i \geqslant 0, \forall i \in [7]。我在这样做时遇到了一些麻烦,因为这样会弄乱系数的对齐。下面我留下了我的系统代码多于。提前hrule感谢大家的帮助。

在此处输入图片描述

\documentclass[12pt]{report}
    \usepackage{amsmath,systeme}
    \begin{document}
    
    \begin{equation*}
        \sysdelim..\systeme{-10x_1+57x_2+9x_3+24x_4,
                            0.5x_1-5.5x_2-2.5x_3+9x_4+x_5=0, 
                            0.5x_1-1.5x_2-0.5x_3+x_4+x_6=0,
                            x_1+x_7 = 1}
    \end{equation*}
    
    \end{document}

答案1

这是一个采用两种array环境的解决方案。

在此处输入图片描述

\documentclass[12pt]{report}
\usepackage{amsmath,amssymb,array}
\newcolumntype{C}{>{{}}c<{{}}} % for binary/relational operators
\begin{document}
\begin{equation*}
\setlength\arraycolsep{0pt}
\renewcommand\arraystretch{1.25}
\begin{array}{@{}c@{}} 
  \min \\[0.5ex] \text{s.a.} \\ \\ \\ \\
\end{array}
\quad
\begin{array}{  r *{7}{Cr} }
-10x_1 &+&  57x_2 &+&   9x_3 &+& 24x_4 \\[0.5ex]
0.5x_1 &-& 5.5x_2 &-& 2.5x_3 &+&  9x_4 &+& x_5 & &     & &     &=& 0 \\
0.5x_1 &-& 1.5x_2 &-& 0.5x_3 &+&   x_4 & &     &+& x_6 & &     &=& 0 \\
   x_1 & &        & &        & &       & &     & &     &+& x_7 &=& 1 \\
\multicolumn{15}{l}{\phantom{-10}x_i \geqslant 0 \ \forall i\in\{1,2,\dots,7\} }
\end{array}
\end{equation*}
\end{document}

答案2

我们可以欺骗自己systeme,认为前两个等式中的第一个系数有字。

最后一个条件可以在 的单独一行中设置array

\documentclass[12pt]{report}
\usepackage{amsmath,systeme}

\begin{document}
    
\begin{equation*}
\setlength{\nulldelimiterspace}{0pt}
\sysdelim..
\newcommand{\FIRST}[1]{\makebox[5em][s]{$\min\hfill{#1}$}}
\newcommand{\SECOND}[1]{\makebox[5em][s]{s.a.\hfill${#1}$}}
\begin{array}{@{}l@{}}
  \systeme{
   {\FIRST{-10}}x_1 +  57x_2 +   9x_3 + 24x_4,
  {\SECOND{0.5}}x_1 - 5.5x_2 - 2.5x_3 +  9x_4 + x_5 = 0, 
             0.5x_1 - 1.5x_2 - 0.5x_3 + x_4   + x_6 = 0,
                x_1 +                           x_7 = 1
  }\\
\hspace*{5em} x_i\ge0,\forall i\in[7]
\end{array}
\end{equation*}

\end{document}

在此处输入图片描述

不过,我不确定这种大量的对齐是否容易阅读。

答案3

仅使用amsmath

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{alignat*}{9}
  \min\quad&&  -10&x_1&{}+57&x_2&{}+9&x_3&{}+24&x_4&\\
  \text{s.a}\quad&&  0.5&x_1&{}-5.5&x_2&{}-2.5&x_3&{}+9&x_4&{}+{}&x_5&&&&&&=0\\ 
             &&     0.5&x_1&{}-1.5&x_2&{}-0.5&x_3&{}+{}&x_4&&&{}+{}&x_6&&&&=0\\
              &&          &x_1&&&&&&&&&&&{}+{}&x_7& &= 1\\
              \rlap{$\displaystyle x_i \geq0, \forall i \in[7]$}
\end{alignat*}

\end{document}

答案4

systeme我利用了解析器和数学运算符之间的友好关系,以便能够包括min。代码确实很难看,但如果你想使用systeme,我想你很难找到比这更好的了。因此,我强烈建议使用此线程上的其他解决方案之一。

梅威瑟:

\documentclass[12pt]{report}
\usepackage{amsmath,systeme,amssymb}
\DeclareMathOperator{\sa}{\text{\textit{s.a.}}}
\sysaddeqsign{\geqslant}

\begin{document}
\begin{equation*}
\syssubstitute{{x_8}{x_i}}
\sysdelim..
\systeme{%
{\min\quad \-10}x_1+57x_2+9x_3+24x_4,
{\sa\quad \ 0.5}x_1-5.5x_2-2.5x_3+9x_4+x_5=0,
0.5x_1-1.5x_2-0.5x_3+x_4+x_6=0,
x_1+x_7 = 1, 
x_8 \geqslant 0@{\forall i\in [7]}}
\end{equation*}
\end{document}

输出: LaTeX 输出

相关内容