线性方程组的定制环境

线性方程组的定制环境

我的问题

我经常编写线性方程组,并具有以下对齐要求:

  • 所有未知数的倍数都应右对齐
  • 所有的+-=运算符号都应该居中,并为那些“功能齐全”的方程式留出适当的左右间距

在此处输入图片描述

我原来的 MWE:

\documentclass[12pt,border=10pt]{standalone}
\usepackage{mathtools}
\begin{document}
My matrix is :
$M =
\begin{bmatrix*}[r]
  -1 & 2 & -3 \\
   4 & 0 & -1 \\
   7 & 8 &  9 \\
\end{bmatrix*}
$
thus the equation $M X = X$
reads :
$
\def\arraycolsep{0pt}
\left \{
\begin{array}{*3{rc}r}
  - x & {}+{} & 2 y & {}-{} & 3 z & {}={} & x \\
  4 x &       &     & {}-{} &   z & {}={} & y \\
  7 x & {}+{} & 8 y & {}+{} & 9 z & {}={} & z \\
\end{array}
\right.
$
\end{document}

我的希望

我不知道如何使用amsmathmathtools包中定义的环境来做到这一点

我想要一个可以linearEquations让我简单地写下的环境:

\begin{linearEquations}{3}
  - x & + & 2 y & - & 3 z & = & x \\
  4 x &   &     & - &   z & = & y \\
  7 x & + & 8 y & + & 9 z & = & z \\
\end{linearEquations}

以产生相同的结果。

我的尝试

到目前为止我已经尝试过类似的事情:

\newenvironment{linearEquations}[1]
{
  %before
  \def\arraycolsep{0pt}
  \left \{
  \begin{array}{*#1{r@{{}}c@{{}}}r}
}
{
  %after
  \end{array}
  \right.
}

但它没有{}在操作符号之前/之后产生适当的间距

你能帮忙吗?谢谢,

可能的解决方案

按照沃纳的回答,该线路\begin{array}{*#1{r@{\:}c@{\:}}r}在这种情况下似乎有效,但也许仅在某些情况下才有效?

答案1

我建议对环境设置做两处更改linearEquations

  • 使用\setlength\arraycolsep{0pt},而不是\def\arraycolsep{0pt};和

  • 定义一个新的列类型,例如,C为二元和关系运算符的列:

    \newcolumntype{C}{>{{}}c<{{}}}
    

通过这些修改,您的自定义环境应该没问题:

在此处输入图片描述

\documentclass{article}
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{C}{>{{}}c<{{}}}
\newenvironment{linearEquations}[1]{%
  %before
  \setlength\arraycolsep{0pt}
  \left\{\,
  \begin{array}{*{#1}{rC}r}}{%
  %after
  \end{array}
  \right.
}
\begin{document}
\[
\begin{linearEquations}{3}
  - x & + & 2 y & - & 3 z & = & x \\
  4 x &   &     & - &   z & = & y \\
  7 x & + & 8 y & + & 9 z & = & z \\ 
\end{linearEquations}
\]
\end{document}

答案2

像这样吗?

\documentclass[12pt,border=10pt]{standalone}
\usepackage{mathtools}
\usepackage{systeme}
\begin{document}
My matrix is:
$M =
\begin{bmatrix*}[r]
  -1 & 2 & -3 \\
   4 & 0 & -1 \\
   7 & 8 &  9 \\
\end{bmatrix*}
$
thus the equation $M X = X$
reads:
\systeme{
 -x+2y-3z=x,
 4x-z=y,
 7x+8y+9z=z
}
\end{document}

在此处输入图片描述

相关内容