当矩阵的列的宽度不同时,过度支撑不起作用

当矩阵的列的宽度不同时,过度支撑不起作用

我需要在矩阵的列上添加过度支撑。我试过了如何使用括号标记矩阵的不同行或列?构建一个在某些列上带有过度支撑的矩阵,它们都可以正常工作,直到没有下标或将不同长度的条目添加到条目中,添加下标后它就无法正常工作了。下图显示了问题

这是代码

\[ \vphantom{% phantom stuff for correct box dimensions
    \begin{matrix}
    \overbrace{XYZ}^{\mbox{$R$}}\\ \\ \\ \\ \\ \\
    \underbrace{pqr}_{\mbox{$S$}}
    \end{matrix}}%
\begin{matrix}% matrix for left braces
\vphantom{a}\\
\coolleftbrace{A}{e \\ y\\ y}\\
\coolleftbrace{B}{y \\i \\ m}
\end{matrix}%
\begin{bmatrix}
a & \coolover{R}{b & c & d & \cdots & y & h}\\
e & a & g & h & x & x & x \\
y & y & a & y & y & y & y \\
y & y & y & y & y & y & y \\
y & y & y & y & y & y & y \\
i & j & k & l & x & x & x \\
m &  \coolunder{S}{n & o}  & \coolunder{W}{p & x & x} & x
\end{bmatrix}%
\begin{matrix}% matrix for right braces
\coolrightbrace{x \\ x \\ y\\ y}{T}\\
\coolrightbrace{y \\ y \\ x }{U}
\end{matrix}\]

在此处输入图片描述

下标之后,过度支撑不再R存在h

在此处输入图片描述

这是代码

\[ \vphantom{% phantom stuff for correct box dimensions
    \begin{matrix}
    \overbrace{XYZ}^{\mbox{$R$}}\\ \\ \\ \\ \\ \\
    \underbrace{pqr}_{\mbox{$S$}}
    \end{matrix}}%
\begin{matrix}% matrix for left braces
\vphantom{a}\\
\coolleftbrace{A}{e \\ y\\ y}\\
\coolleftbrace{B}{y \\i \\ m}
\end{matrix}%
\begin{bmatrix}
a_1 & \coolover{R}{b_{1,2} & b_{2,s_1+1} & 0 & \cdots & 0 & h}\\
b_{1,2} & a_2 & b_{2,s_2+1} & h & x & x & x \\
b_{2,s_2+4} & b_{2,s_2+1} & a_3 & y & y & y & y \\
y & y & y & a_{s_{r+1}} & y & y & y \\
y & y & y & y & y & y & y \\
i & j & k & l & x & x & x \\
m &  \coolunder{S}{n & o}  & \coolunder{W}{p & x & x} & x
\end{bmatrix}%
\begin{matrix}% matrix for right braces
\coolrightbrace{x \\ x \\ y\\ y}{T}\\
\coolrightbrace{y \\ y \\ x }{U}
\end{matrix}\]

答案1

以下是对矩阵内容进行一些手动操作以放置括号。eqparbox用于将大小相同的框放置在相同的框下\eqmathbox[<tag>]- 这有助于水平放置/间隔。垂直对齐是通过在array之前和之后放置 来完成的bmatrix

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,eqparbox,xparse,lipsum}

% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
  \IfValueTF{#1}
    {\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
    {\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
  \mathpalette\eqmathbox@{#3}
}
\makeatother

\begin{document}

\lipsum*[1]
\[
  \begin{array}{@{} r @{}}
    \mathstrut \\ % For \overbrace{..}^{R}
    \mathstrut \\
    {\scriptstyle A}\left\{\begin{array}{@{} c @{}}
      \mathstrut \\ \mathstrut \\ \mathstrut
    \end{array}\right.\kern-\nulldelimiterspace \\
    {\scriptstyle B}\left\{\begin{array}{@{} c @{}}
      \mathstrut \\ \mathstrut \\ \mathstrut
    \end{array}\right.\kern-\nulldelimiterspace \\
    \mathstrut % For \underbrace{..}_{S} and \underbrace{..}_{W}
  \end{array}
  \mkern-5mu
  \begin{bmatrix}% matrix for left braces
    a_1 & \multicolumn{6}{@{} c }{
      \smash{
        \overbrace{
          \begin{array}{ *{5}{c} c @{} }
            \eqmathbox[tb1]{b_{1,2}} &
              \eqmathbox[tb2]{b_{2,s_1+1}} &
              \eqmathbox[tb3]{0} &
              \eqmathbox[tb4]{\cdots} &
              \eqmathbox[tb5]{0} &
              \eqmathbox[tb6]{h}
          \end{array}
        }^{R}
      }
    } \\
    b_{1,2} & a_2 & \eqmathbox[tb2]{b_{2,s_2+1}} & h & \eqmathbox[tb4]{x} & \eqmathbox[tb5]{x} & \eqmathbox[tb6]{x} \\
    b_{2,s_2+4} & \eqmathbox[tb1]{b_{2,s_2+1}} & a_3 & y & y & y & y \\
    y & y & y & \eqmathbox[tb3]{a_{s_{r+1}}} & y & y & y \\
    y & y & y & y & y & y & y \\
    i & j & k & l & x & x & x \\
    m & \multicolumn{2}{@{} c @{}}{
      \smash{
        \underbrace{
          \begin{array}{c c}
            \eqmathbox[tb1]{n} & 
              \eqmathbox[tb2]{o}
          \end{array}
        }_{S}
      }
    } & \multicolumn{3}{@{} c @{}}{
      \smash{
        \underbrace{
          \begin{array}{c c c}
            \eqmathbox[tb3]{p} & 
              \eqmathbox[tb4]{x} & 
              \eqmathbox[tb5]{x}
          \end{array}
        }_{W}
      }
    } & x
  \end{bmatrix}
  \mkern-5mu
  \begin{array}{@{} l @{}}
    \left.\kern-\nulldelimiterspace\begin{array}{@{} c @{}}
      \mathstrut \\ \mathstrut \\ \mathstrut \\ \mathstrut
    \end{array}\right\}{\scriptstyle T} \\
    \left.\kern-\nulldelimiterspace\begin{array}{@{} c @{}}
      \mathstrut \\ \mathstrut \\ \mathstrut
    \end{array}\right\}{\scriptstyle U}
  \end{array}
\]
\lipsum*[2]

\end{document}

相关内容