7

Is it possible to renew the bmatrix environment to have alignment?

I would like the following vectors to show aligned:

\begin{bmatrix}
 -0.505 & \\
 -0.141 & \\
 0.144 & \\
 0.839 & \\
\end{bmatrix}
ShreevatsaR
  • 45,428
  • 10
  • 117
  • 149
  • 2
    Possible duplicate of: https://tex.stackexchange.com/questions/45001/how-do-i-left-align-entries-in-a-matrix-with-beginmatrix – 0 _ Sep 24 '17 at 06:16

1 Answers1

8

Example with matrix environment. Work also for bmatrix

Taken from here. Article by Stefan Kottwitz.

This code produces unaligned numbers:

\[
  \begin{pmatrix}
    1 &  2 &  1 \\
    0 & -2 & -3 \\
    0 & 3 &  -2
  \end{pmatrix}
\]

enter image description here

However, the environment can be renewed to support alignment:

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

Now it is possible to do:

\[
  \begin{pmatrix}[r]
    1 &  2 &  1 \\
    0 & -2 & -3 \\
    0 & 3 &  -2
  \end{pmatrix}
\]

which outputs:

enter image description here

  • 13
    which is already build into the bmatrix* environment, which is available through the mathtools package – daleif Jun 17 '13 at 11:04
  • What I like about Alan's answer is that it allows me to choose the default (by replacing [c] with [r] in the definition, say). – Martin Argerami Nov 04 '15 at 22:31