[Tex/LaTex] Align values in bmatrix

alignmatrices

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}

Best Answer

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