Скобки вокруг blkarray слишком большие

Скобки вокруг blkarray слишком большие

Это продолжениеэтотвопрос.

MWE (данные Анри Менке в связанном посте):

\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}

Это производит следующее:введите описание изображения здесь

Это почти то, что я хочу, за исключением скобок, которые производятся \left[и, \rightслишком длинные внизу. Я чувствую, что должен быть способ сделать это исключительно в blockarray, но документация для пакета недостаточно обширна, чтобы быстро привести меня к такому решению.

решение1

blkarrayэто так странно...

введите описание изображения здесь

\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}

решение2

С {NiceArray}из 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}

Вам нужно несколько компиляций (т.к. nicematrixвнутри используются узлы PGF/Tikz).

Вывод кода выше

Связанный контент