# braces over matrix

I want to make an overbrace and a side brace on my matrix in order to indicate its size. How can I achieve that.

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


Here's one way... [EDITED, added \mkern to address barbara's concern; REEDITED to make use of \overbrace superscript]

\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}


The following requires some \nulldelimiterspace corrections, but only uses 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}


For raising the \overbrace slightly, you could use

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

• I need only the overbrace and not the side brace. kindly explain which is the one for overbrace and which one is for side brace. Apr 22, 2020 at 11:38
• @user27665: Use this code.
– Werner
Apr 22, 2020 at 16:05

Here is what you can do with {pNiceMatrix} of nicematrix (≥ 6.4 of 2021/11/23).

\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}


You need several compilations (because nicematrix uses PGF/Tikz nodes under the hood).

I would use a finer and cleaner option by employing the known \overbrace which allows you to achieve your results very easily.

Here is a small example

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