다른 수학 표현식과 높이(및 너비)가 동일한 수학용 상자(특히 행렬 요소/블록의 경우)

다른 수학 표현식과 높이(및 너비)가 동일한 수학용 상자(특히 행렬 요소/블록의 경우)

이것은 내 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}

여기서는mathtools패키지는 명령에 필요해야 합니다 \mathmakebox. 나는easybmat패키지는 내 목적에 필요한 행렬의 블록을 처리하는 훌륭한 도구이기 때문입니다. 그만큼physics여기 패키지는 빠른 벡터 표기를 위해서만 사용되지만 물론 꼭 필요한 것은 아닙니다. 다음 결과를 얻어야 합니다. 결과

나는 종종 매트릭스를 여러 섹터로 나누거나 여러 블록을 더 큰 블록으로 병합해야 하는 등의 작업을 수행해야 합니다.시각적 크기가 매우 동일한 해당 개체. 위의 MWE에서 및 를
사용하여 동일한 행에 있는 일부 연속 요소의 동일한 너비를 갖는 "다중 열" 행렬 요소를 만드는 방법을 보여 주려고 했습니다 . [*] "첫 번째 시도"에서는 이 트릭이 수평 간격에서는 완벽하게 작동하지만 수직 간격에서는 작동하지 않는 것으로 나타났습니다. "두 번째 시도"에서는 수직 간격에 대한 해결 방법이 표시됩니다. 내 질문은 다음과 같습니다\mathmakebox\widthof

  1. 위에서 MWE에서 사용한 것보다 더 깨끗한 솔루션이 있습니까?
  2. (근본적인)동일한 열 내의 일부 연속 요소와 동일한 높이의 "다중 행" 행렬 요소를 갖는 유사한 절차가 있습니까? MWE에서는 열 교체를 생각해보십시오.(씨1,씨2)벡터로, 에서 수행된 것과 유사하게(비1,비2)그리고; 나는 특히 \heightofin이 \mathmakebox트릭을 수행하지 않기 때문에 이것을 묻습니다 . [**]
  3. (더 일반적)다른 수학 표현식과 동일한 치수(높이 및 너비)를 사용하여 수학으로 채워지는 상자를 만드는 방법이 있습니까? 결국 두 가지 다른 표현식(너비에 대해 하나, 너비에 대해 하나)을 사용할 수 있는 방법이 있습니까? 키?

[*] 행렬을 관리할 때 일반적으로 열 및/또는 행 병합을 피한다는 점을 여기에 추가해야 합니다. 나는 중첩 행렬이 더 간단한 해결책이라고 생각합니다. 물론, 제가 틀렸을 수도 있습니다. 어쨌든 이 질문은 결국 행렬과 관련되지 않은 다른 목적으로도 이해가 될 수 있습니다.
[**] 이 문제에 대한 해결 방법도 있을 수 있습니다. 너비가 널인 상자를 사용하여 팬텀 표현식을 넣는 것입니다. 나는 게시를 자제했습니다. 너무 품위없어서 게시했다면 영원히 차단되었을 것입니다.

답변1

저장 상자를 사용하면 중복 작업을 피할 수 있습니다.

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

관련 정보