von Noch so einer » Mi 9. Dez 2015, 10:07
Man könnte natürlich statt einer bmatrix- einfach eine array-Umgebung mit l-Spalten verwenden. Man kann aber auch bmatrix um ein optionales Argument erweitern, so dass man den Spaltentype frei wählen kann:
\documentclass{article}
\usepackage{mathtools}
\makeatletter
% Das internet \env@matrix von amsmath bekommt als optinalen Parameter den Spaltentyp mit dem Default c
\def\env@matrix{%
\kernel@ifnextchar [%]
{\env@@matrix}%
{\env@@matrix[c]}%
}
\def\env@@matrix[#1]{\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{*\c@MaxMatrixCols #1}}
% Die Umgebung bmatrix wird so umdefiniert, dass sie ebenfalls ein optionales Argument erhält, das sie an \env@matrix weiterreicht
\renewenvironment{bmatrix}[1][l]{\left[\env@matrix[#1]}{\endmatrix\right]}
\makeatother
\begin{document}
\begin{equation}
\begin{bmatrix}[l]
a^b\\
c^{defghij}
\end{bmatrix}
\end{equation}
\end{document}
Hat man allerdings unterschiedliche Spalten, dass ist das nicht mehr sonderlich sinnvoll. Dann sollte man darüber nachdenken, wirklich mit einer array-Umgebung zu arbeiten.
Man könnte natürlich statt einer [tt]bmatrix[/tt]- einfach eine [tt]array[/tt]-Umgebung mit [tt]l[/tt]-Spalten verwenden. Man kann aber auch [tt]bmatrix[/tt] um ein optionales Argument erweitern, so dass man den Spaltentype frei wählen kann: [code]\documentclass{article}
\usepackage{mathtools}
\makeatletter
% Das internet \env@matrix von amsmath bekommt als optinalen Parameter den Spaltentyp mit dem Default c
\def\env@matrix{%
\kernel@ifnextchar [%]
{\env@@matrix}%
{\env@@matrix[c]}%
}
\def\env@@matrix[#1]{\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{*\c@MaxMatrixCols #1}}
% Die Umgebung bmatrix wird so umdefiniert, dass sie ebenfalls ein optionales Argument erhält, das sie an \env@matrix weiterreicht
\renewenvironment{bmatrix}[1][l]{\left[\env@matrix[#1]}{\endmatrix\right]}
\makeatother
\begin{document}
\begin{equation}
\begin{bmatrix}[l]
a^b\\
c^{defghij}
\end{bmatrix}
\end{equation}
\end{document}[/code]
Hat man allerdings unterschiedliche Spalten, dass ist das nicht mehr sonderlich sinnvoll. Dann sollte man darüber nachdenken, wirklich mit einer [tt]array[/tt]-Umgebung zu arbeiten.