使用系统对齐多个线性方程组时出现错误

使用系统对齐多个线性方程组时出现错误

我有代码来排版四个线性方程组。我把所有方程都对齐在等号处。在第二个系统的第一个方程中,我有

+ 0 = (q-m)x + b_{1}

但我想要

0 = (q-m)x + b_{1}

在第二个系统的第二个方程中,y和等号之间有一个间隙。在第三和第四个系统的第一个方程中,和等号之间有一个间隙x

另外,我想在前三个方程组后添加一个逗号,在最后一个方程组后添加一个句号。我理解这,表示命令中的新方程\systeme。因此,我无法在此环境中,排版LaTeX逗号。无论如何,我希望这些标点符号位于每个方程组的两行之间。

\documentclass{amsart}
\usepackage{mathtools,systeme,array}


\begin{document}

\begin{align*}
\systeme{y = \mathrlap{qx + b_{1}}, y = \mathrlap{mx}} \\
\systeme{0 = \mathrlap{(q - m)x + b_{1}}, y = \mathrlap{mx}} \\
\systeme{x = \mathrlap{\dfrac{b_{1}}{m - q}}, y = \mathrlap{mx}} \\
\systeme{x = \mathrlap{\dfrac{b_{1}}{m - q}}, y = \mathrlap{\dfrac{mb_{1}}{m - q}}} 
\end{align*}

\end{document}

答案1

您不需要使用四个systeme环境,而是可以使用array嵌入在一个环境中的四个环境align*

在此处输入图片描述

\documentclass{amsart}
\begin{document}

\begin{align*}
&\bigg\{ \begin{array}{r @{{}={}} l}
y & qx + b_{1}\\y & mx 
\end{array},\\
&\bigg\{ \begin{array}{r @{{}={}} l}
0 & (q - m)x + b_{1}\\y & mx 
\end{array},\\
&\bigg\{ \begin{array}{r @{{}={}} l}
x & b_{1}/(m - q)\\y & mx
\end{array},\\
&\bigg\{ \begin{array}{r @{{}={}} l}
x & b_{1}/(m - q)\\y & mb_{1}/(m - q)
\end{array} .
\end{align*}

\end{document}

附录:根据您的要求,这是方程组的一个版本,它使用\dfrac宏而不是内联分数作为最后两个系统的代数。由于系统 3 和 4 中的花括号比系统 1 和 2 中的花括号大,因此还需要进一步调整水平间距以对齐符号=。(无论使用array或环境,都需要执行水平间距调整。)systeme*

在此处输入图片描述

\documentclass{amsart}
\usepackage{mleftright} % "\mleft\{" avoids some spacing issues caused by "\left\{"
\begin{document}

\begin{align*}
&\bigg\{ \begin{array}{r @{{}={}} l}
y & qx + b_{1}\\y & mx 
\end{array},\\
&\bigg\{ \begin{array}{r @{{}={}} l}
0 & (q - m)x + b_{1}\\y & mx 
\end{array},\\
&\Bigg\{ \mkern-1.7mu \begin{array}{r @{{}={}} l}
x & \dfrac{b_{1}}{m - q}\\[1.5ex]y & mx
\end{array},\\
&\mleft\{ \mkern-3.2mu\begin{array}{r @{{}={}} l}
x & \dfrac{b_{1}}{m - q}\\[2.5ex] y & \dfrac{mb_{1}}{m - q}
\end{array} \mright. \,.
\end{align*}

\end{document}

第二附录:如果您真的不想目测调整大花括号相对于其关联的两行方程组(每个方程组都放置在一个array环境中)的水平对齐方式,我只能建议您将四个花array括号放在“外部”两列数组的右侧列中:左侧列包含关联的花括号,通过\vphantom指令调整大小。

在此处输入图片描述

\documentclass{amsart}
\usepackage{mleftright,array}

\begin{document}
%% First, define the four systems as arrays
\def\sysa{\begin{array}{r @{{}={}} l}
             y & qx + b_{1}\\y & mx 
          \end{array}}
\def\sysb{\begin{array}{r @{{}={}} l}
             0 & (q - m)x + b_{1}\\y & mx 
          \end{array}}
\def\sysc{\begin{array}{r @{{}={}} l}
             x & \dfrac{b_{1}}{m - q}\\[1.5ex] y & mx
          \end{array}}
\def\sysd{\begin{array}{r @{{}={}} l}
             x & \dfrac{b_{1}}{m - q}\\[2.5ex] y & \dfrac{mb_{1}}{m - q}
          \end{array}}

%% Second, place the systems in the right-hand column of an "outer" array
%% Each system array is featured twice: Inside a \vphantom statement in
%% the left-hand column, to determine the size of the curly brace, and 
%% again in the right-hand column as itself.
\[
\begin{array}{l@{}l}
    \mleft\{ \vphantom{\sysa} \mright. & \sysa \\[2.5ex]
    \mleft\{ \vphantom{\sysb} \mright. & \sysb \\[2.5ex]
    \mleft\{ \vphantom{\sysc} \mright. & \sysc \\[3.8ex]
    \mleft\{ \vphantom{\sysd} \mright. & \sysd 
\end{array}
\]

\end{document}

答案2

您想使用\systeme*,它不进行对齐。对于第二种,您还必须将其声明0为变量。在带有分数的那些中,我添加了补充垂直间距。

\documentclass{amsart}
\usepackage{systeme}

\begin{document}

\begin{align*}
&\systeme*{y = qx + b_{1}, y = mx} \\
&\systeme*[var=x,y,0]{0 = (q - m)x + b_{1}, y = mx} \\
&\syslineskipcoeff{1.75}\systeme*{x = \dfrac{b_{1}}{m - q}, y = mx} \\
&\syslineskipcoeff{1.75}\systeme*{x = \dfrac{b_{1}}{m - q}, y = \dfrac{mb_{1}}{m - q}}
\end{align*}

\end{document}

在此处输入图片描述

您可以改善间距并添加标点符号(但我会避免使用逗号和句号);对于逗号,将其放在括号中,这样它对于公式扫描仪来说是不可见的。

\documentclass{amsart}
\usepackage{systeme}

\begin{document}

\begin{align*}
&\systeme*{y = qx + b_{1}, y = mx{\;,}} \\
&\systeme*[var=x,y,0]{0 = (q - m)x + b_{1}, y = mx{\;,}} \\
&\syslineskipcoeff{1.75}\systeme*{x = \dfrac{b_{1}}{m - q}, y = mx{\;,}} \\
&\syslineskipcoeff{2.25}\systeme*{x = \dfrac{b_{1}}{m - q}, y = \dfrac{mb_{1}}{m - q}{\;.}}
\end{align*}

\end{document}

在此处输入图片描述

相关内容