與其他數學表達式具有相同高度(和寬度)的數學框(特別是對於矩陣元素/區塊)

與其他數學表達式具有相同高度(和寬度)的數學框(特別是對於矩陣元素/區塊)

這是我的 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這裡的 package 只是用於快速向量表示,但當然不是必要的。人們應該得到這樣的結果: 結果

我經常需要將一個矩陣分成幾個扇區,或者將幾個塊合併成一些更大的塊,等等......在這樣做時我經常會喜歡對應的物體具有完全相同的視覺尺寸
在上面的 MWE 中,我試圖展示如何使用 和 來製作同一行中一些連續元素的相同寬度的「多列」矩陣\mathmakebox元素\widthof。 [*]
在「第一次嘗試」中,我們發現這個技巧對於水平間距非常有效,但對於垂直間距則不然;在“第二次嘗試”中,顯示了垂直間距的解決方法。
我的問題是:

  1. 有沒有比我上面(在 MWE 中)使用的解決方案更乾淨的解決方案?
  2. (基本的)是否有類似的過程可以使同一列中的某些連續元素具有相同高度的「多行」矩陣元素?(C1,C2與一個向量C,類似於所做的(b1,b2;我特別問這個問題是因為\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}

相關內容