Dies ist eine Fortsetzung zuDasFrage.
MWE (angegeben von Henri Menke im verlinkten Beitrag):
\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}
Das ist fast das, was ich will, außer dass die Klammern, die durch \left[
und erzeugt werden \right
, unten zu lang sind. Ich habe das Gefühl, dass es eine Möglichkeit geben muss, dies ausschließlich in einem Blockarray zu tun, aber die Dokumentation für das Paket ist nicht umfangreich genug, um mich schnell zu einer solchen Lösung zu führen.
Antwort1
blkarray
ist so komisch....
\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}
Antwort2
Mit {NiceArray}
von 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}
Sie benötigen mehrere Kompilierungen (da nicematrix
im Hintergrund PGF/Tikz-Knoten verwendet werden).