带有 pmatrix 的子矩阵

带有 pmatrix 的子矩阵

我有一个矩阵

\documentclass{standalone}
\usepackage{amsmath}
$
P= 
\begin{pmatrix}
0 & \gamma & \gamma & \gamma \\
0 & -2\tau -\gamma & 0& 0 \\
0 & 0 & -2\tau-\gamma & 0\\
0&0&0&-2\tai-\gamma
\end{pmatrix}
$

看起来像矩阵.它有一些我们可以识别的子矩阵。

\documentclass{standalone}
\usepackage{amsmath}
$
P = 
\begin{pmatrix}
%
\begin{pmatrix} 0 \end{pmatrix}  & 
\begin{pmatrix} \gamma & \gamma & \gamma\end{pmatrix} \\
%
%
\begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} & 
\begin{pmatrix}-2\tau -\gamma & 0& 0\\  
                         0 & -2\tau -\gamma & 0\\
                         0 & 0 & -2\tau -\gamma 
\end{pmatrix} 
\end{pmatrix}
$

这样看起来带有子块的新矩阵

但是子矩阵之间的列没有对齐,而且括号重叠。修复括号应该很容易,只需在行之间添加一些空间即可,但我还没有找到控制列的好方法。

我正在寻找一个好的选项来解决这个问题。如果可能的话,我更愿意坚持\pmatrix。是否可以使用 pmatrix 使列对齐?

答案1

您可以将\gamma元素插入到宽度的框内-2\tau-\gamma,以便它们根据需要在水平方向上占用相同的空间:

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,calc}

\begin{document}

\[
  P = 
  \begin{pmatrix}
    %
    \begin{pmatrix} 0 \end{pmatrix}  & 
    \begin{pmatrix}
      \makebox[\widthof{$-2\tau-\gamma$}]{$\gamma$} & 
      \makebox[\widthof{$-2\tau-\gamma$}]{$\gamma$} & 
      \makebox[\widthof{$-2\tau-\gamma$}]{$\gamma$}
    \end{pmatrix} \\[.5\normalbaselineskip]
    %
    \begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix} & 
    \begin{pmatrix}
      -2\tau -\gamma & 0 & 0 \\
      0 & -2\tau -\gamma & 0 \\
      0 & 0 & -2\tau -\gamma 
    \end{pmatrix} 
  \end{pmatrix}
\]

\end{document}

我强调了第一行和第二行之间的间隙;您可以根据需要进行调整。

答案2

该软件包中nicematrix有专门用于解决此类问题的工具。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

$P = \begin{pNiceArray}[margin]{c@{\qquad}ccc}
  0 & \gamma & \gamma & \gamma \\
  0 & -2 \tau - \gamma & 0 & 0 \\
  0 & 0 & -2 \tau - \gamma & 0 \\
  0 & 0 & 0 -2 \tau - \gamma 
\CodeAfter [sub-matrix/extra-height=-1pt]
  \SubMatrix({1-1}{1-1})
  \SubMatrix({1-2}{1-4})
  \SubMatrix({2-1}{4-1})
  \SubMatrix({2-2}{4-4})
\end{pNiceArray}$

\end{document}

上述代码的输出

答案3

以下是包含该blkarray软件包和一些微调的解决方案:

\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray}

\begin{document}

$ P =
\begin{pmatrix}
  \begin{blockarray}{c ccc}%
  \BAnoalign{\vspace*{-2ex}}
  \begin{block}{(c)@{\hspace*{1em}}(ccc)}
  0 & \gamma & \gamma & \gamma \\
  \end{block}
  \begin{block}{(c)@{\hspace*{1.333em}} (ccc)}%
  \BAnoalign*{\vspace*{-2ex}}
  0 & -2\tau -\gamma & 0 & 0 \\
  0 & 0 & \mathclap{-2\tau -\gamma} & 0 \\
  0 & 0 & 0 & -2\tau -\gamma \\
  \end{block}
  \BAnoalign{\vspace*{-5ex}}
  \end{blockarray}%
\end{pmatrix} $

\end{document} 

在此处输入图片描述

相关内容