Un cuadro para matemáticas con la misma altura (y ancho) que alguna otra expresión matemática (especialmente para elementos/bloques de matriz)

Un cuadro para matemáticas con la misma altura (y ancho) que alguna otra expresión matemática (especialmente para elementos/bloques de matriz)

Este es mi 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}

Aquí elmathtoolsEl paquete debería ser necesario para el comando \mathmakebox; estoy usando eleasybmatpaquete porque es una gran herramienta para manejar bloques en matrices, lo cual es necesario para mis propósitos; elphysicsEl paquete aquí se usa solo para notación vectorial rápida, pero por supuesto no es necesario. Uno debería obtener este resultado: Resultados

A menudo necesito dividir una matriz en varios sectores, o fusionar varios bloques en bloques más grandes, y así sucesivamente... Al hacer esto, a menudo me gustaríaobjetos correspondientes para tener las mismas dimensiones visuales.
En el MWE anterior, intenté mostrar cómo es posible crear un elemento de matriz de "varias columnas" del mismo ancho que algunos elementos consecutivos en la misma fila con \mathmakeboxy \widthof. [*]
En el "primer intento" se demuestra que este truco funciona perfectamente con espaciado horizontal, pero no con espaciado vertical; en el "segundo intento" se muestra una solución alternativa para el espaciado vertical.
Mis preguntas son:

  1. ¿Existe alguna solución más limpia que la que usé anteriormente (en el MWE)?
  2. (fundamental)¿Existe un procedimiento similar para tener un elemento de matriz "multifila" de la misma altura de algunos elementos consecutivos dentro de la misma columna?, en el MWE, solo piense en reemplazar la columna(C1,C2)con un vectorC, de manera análoga a lo que se ha hecho con(b1,b2)yb; Pregunto esto especialmente porque \heightofno \mathmakeboxfunciona. [**]
  3. (mas general)¿Hay alguna manera de hacer un cuadro, destinado a ser llenado con matemáticas, con las mismas dimensiones (alto y ancho) de alguna otra expresión matemática? Eventualmente, ¿hay alguna manera de usar dos expresiones diferentes, una para el ancho y otra para ¿altura?

[*] Debo agregar, aquí, que generalmente evito fusionar columnas y/o filas cuando manejo matrices; Considero que las matrices anidadas son una solución más sencilla; ¡Por supuesto, es muy posible que me equivoque en esto! De todos modos, esta pregunta eventualmente puede tener sentido también para otros propósitos, no relacionados con las matrices.
[**] Es posible que también tenga una solución para este problema, utilizando cuadros con ancho nulo en los que se colocan expresiones fantasmas; Me abstuve de publicarlo: es tan poco elegante que, si lo hubiera publicado, me habrían prohibido para siempre.

Respuesta1

Puede evitar el trabajo duplicado utilizando una caja de guardado.

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

información relacionada