Das ist mein MWE:
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{physics}
\usepackage{easybmat}
\begin{document}
First attempt:
\begin{align*}
&\left[\begin{BMAT}{c1c}{c1c}
a& \begin{matrix} b_1& b_2 \end{matrix} \\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]
\left[\begin{BMAT}{c1c}{c1c}
a& \mathmakebox[\widthof{$\begin{matrix} b_1& b_2 \end{matrix} $}]{\vb*b}\\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]\\
&\left[\begin{BMAT}{c1c}{c1c}
a& \mathmakebox[\widthof{$\begin{matrix} b_1& b_2 \end{matrix} $}]{\vb*b}\\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]
\end{align*}
Second attempt:
\begin{align*}
&\left[\begin{BMAT}{c1c}{c1c}
a& \begin{matrix} b_1& b_2 \end{matrix} \\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]
\left[\begin{BMAT}{c1c}{c1c}
a& \begin{matrix}
\mathmakebox[\widthof{$\begin{matrix} b_1& b_2 \end{matrix} $}]{\vb*b}
\end{matrix}\\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]\\
&\left[\begin{BMAT}{c1c}{c1c}
a& \begin{matrix}
\mathmakebox[\widthof{$\begin{matrix} b_1& b_2 \end{matrix} $}]{\vb*b}
\end{matrix}\\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]
\end{align*}
\end{document}
Hier dasmathtools
Paket sollte für den Befehl notwendig sein \mathmakebox
; ich verwende daseasybmat
Paket, weil es ein großartiges Werkzeug für die Handhabung von Blöcken in Matrizen ist, was für meine Zwecke notwendig ist; diephysics
Das Paket wird hier nur für die schnelle Vektornotation verwendet, ist aber natürlich nicht notwendig. Man sollte dieses Ergebnis erhalten:
Ich muss oft eine Matrix in mehrere Sektoren aufteilen oder mehrere Blöcke zu größeren Blöcken zusammenführen usw. Dabei möchte ich oftentsprechende Objekte müssen dieselben optischen Abmessungen haben. Im obigen MWE habe ich versucht zu zeigen, wie es möglich ist, mit und
ein „mehrspaltiges“ Matrixelement gleicher Breite aus mehreren aufeinanderfolgenden Elementen in derselben Zeile zu erstellen . [*] Im „ersten Versuch“ wird gezeigt, dass dieser Trick mit horizontalem Abstand perfekt funktioniert, aber nicht mit vertikalem Abstand; im „zweiten Versuch“ wird ein Workaround für den vertikalen Abstand gezeigt. Meine Fragen sind:\mathmakebox
\widthof
- Gibt es sauberere Lösungen als die, die ich oben (im MWE) verwendet habe?
- (grundlegend)Gibt es ein ähnliches Verfahren, um ein „mehrzeiliges“ Matrixelement mit der gleichen Höhe einiger aufeinanderfolgender Elemente innerhalb der gleichen Spalte zu haben? Denken Sie im MWE einfach daran, die Spalte zu ersetzen(C1,C2)mit einem VektorC, analog zu dem, was mit(B1,B2)UndB; Ich frage das insbesondere, weil
\heightof
es\mathmakebox
nicht funktioniert. [**] - (allgemeiner)Gibt es eine Möglichkeit, eine Box, die mit mathematischen Werten gefüllt werden soll, mit denselben Abmessungen (Höhe und Breite) wie ein anderer mathematischer Ausdruck zu erstellen? Gibt es eventuell eine Möglichkeit, zwei verschiedene Ausdrücke zu verwenden, einen für die Breite und einen für die Höhe?
[*] Ich muss hier hinzufügen, dass ich es beim Verwalten von Matrizen normalerweise vermeide, Spalten und/oder Zeilen zusammenzuführen. Ich finde, dass das Verschachteln von Matrizen eine einfachere Lösung ist. Natürlich kann ich mich hier auch irren! Trotzdem kann diese Frage eventuell auch für andere Zwecke, die nichts mit Matrizen zu tun haben, sinnvoll sein.
[**] Ich habe möglicherweise auch für dieses Problem eine Problemumgehung, indem ich Boxen mit Nullbreite verwende, in die ich Phantomausdrücke einfüge. Ich habe davon abgesehen, sie zu posten: Sie ist so unelegant, dass ich für immer gesperrt worden wäre, wenn ich sie gepostet hätte.
Antwort1
Durch den Einsatz einer Savebox können Sie doppelte Arbeit vermeiden.
\documentclass{article}
\usepackage{mathtools}
\usepackage{easybmat}
\newsavebox{\tempbox}% \sbox0 doesn't work
\begin{document}
\savebox\tempbox{$\begin{matrix} b_1 & b_2 \end{matrix}$}% must be outside align environment
\begin{align*}
&\left[\begin{BMAT}{c1c}{c1c}
a& \usebox\tempbox \\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]
\left[\begin{BMAT}{c1c}{c1c}
a& \mathmakebox[\wd\tempbox]{\boldsymbol{b}}\\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]\\
&\left[\begin{BMAT}{c1c}{c1c}
a& \mathmakebox[\wd\tempbox]{\boldsymbol{b}}\\
\begin{matrix} c_1 \\ c_2 \end{matrix}& D
\end{BMAT}\right]
\end{align*}
\end{document}