如何绘制带有线条和侧括号的矩阵?

如何绘制带有线条和侧括号的矩阵?

我想生成如下图所示的内容。我目前有以下内容,但如您所见,并不完整。您知道如何做到这一点吗?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mleftright}
\usepackage{mathtools}

\begin{document}

\begin{align*}
    \overbrace{
    \mleft[
    \begin{array}
        \mat{A}_1 \mid \mat{A}_2
    \end{array}
    \mright]}_{\mat{A}}
    \overbrace{
    \mleft[
    \begin{array}{c|c}
        \mat{S}_1 & \mat{S}_2 \\ 
        \hline
        \mat{S}_3 & \mat{S}_4 
    \end{array}
    \mright]}_{\mat{S}}
\end{align*}

\end{document}

在此处输入图片描述

答案1

可能需要进行一些微调,您绝对应该阅读文档nicematrix。但这是您发布的第二个矩阵的示例。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,nicematrix}
\begin{document}
\[ 
        \begin{bNiceArray}[last-col,margin]{w{c}{7em}|w{c}{3.5em}}
                \\
                (\mathbf{G}+\mathbf{R})\mathbf{U} & \mathbf{R}\mathbf{P}-\mathbf{C}  & \hspace*{8pt} m_1 \\
                \\
                \hline
                \Block{5-1}{\mathbf{U}} \\
                \\
                                                  & \mathbf{P} & \hspace*{8pt} m_2\\
                                                  \\
                &
                \CodeAfter
                \UnderBrace[yshift=5pt]{1-1}{8-1}{m_2}
                \UnderBrace[yshift=5pt]{1-2}{8-2}{m_1}
                \SubMatrix.{1-1}{3-2}\}[right-xshift=8pt]
                \SubMatrix.{4-1}{8-2}\}[right-xshift=8pt]
        \end{bNiceArray}
\]
\end{document}

快速解释:

  • bNiceArray指定您要将其放在括号中。使用版本...Array而不是版本...Matrix可以让您更好地控制列规范(我们使用)。
  • last-col允许您添加最后一列外部括号内。(我们将m_1和放在这里m_2。)
  • margin留出一点余地,否则就会\hline碰到括号。
  • 列说明符w{c}{7em}放置一个宽度固定、宽度为 7em 且内容居中的列。
    • 您也可以使用一些空列来获取水平间距;我选择这种方式是为了减少打字/计数。
  • 请注意最后一列是不是包含在色谱柱规范中。
  • 包含空白行以用于垂直间距。
  • m_1在和前面插入了额外的空格m_2以容纳括号(稍后放入\SubMatrix块中)。
  • \CodeAfter允许您额外标记矩阵。
    • 用来\SubMatrix放置额外的分隔符,例如垂直括号(阅读文档以了解语法);额外的是将括号推到方括号之外;这就是为什么我们必须在andxshift前面添加空格。m_1m_2
    • 用于\UnderBrace在列之间放置水平括号。阅读文档以了解语法。我添加了一个额外的内容,yshift以使其更接近您问题中的间距。

相关内容