我如何填充块阵列的单元格?

我如何填充块阵列的单元格?

经过一番努力,我终于能够渲染我想要的矩阵了。它现在具有正确的“形状”,但看起来不太好看;尤其是括号和矩阵内容之间的间距太小,无论是水平还是垂直。我该如何解决这个问题?有没有办法定义单元格填充?

\documentclass{article}  
\usepackage{blkarray}
\usepackage{multirow}
\begin{document}  
\begin{equation}
C =
\begin{blockarray}{cccccccc}
  &   & & & j & & &   \\
\begin{block}{c[ccc|c|ccc]} % [I O]
  & 1 &                                    &     & 0      & 0      & \ldots & 0           \\
  &   & \ddots                             &     & \vdots & \vdots &        & \vdots      \\
  &   &                                    & 1   & 0      & 0      & \ldots & 0           \\ 
\BAhhline{&-------} 
i & \BAmulticolumn{3}{c|}{A_1}             & Q_{11} & \multirow{4}{*}{$B_2+b_2$} &
                                                      \multirow{4}{*}{$\ldots$}  &
                                                      \multirow{4}{*}{$B_n+b_n$}          \\
\BAhhline{&----} 
  & \BAmulticolumn{3}{c|}{A_1+a_1}         & 0      &                                     \\
  &   & \vdots                             &        & \vdots &                            \\
  & \BAmulticolumn{3}{c|}{A_n+A_n} & 0     &                                              \\  
\end{block} 
\end{blockarray}
\end{equation}
\end{document}

答案1

该参数\BAextraheightafterhline可能可以实现您想要的垂直间距。修改分隔符周围的水平间距有点像暗黑艺术。

在此处输入图片描述

\documentclass{article}  
\usepackage{blkarray}
\usepackage{multirow}
\begin{document}
  \setlength\BAextraheightafterhline{5pt}
\setlength\tabcolsep{15pt}
\begin{equation}
C =
\begin{blockarray}{cccccccc}
  &   & & & j & & &   \\
\begin{block}{c\Left{}{[\;}ccc|c|ccc<{\;}]} % [I O]
  & 1 &                                    &     & 0      & 0      & \ldots & 0           \\
  &   & \ddots                             &     & \vdots & \vdots &        & \vdots      \\
  &   &                                    & 1   & 0      & 0      & \ldots & 0           \\ 
\BAhhline{&-------} 
i & \BAmulticolumn{3}{c|}{A_1}             & Q_{11} & \multirow{4}{*}{$B_2+b_2$} &
                                                      \multirow{4}{*}{$\ldots$}  &
                                                      \multirow{4}{*}{$B_n+b_n$}          \\
\BAhhline{&----} 
  & \BAmulticolumn{3}{c|}{A_1+a_1}         & 0      &                                     \\
  &   & \vdots                             &        & \vdots &                            \\
  & \BAmulticolumn{3}{c|}{A_n+A_n} & 0     &                                              \\  
\end{block} 
\end{blockarray}
\end{equation}
\end{document}

答案2

以下是您可以使用{bNiceArray}的操作nicematrix(您需要多次编译)。

\documentclass{article}  
\usepackage{nicematrix}

\begin{document}  

\[C = 
\begin{bNiceArray}[first-row,first-col,margin]{ccc|c|lcr}
     &   &        &         & j     \\
     & 1 &        &         & 0      & 0      & \Cdots & 0 \\
     &   & \Ddots &         & \Vdots& \Vdots &        & \Vdots \\
     &   &        & 1       & 0     & 0      & \Cdots & 0 \\
  \Hline
  i  & \Block{1-3}{A_1} & & & Q_{11} & \Block[name=one]{4-1}{B_2+b_2} & & \Block[name=two]{4-1}{B_n+b_n} \\
  \cline{1-4}
     & \Block[name=three]{1-3}{A_1+a_1} & & & 0 \\
     &   & &         & \Vdots \\
     & \Block[name=four]{1-3}{A_n+A_n} & & & 0 \\
\CodeAfter 
  \line{one}{two} 
  \line{three}{four}
\end{bNiceArray}
\]

\end{document}

上述代码的输出

相关内容