![对齐线性方程组](https://linux22.com/image/303212/%E5%AF%B9%E9%BD%90%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84.png)
我想弄清楚如何才能很好地对齐线性方程组。
目前我正在使用以下命令:
\systeme{x_1=2r + s -t,x_2= r, x_3=-2s +2t, x_4=s, x_5=t}
但这给了我一些丑陋的楼梯形式,例如:
有什么方法可以修复它,以便x_i
所有 ' 都位于左侧,并且彼此完美地位于下方,并且等式符号也能够对齐?
以下是 MWE:
\documentclass[11pt,a4paper,openany]{report}
\usepackage{amssymb,amsmath,amsthm}
\usepackage[dutch]{babel}
\usepackage{mdframed}
\usepackage{systeme,mathtools}
\makeatletter
\renewcommand*\env@matrix[1][*\c@MaxMatrixCols c]{%
\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{#1}}
\makeatother
\usepackage{lipsum}
\usepackage{relsize}
\newcommand\md{\ }
\begin{document}
\systeme{x_1=2r + s -t,x_2= r, x_3=-2s +2t, x_4=s, x_5=t}
\end{document}
答案1
用于此目的的命令是\systeme*
:
\documentclass[11pt,a4paper,openany]{report}
\usepackage{amsmath}
\usepackage{systeme}
\begin{document}
I want to figure out how I can align a system of linear equations very nicely.
At the moment I am using the following command:
\[
\systeme*{x_1=2r + s -t,x_2= r, x_3=-2s +2t, x_4=s, x_5=t}
\]
\end{document}
通过设置的值\syslineskipcoeff
可以修改间距;默认值为1.25:
\[
\syslineskipcoeff{1}
\systeme*{x_1=2r + s -t,x_2= r, x_3=-2s +2t, x_4=s, x_5=t}
\]
答案2
array
以下是仅使用包和环境的解决方案array
。如果您对环境序言中发生的事情感到好奇array
:
包含变量的四列类型为
r
=
为了在符号和+
和符号周围获得正确的间距-
,首先将列间空白量(由长度参数控制\arraycolsep
)设置为0pt
。符号
=
会自动插入;该指令@{{}={}}
告诉 LaTeX 将其视为=
类型的对象mathrel
。这些指令
>{{}}c<{{}}
告诉 LaTeX 将列内容(将是+
、-
或空白)居中设置,并将它们视为类型的对象mathbin
。
\documentclass[11pt,a4paper,openany]{report}
\usepackage{array}
\begin{document}
\[
\left\{
\setlength\arraycolsep{0pt}
\begin{array}{ r @{{}={}} r >{{}}c<{{}} r >{{}}c<{{}} r }
x_1 & 2r &+& s &-& t \\
x_2 & r \\
x_3 & &-& 2s &+& 2t \\
x_4 & & & s \\
x_5 & & & & & t \\
\end{array}
\right.
\]
\end{document}
答案3
该systeme
命令设计用于系统中“类似矩阵”的部分(如果您看不出来,我是一名工程师,不是数学家),位于左侧,而不是右侧。
如果您可以接受简单的 LHS->RHS 输入交换,则systeme
可以立即使用:
\documentclass{article}
\usepackage{systeme}
\begin{document}
\systeme{2r + s -t=x_1, r=x_2, -2s +2t=x_3, s=x_4, t=x_5}
\end{document}
有可能\systeme{}
按照对齐和未对齐边反转的精神创建一个新命令,但是代码超出了我的理解范围。;-)
答案4
使用 TABstack。在这种情况下,的“中心”\tabbedCenterstack
是指垂直居中,是[r]
指每列的水平右对齐,\stackMath
以数学模式处理数据,并在每个单元格之前和之后\TABbinary
插入一个{}
,以便为和提供+
适当-
的水平间距。
\documentclass[11pt,a4paper,openany]{report}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\[
\left\{
\TABbinary\tabbedCenterstack[r]{
x_1 =& 2r &+& s &-& t \\
x_2 =& r \\
x_3 =& &-& 2s &+& 2t \\
x_4 =& & & s \\
x_5 =& & & & & t
}\right.
\]
\end{document}