答案1
第一种方法nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
$\begin{NiceArray}
[xdots/line-style={solid,<->},cell-space-limits=10pt]
{ccccccw{c}{5mm}}
& \hspace*{10mm} & \hspace*{10mm} & & \Hdotsfor[shorten=-\arraycolsep]{1}^r & \Hdotsfor[shorten=-\arraycolsep]{1}^{n-r}\\
& & & & A' & B' & \Vdotsfor[shorten=0pt]{1}^{q}\\
& & & & C' & D' & \Vdotsfor[shorten=0pt]{1}^{n-q}\\
& \Hdotsfor[shorten=-\arraycolsep]{1}^q & \Hdotsfor[shorten=-\arraycolsep]{1}^{n-q}\\
& A & B & & AA'+BC' & AB'+BD' & \Vdotsfor[shorten=0pt]{1}^{p}\\
& C & D & & CA'+DC' & CB'+DD' & \Vdotsfor[shorten=0pt]{1}^{n-p}\\
& & & & \Hdotsfor[shorten=-\arraycolsep]{1}^{r} & \Hdotsfor[shorten=-\arraycolsep]{1}^{n-r} \\
\CodeAfter
\SubMatrix({2-5}{3-6})[hvlines]
\SubMatrix({5-5}{6-6})[hvlines]
\SubMatrix({5-2}{6-3})[hvlines]
\end{NiceArray}$
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。