[Tex/LaTex] How to increase the line spacing in a matrix

line-spacingmatricesspacing

I'm trying to create a pmatrix whose components are rather complicated fractions (Christoffel symbols), and the line spacing is too small making the whole thing a bit cramped and hard to read.

Is there any easy way to increase the spacing (about 1.5 the default would be perfect)?

Best Answer

You could redefine \arraystretch. This can be made locally, within a group or environment. For example:

\begingroup
\renewcommand*{\arraystretch}{1.5}
% your pmatrix expression
\endgroup

But you could do it in the preamble too, then it would have effect on all matrices and arrays.

Here's a redefinition of an internal amsmath LaTeX macro for customizing line spacing in specific matrices arbitrarily as desired:

\makeatletter
\renewcommand*\env@matrix[1][\arraystretch]{%
  \edef\arraystretch{#1}%
  \hskip -\arraycolsep
  \let\@ifnextchar\new@ifnextchar
  \array{*\c@MaxMatrixCols c}}
\makeatother

After putting this in your preamble, you can write

\begin{pmatrix}[1.5]
...

vary the value as you like, with pmatrix, vmatrix, bmatrix and alike, or use it without the optional argument as usually.

I used it similar in my blog some years ago.

Complete small example to show the difference:

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewcommand*\env@matrix[1][\arraystretch]{%
  \edef\arraystretch{#1}%
  \hskip -\arraycolsep
  \let\@ifnextchar\new@ifnextchar
  \array{*\c@MaxMatrixCols c}}
\makeatother
\begin{document}
\[
  \begin{pmatrix}
    1 & 0 \\
    0 & 1
  \end{pmatrix}
  =
  \begin{pmatrix}[1.5]
    1 & 0 \\
    0 & 1
  \end{pmatrix}
\]
\end{document}

matrices in two sizes

Related Question