# Descriptive text around a matrix

I am trying to write a matrix with a bit of text sidewards and above it in order to explain its meaning. At the moment, this is my code:

$$\begin{turn}{90} \mbox{\# rows} \end{turn} \stackrel{\mbox{\# columns}}{ \begin{pmatrix} 1 & 1 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 & 1\\ 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 0 & 1\\ 1 & 1 & 0 & 0 & 1\\ \end{pmatrix} }$$


And this is the result:

However, the text on the left side of the matrix is not correctly centered (it is too high). How to center the text around the matrix correctly?

• Feb 23, 2015 at 21:05

It's easier with an array and \rotatebox:

\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}

\begin{document}
$$\begin{array}{@{}c@{\hspace{1ex}}c@{}} & \text{\# columns} \\[1ex] \rotatebox[origin=c]{90}{\text{\# rows}} & \begin{pmatrix} 1 & 1 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 & 1\\ 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 0 & 1\\ 1 & 1 & 0 & 0 & 1\\ \end{pmatrix} \end{array}$$
\end{document}


• why to use @{}? The c alignment is not enough to centre the array contents? Feb 23, 2015 at 21:16
• @Sigur The additional space on the sides may be unwanted depending on the context. Feb 23, 2015 at 21:18

Just because I like doing things with stacks...

The inter-column gap can be adjusted by changing the 2ex argument to \setstacktabbedgap. Vertical row separation is adjusted with the argument to \setstackgap{L}{length}.

\documentclass{article}
\usepackage{amsmath, graphicx, tabstackengine}
\stackMath
\begin{document}
$$\setstacktabbedgap{2ex} \setstackgap{L}{1.2\baselineskip} \rotatebox[origin=c]{90}{\text{\# rows}} \stackon{% \parenMatrixstack{ 1 & 1 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 & 1\\ 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 0 & 1\\ 1 & 1 & 0 & 0 & 1 } }{\text{\# columns}}$$
\end{document}


Here is what you can do with nicematrix.

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{equation*}
\begin{pNiceMatrix}[first-row,first-col]
& \Block{1-5}{\mbox{\# columns}}\\
\Block{5-1}<\rotate>{\mbox{\# rows}}
&  1 & 1 & 1 & 0 & 0\\
&  0 & 0 & 1 & 0 & 1\\
&  0 & 0 & 0 & 0 & 0\\
&  1 & 1 & 1 & 0 & 1\\
&  1 & 1 & 0 & 0 & 1\\
\end{pNiceMatrix}
\end{equation*}

\end{document}