bmatrix 与 \left

bmatrix 与 \left

以下代码生成如图所示的矩阵

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{equation}
\left[ {\begin{array}{*{20}{c}} \mathbf{y}_1 \\ \vdots \\ \mathbf{y}_s \\ \vdots \\ \mathbf{y}_S \end{array}} \right] = 
        \begin{bmatrix}         \mathbf{y}_1 \\ \vdots \\ \mathbf{y}_s \\ \vdots \\ \mathbf{y}_S \end{bmatrix}
\end{equation}

\end{document}

对我来说,(右边的)产生的矩阵bmatrix有点拥挤,有没有办法使用来产生一个宽敞的矩阵(像左边的)bmatrix

只是好奇 :)

谢谢 在此处输入图片描述

答案1

如果您确实想要像 中的空间array,请使用array

\renewenvironment{bmatrix}
  {\left[\array{*{\value{MaxMatrixCols}}{c}}}
  {\endarray\right]}

完整示例

\documentclass{article}

\usepackage{amsmath}

\renewenvironment{bmatrix}
  {\left[\array{*{\value{MaxMatrixCols}}{c}}}
  {\endarray\right]}

\begin{document}

\[
  \left[
    \begin{array}{ c }
      \mathbf{y}_1 \\ \vdots \\ \mathbf{y}_s \\ \vdots \\ \mathbf{y}_S
    \end{array}
  \right] =
  \begin{bmatrix}
    \mathbf{y}_1 \\ \vdots \\ \mathbf{y}_s \\ \vdots \\ \mathbf{y}_S
  \end{bmatrix}
\]

\end{document}

在此处输入图片描述

但请不要这样做:这个标准\arraycolsep确实太高了。也许

\renewenvironment{bmatrix}
  {\left[\hspace{-.5\arraycolsep}\array{*{\value{MaxMatrixCols}}{c}}}
  {\endarray\hspace{-.5\arraycolsep}\right]}

这将产生

在此处输入图片描述

实际上,为了获得与标准相同的行为bmatrix,应该添加一小段代码:

\makeatletter
\renewenvironment{bmatrix}
  {\left[\let\@ifnextchar\new@ifnextchar\array{*{\value{MaxMatrixCols}}{c}}}
  {\endarray\right]}
\makeatother

这样就可以开始一排[而不需要采取特殊的预防措施。

答案2

的定义bmatrix使用\left[...但也删除了由内部的统一性插入\right]的外部空间(作为和的一部分;参见colseparray\env@matrix\endmatrixamsmath.dtx)。您可以根据需要进行调整:

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath}

\makeatletter
% Original definition of bmatrix
% \newenvironment{bmatrix}{\left[\env@matrix}{\endmatrix\right]}
\renewenvironment{bmatrix}
  {\left[\hspace{\arraycolsep}\env@matrix}
  {\endmatrix\hspace{\arraycolsep}\right]}
\makeatother

\begin{document}

\[
  \left[
    \begin{array}{ *{20}{c} }
      \mathbf{y}_1 \\ \vdots \\ \mathbf{y}_s \\ \vdots \\ \mathbf{y}_S
    \end{array}
  \right] = 
  \begin{bmatrix}
    \mathbf{y}_1 \\ \vdots \\ \mathbf{y}_s \\ \vdots \\ \mathbf{y}_S
  \end{bmatrix}
\]

\end{document}

相关内容