在右侧对齐方程式

在右侧对齐方程式

我想编写一个环境来编写可以与

\begin{linearSystem}
2x&+y&=&2\\
x&-3y&=&1
\end {linearSystem}

并应显示

2x +y=2
 x-3y=1

每个公式都应右对齐,并且不应添加空格。

我曾尝试使用对齐的环境

\[\left\{\begin{aligned}[c]
2x&+y&=&2\\
x&-3y&=&1
\end{aligned}\right.\]

但我得到了类似

2x+y  =2
 x-3y =1

这不是我想要的。有没有办法拥有一个“对齐”环境,使所有内容在右侧对齐,并且不会在每 2 个方程式“部分”之间引入任何空格。

答案1

有了软件包,这已经是可能的了systeme。为什么要重新发明轮子呢?

\documentclass{article}
\usepackage{systeme}

\begin{document}

 \[ \systeme{2x + y = 2, x-3y= 1} \]

\end{document} 

在此处输入图片描述

答案2

我正在使用而不是systeme包(这是我的第一个想法 - 与@Bernard 的想法相同

答案3

这是线性系统的环境。它并不完全符合您的描述,因为它还设计用于对齐符号。它更难使用(更多&),但我认为结果更好。

 \documentclass{article}

 \usepackage{amsmath}
 \usepackage{xparse}


 \ExplSyntaxOn
 \makeatletter

 \cs_new_protected:Nn \__insideloop_system_cr:
   {
     \scan_stop:
     \group_align_safe_begin:
     \peek_meaning_remove:NTF * \__insideloop_system_cr_i: \__insideloop_system_cr_i:
   }
 \cs_new_protected:Nn \__insideloop_system_cr_i:
   {
     \peek_meaning:NTF [ % ]
       \__insideloop_system_cr_ii:
       { \__insideloop_system_cr_ii: [ \c_zero_dim ] }
   }
 \cs_new_protected:Npn \__insideloop_system_cr_ii: [ #1 ]
   {
     \group_align_safe_end:
     \cr
     \noalign { \skip_vertical:n { #1 } \scan_stop: }
   }
 \NewDocumentEnvironment { system } { }
   {
     \group_begin:
     \cs_set_eq:NN \\ \__insideloop_system_cr:
     \left \{ \null \,
     \vcenter
     \bgroup \spread@equation
     \ialign
       \bgroup
          \strut \hfil $##$ & $##$ \hfil && \enspace $##$ \enspace &
          \hfil $##$ & $##$ \hfil \crcr
   }
   {      \crcr
       \egroup
     \egroup
     \right.
     \group_end:
   }

 \makeatother
 \ExplSyntaxOff



 \begin{document}


 $\begin{system}
 3 & x & + & 4 & y & + & 5 & z & = & 0 \\
 & x & - & 2 & y & - & & z & = & 7 \\
 -7 & x & + & 3 & y & + & 9 & z & = & 12
 \end{system}$

 \end{document}

上述代码的结果

相关内容