Element einer Matrix in Equation Umgebung zentrieren

Formelsatz für Mathematik, Naturwissenschaften und Technik


chirs_85
Forum-Anfänger
Forum-Anfänger
Beiträge: 41
Registriert: Mo 19. Okt 2015, 11:37

Element einer Matrix in Equation Umgebung zentrieren

Beitrag von chirs_85 »

Hallo,

ich würde gerne Elemente einer Matrix innerhalb der Equation Umgebung zentrieren. Die Element sind unterschiedl. lang (etwa "a_b" und "c_{defghi}").

Bisherige versuche mit \centering, \begin{bmatrix}[c] haben nicht funktioniert.

Gibt es Ideen?

Gruß

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Re: Element einer Matrix in Equation Umgebung zentrieren

Beitrag von esdd »

chirs_85 hat geschrieben: Gibt es Ideen?
Ja, mach ein Minimalbeispiel und zeig uns, was Du tust, damit die beiden Elemente nicht zentriert übereinander stehen:
    \documentclass{article}
    \usepackage{amsmath}
    \begin{document}
    \begin{equation}
      \begin{bmatrix}
        a_b\\
        c_{defgh}
      \end{bmatrix}
    \end{equation}
    \end{document}

chirs_85
Forum-Anfänger
Forum-Anfänger
Beiträge: 41
Registriert: Mo 19. Okt 2015, 11:37

Beitrag von chirs_85 »

Besten Dank fürs Feedback. Anbei ein Minimalbeispiel
	
\documentclass{article}
 \usepackage{amsmath}
    \begin{document}
	\begin{equation}
	   \begin{bmatrix}
             a^b\\
             c^{defghij}
            \end{bmatrix} 
	\end{equation}
\end{document}
Ich hätte gerne, das "a" und "c" untereinander stehen. Das Problem scheint das supersript zu sein

Noch so einer

Beitrag von Noch so einer »

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.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Das Paket mathtools definiert für solche Zwecke Sternvarianten der Matrixumgebungen:
\documentclass{article} 
\usepackage{mathtools}% lädt auch amsmath 
\begin{document}
\begin{equation}
  \begin{bmatrix*}[l]
    a^b\\ 
    c^{defghij}
  \end{bmatrix*}
\end{equation}
\end{document}
Wie in dem Vorschlag von Besserwisser werden dann aber *alle* Spalten der Matrix linksbündig ausgerichtet.

chirs_85
Forum-Anfänger
Forum-Anfänger
Beiträge: 41
Registriert: Mo 19. Okt 2015, 11:37

Beitrag von chirs_85 »

esdd hat geschrieben:Das Paket mathtools definiert für solche Zwecke Sternvarianten der Matrixumgebungen:
\documentclass{article} 
\usepackage{mathtools}% lädt auch amsmath 
\begin{document}
\begin{equation}
  \begin{bmatrix*}[l]
    a^b\\ 
    c^{defghij}
  \end{bmatrix*}
\end{equation}
\end{document}
Wie in dem Vorschlag von Besserwisser werden dann aber *alle* Spalten der Matrix linksbündig ausgerichtet.
So sieht es ganz gut aus. Danke :-)

Antworten