![在右侧对齐方程式](https://linux22.com/image/399109/%E5%9C%A8%E5%8F%B3%E4%BE%A7%E5%AF%B9%E9%BD%90%E6%96%B9%E7%A8%8B%E5%BC%8F.png)
我想编写一个环境来编写可以与
\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
答案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}