Este es un seguimiento deestepregunta.
MWE (proporcionado por Henri Menke en la publicación vinculada):
\documentclass{article}
\usepackage{blkarray}
\begin{document}
\[
\left[
\begin{blockarray}{ccccccc}
\begin{block}{[ccc]cccc}
I_p \\
& \ddots \\
& & I_p \\
\end{block}
\begin{block}{c[ccc]ccc}
& I_p \\
& & \ddots \\
& & & I_p \\
\end{block}
& & & \vdots & \ddots \\
& & & \ddots & \vdots \\
\begin{block}{cccc[ccc]}
& & & & I_p \\
& & & & & \ddots \\
& & & & & & I_p \\
\end{block}
\end{blockarray}
\right]
\]
\end{document}
Esto es casi lo que quiero, excepto que los soportes producidos por \left[
y \right
son demasiado largos en la parte inferior. Siento que debe haber una manera de hacer esto exclusivamente en un blockarray, pero la documentación del paquete no es lo suficientemente extensa como para llevarme rápidamente a esa solución.
Respuesta1
blkarray
es tan raro....
\documentclass{article}
\usepackage{blkarray}
\addtolength\textwidth{25pt}
\begin{document}
\[
\left[
\begin{blockarray}{ccccccc}
\begin{block}{[ccc]cccc}
I_p \\
& \ddots \\
& & I_p \\
\end{block}
\begin{block}{c[ccc]ccc}
& I_p \\
& & \ddots \\
& & & I_p \\
\end{block}
& & & \vdots & \ddots \\
& & & \ddots & \vdots \\
\begin{block}{cccc[ccc]}
& & & & I_p \\
& & & & & \ddots \\
& & & & & & I_p \\
\end{block}
\end{blockarray}
\right]
+
\left[
\begin{blockarray}{ccccccc}
\begin{block}{[ccc]cccc}
I_p \\
& \ddots \\
& & I_p \\
\end{block}
\begin{block}{c[ccc]ccc}
& I_p \\
& & \ddots \\
& & & I_p \\
\end{block}
& & & \vdots & \ddots \\
& & & \ddots & \vdots \\
\begin{block}{cccc[ccc]}
& & & & I_p \\
& & & & & \ddots \\
& & & & & & I_p \\
\end{block}
\BAnoalign{\vspace{-20pt}}
\end{blockarray}
\right]
\]
\end{document}
Respuesta2
Con {NiceArray}
de nicematrix
.
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
Without modification of \verb|\delimiterfactor|.
%
\[ \left[\begin{NiceArray}{ccccccc}[margin]
I_p \\
& \ddots \\
& & I_p \\
& I_p \\
& & \ddots \\
& & & I_p \\
& & & \vdots & \ddots \\
& & & \ddots & \vdots \\
& & & & I_p \\
& & & & & \ddots \\
& & & & & & I_p \\
\CodeAfter
\SubMatrix[{1-1}{3-3}]
\SubMatrix[{4-2}{6-4}]
\SubMatrix[{9-5}{11-7}]
\end{NiceArray}\right]\]
%
With \verb|\delimiterfactor=1050| and \verb|\delimiterfactor=901| back in the \verb|\CodeAfter|.
%
\[\delimiterfactor=1050
\left[\begin{NiceArray}{ccccccc}[margin]
I_p \\
& \ddots \\
& & I_p \\
& I_p \\
& & \ddots \\
& & & I_p \\
& & & \vdots & \ddots \\
& & & \ddots & \vdots \\
& & & & I_p \\
& & & & & \ddots \\
& & & & & & I_p \\
\CodeAfter
\delimiterfactor=901 % default value
\SubMatrix[{1-1}{3-3}]
\SubMatrix[{4-2}{6-4}]
\SubMatrix[{9-5}{11-7}]
\end{NiceArray}\right]\]
\end{document}
Necesita varias compilaciones (porque nicematrix
utiliza nodos PGF/Tikz bajo el capó).