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