Klammern um blkarray sind zu groß

Klammern um blkarray sind zu groß

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 Ergebnis ist:Bildbeschreibung hier eingeben

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

blkarrayist so komisch....

Bildbeschreibung hier eingeben

\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 nicematrixim Hintergrund PGF/Tikz-Knoten verwendet werden).

Ausgabe des obigen Codes

verwandte Informationen