矩阵上的括号

矩阵上的括号

我想在矩阵上制作一个上支撑和一个侧支撑,以指示其大小。我该如何实现呢?

  \begin{pmatrix}
  1 & 1 & 0 & .& . & . & 0 & 1  \\
  0 & 0 & 1 & .& . & . & 1 & 0 \\
 .\\
 .\\
 .\\
  0 & 1 & 1 & . & . & . & 1 & 1
 \end{pmatrix}

答案1

这是一种方法... [已编辑,添加\mkern以解决芭芭拉的担忧;已重新编辑以使用\overbrace上标]

\documentclass{article}
\usepackage{amsmath}
\usepackage{stackengine}
\begin{document}
\def\tmp{%
  \begin{pmatrix}
  1 & 1 & 0 & .& . & . & 0 & 1  \\
  0 & 0 & 1 & .& . & . & 1 & 0 \\
 .\\
 .\\
 .\\
  0 & 1 & 1 & . & . & . & 1 & 1
 \end{pmatrix}
}%
\[
\stackMath\def\stackalignment{r}%
  \stackon%
    {\mathrm{10~rows}\left\{\tmp\right.}%
    {\overbrace{\phantom{\smash{\tmp\mkern -36mu}}}^{\mathrm{\textstyle 12~columns}}\mkern 20mu}%
\]
\end{document}

在此处输入图片描述

答案2

以下内容需要一些\nulldelimiterspace修正,但仅使用amsmath

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\def\matriximg{%
  \begin{matrix}
    1 & 1 & 0 & \cdot & \cdot & \cdot & 0 & 1 \\
    0 & 0 & 1 & \cdot & \cdot & \cdot & 1 & 0 \\
    \cdot                                     \\
    \cdot                                     \\
    \cdot                                     \\
    0 & 1 & 1 & \cdot & \cdot & \cdot & 1 & 1
   \end{matrix}
}%
\[
  \text{\scriptsize 10~rows}\left\{\left(\vphantom{\matriximg}\right.\right.\kern-2\nulldelimiterspace
  \overbrace{\matriximg}^{\text{12 columns}}\kern-\nulldelimiterspace\left.\vphantom{\matriximg}\right)
\]

\end{document}

为了\overbrace稍微提高,你可以使用

\vphantom{\raisebox{.25\baselineskip}{$\matriximg$}}\matriximg

答案3

以下是您可以使用(≥ 6.4 的 2021/11/23)做{pNiceMatrix}的事情。nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

$10$ rows $\left\{
\begin{pNiceMatrix}
   1 & 1 & 0 & \cdot & \cdot & \cdot & 0 & 1 \\
   0 & 0 & 1 & \cdot & \cdot & \cdot & 1 & 0 \\
   \cdot                                     \\
   \cdot                                     \\
   \cdot                                     \\
   0 & 1 & 1 & \cdot & \cdot & \cdot & 1 & 1
\CodeAfter
   \OverBrace[yshift=1.5mm,shorten]{1-1}{1-last}{12 \text{ columns}}
\end{pNiceMatrix}
\right.$

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案4

我将使用一个更精细、更干净的选项,即采用已知的 \overbrace,它可以让您非常轻松地获得结果。

这是一个小例子

$$
\overbrace{\begin{bmatrix}
    \epsilon[1]\\
    \epsilon[2]\\
    \vdots \\
    \epsilon[M]
    \end{bmatrix}}^{a}
$$

相关内容