# Align values in bmatrix

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}

-

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


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:

-
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 4 '15 at 22:31