线性方程组中每个方程的适当间距

线性方程组中每个方程的适当间距

在下面的代码中,我让 LaTeX 显示一个包含 n 个变量的 m 个线性方程组。我有正确的对齐方式,但在两个方面显示不正确。垂直点在列中没有完全居中,并且在每个方程中,“+”和“=”附近有一个不合适的宽空间。我希望 LaTeX 将这些点居中,并且我希望在二元加法运算符和二元等式关系附近有适当的空间。

\documentclass[10pt]{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}


\begin{document}

\begin{align*}
\left\{
\begin{array}{ccccccccccc}
a_{1,1}x_{1} & + & a_{1,2}x_{2} & + & \cdots & + & a_{1,n}x_{n} & = & b_{1} \\
a_{2,1}x_{1} & + & a_{2,2}x_{2} & + & \cdots & + & a_{2,n}x_{n} & = & b_{2} \\
\vdots & & \vdots & & \ddots & &  \vdots & &  \vdots \\
a_{m,1}x_{1} & + & a_{m,2}x_{2} & + & \cdots & + & a_{m,n}x_{n} & = & b_{m} \\
\end{array}
\right.
\end{align*}

\end{document}

答案1

这是一个解决方案,它基本上采用您的代码并仅修改长度参数\arraycolsep;它的默认值(在我熟悉的所有 LaTeX 文档类中)是5pt,我将其设置为1.5pt围绕+符号和2.5pt围绕=符号。这些更改还会带来符号定位的变化\vdots

在此处输入图片描述

\documentclass[10pt]{amsart}
%\usepackage{amsmath}  % none of these packages are used for this MWE
%\usepackage{amsfonts}
%\usepackage{amssymb}
%\usepackage{amsthm}
%\usepackage{mathtools}

\begin{document}
\[  % no need to use "align*" env.
\setlength\arraycolsep{1.5pt} % default value: 5pt
\left\{
\begin{array}{ccc ccc c @{\extracolsep{2.5pt}}c@{\extracolsep{2.5pt}}c}
a_{1,1}x_{1} & + & a_{1,2}x_{2} & + & \cdots & + & a_{1,n}x_{n} & = & b_{1} \\
a_{2,1}x_{1} & + & a_{2,2}x_{2} & + & \cdots & + & a_{2,n}x_{n} & = & b_{2} \\
\vdots & & \vdots & & \ddots & &  \vdots & &  \vdots \\
a_{m,1}x_{1} & + & a_{m,2}x_{2} & + & \cdots & + & a_{m,n}x_{n} & = & b_{m} \\
\end{array}
\right.
\]
\end{document}

附录,由 OP 的一些后续问题引发:OP 问我如何得出长度1.5pt2.5pt。首先,一些准备工作。默认情况下,TeX\medmuskip = 4 mu plus 2.0 mu minus 4.0 mu在数学类型的项mathordmathbin(例如+)之间以及\thickmuskip = 5mu plus 5mu数学类型的项mathrel(例如=)周围插入。这些“粘合”长度中的拉伸和收缩组件仅在 TeX 认为需要拉伸或收缩表达式时才发挥作用;为了讨论的目的,我们可以分别使用固定长度和4mu5mu(1 mu= 1/18 em,其中 em-space 通常是字母的宽度M。)但请注意,诸如符号周围的空间=可以大大扩展但不能收缩。

在上面给出的答案中,我选择了1.5pt而不是4mu作为列之间的默认间距,原因如下:由于mathord第 1 行和第 2 行上的“数学分子”类型array——例如a_{1,2}x_{2}——是较不宽比最后一行中的要大 -- 例如a_{m,2}x_{2}-- 分配4mu会导致 mathord 和 mathbin 类型的项之间的间距在最后一行看起来还行,但在其他所有行中可能都太宽。选择稍低的值(即1.5pt)代表了一点妥协,希望空间“平均”看起来还行,即在 的所有行中array。最后,2.5pt非常接近5mu因为我认为在 类型的项周围提供足够的空间很重要mathrel

答案2

解决方案的一个例子。如果我们知道方程的结构,它可能会简化。

\documentclass[10pt]{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}


\begin{document}

\begin{align*}
\left\{
\begin{array}{c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\,}c@{\;}c@{\;}ccccc}
a_{1,1}x_{1} & + & a_{1,2}x_{2} & + & \cdots & + & a_{1,n}x_{n} & = & b_{1} \\
a_{2,1}x_{1} & + & a_{2,2}x_{2} & + & \cdots & + & a_{2,n}x_{n} & = & b_{2} \\
\vdots & & \vdots & & \ddots & &  \vdots & &  \vdots \\
a_{m,1}x_{1} & + & a_{m,2}x_{2} & + & \cdots & + & a_{m,n}x_{n} & = & b_{m} \\
\end{array}
\right.
\end{align*}

\end{document}

在此处输入图片描述

答案3

另一个解决方案是使用alignat环境and theempheq package for the brace. Don't loadamsmath: : empheq loadsmathtools , which loads it. I deleted the\ddots`,我不明白这个上下文中的含义。+ 号和未知数垂直对齐:

    \documentclass[10pt]{amsart}

    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage[overload]{empheq}


    \begin{document}

    \begin{alignat*}{4}[left = \empheqlbrace]
    a_{1,1}&x_{1} + a_{1,2}& & x_{2} +\cdots + a_{1,n}& & x_{n} \mbox{}&=\mbox{} & b_1} \\
    a_{2,1}&x_{1} {}+ a_{2,2} & &x_{2} +\cdots + a_{2,n}& & x_{n}& \mbox{}=\mbox{} & b_2} \\[-7pt]
     & \vdots & &\vdots & & \vdots & &\vdots \\[-5pt]
    a_{m,1}&x_{1}{} + a_{m,2} & & x_{2} +\cdots + a_{m,n}& & x_{n}& \mbox{}= \mbox{} & b_{m}
    \end{alignat*}

    \end{document} 

在此处输入图片描述

相关内容