块阵列中多个块的连续边界

块阵列中多个块的连续边界

我有这个相当复杂的矩阵,我正尝试用这个blkarray包来制作它。

\begin{figure}
\aboverulesep=0pt \belowrulesep=0pt
\center
    \begin{blockarray}{cccccccccccc}
      & $e_1$ & $e_2$ & $\dots$ & $e_j$ & $\ldots$ & $e_n$ & $e'_1$ & $e'_2$ & $\ldots$ & $e'_j$ & f \\
      \cmidrule{2-11}
    \begin{block}{c[cccccc|cccc|c]}
          & & & & & & & & & & & $0$ \\
          & & & $B$ & & & & & & $C$ & & $0$ \\
          & & & & & & & & & & & $\vdots$ \\
          & & & & & & & & & & & $0$ \\
      \cmidrule(l){2-11}
    \end{block}
    \begin{block}{c[ccccccccccc]}
         $r_1$ & $1$ & & & & & & $1$ & & & & $1$ \\
         $r_2$ & & $1$ & & & & & & $1$ & & & $1$ \\
         $\vdots$ & & & $\ddots$ & & & & & & $\ddots$ & & $\vdots$ \\
         $r_j$ & & & & $1$ & & & & & & $1$ & $1$ \\
    \end{block}
    \end{blockarray}
\end{figure}

我想要的是矩阵用括号括起来,其中列和某些行的标签在括号外。我粘贴的代码不适用于这种情况,因为块声明中的[s 和]s 仅适用于该块,因此括号在中间断开。如果我将它们替换为|,它至少看起来是连续的,但它看起来不太像边框。

如何获得连续边框,且标签位于边框外部?上面的代码可以呈现此效果,但我只想要一对括号。

上述代码渲染的矩阵

答案1

我建议使用bigdelim附带的multirow

\documentclass{article}

\usepackage{blkarray, bigdelim, booktabs}
\newcommand{\mc}[1]{\multicolumn{1}{c}{#1}}

\begin{document}

 \begin{figure}[!ht]
\aboverulesep=0pt \belowrulesep=0pt
\centering
   $ \begin{array}{c@{}c@{}*{6}{c}|*{4}{c}|c@{}c}
      & & e_1 & e_2 & \dots & e_j & \ldots & e_n & e'_1 & e'_2 & \ldots & \mc{e'_j }& \mathrm{f} \\
      \cmidrule{3-12}
         & \ldelim [{9}{*}& & & & & & & & & & & 0 & \rdelim ]{9}{*}\\
          & & & & B & & & & & & C & & 0 \\
           & & & & & & & & & & & & \vdots \\
          & & & & & & & & & & & & 0 \\
      \cmidrule{3-12}
         r_1 & & 1 & & & & &\mc{} & 1 & & &\mc{} & 1 \\
         r_2 & & 1 & & & & &\mc{} & 1 & &\mc{} & \mc{} & 1\\
         \vdots & & & & \ddots & & &\mc{} & & & \ddots &\mc{} & \vdots \\
         r_j & & & & & 1 & &\mc{} & & & & \mc{1}& 1
    \end{array} $
\end{figure}

\end{document} 

在此处输入图片描述

答案2

您可以使用最新版本nicematrix(2021-02-22 的 v. 5.11) 来执行此操作。

\documentclass{article}

\usepackage{nicematrix,tikz}

\begin{document}

\setcounter{MaxMatrixCols}{12}

$\begin{bNiceMatrix}[first-row,first-col,left-margin=7pt,xdots/shorten=4pt]
\rule[-7pt]{0pt}{7pt}
       & e_1 & e_1 & \Ldots & e_j & \Ldots & e_n & e_1' & e_2' & \Ldots & e_j' \\
       & \Block{4-6}{B}
             &     &        &     &        &     & \Block{4-4}{C}
                                                        &     &        &      & 0 \\
       &     &     &        &     &        &     &      &     &        &      & 0 \\
       &     &     &        &     &        &     &      &     &        &      & \Vdots \\
       &     &     &        &     &        &     &      &     &        &      & 0 \\\noalign{\vskip1mm}
r_1    & 1   &     &        &     &        &     & 1    &     &        &      & 1 \\
r_2    &     & 1   &        &     &        &     &      & 1   &        &      & 1 \\
\Vdots &     &     & \Ddots &     &        &     &      &     & \Ddots &      & \Vdots \\
r_j    &     &     &        & 1   &        &     &      &     &        & 1    & 1
\CodeAfter
\tikz \draw (5-|1) -| (1-|11) (1-|7) -- (5-|7) ;
\end{bNiceMatrix}$

\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

上述代码的输出

答案3

只是另一种味道。只有blkarray。我没有改变你的代码,所以BC没有正确居中。

A

\documentclass[12pt,a4paper]{article}

\usepackage{blkarray}

\begin{document}
    
\setlength{\tabcolsep}{2.8pt}

\begin{figure}

    \centering

    \begin{tabular}{@{\hspace{3ex}}ccccccc   @{\hspace{2.5ex}}cccc @{\hspace{3ex}}c}
        & $e_1$ & $e_2$ & $\dots$ & $e_j$ & $\ldots$ & $e_n$ & $e'_1$ & $e'_2$ & $\ldots$ & $e'_j$ & f \\
    \end{tabular}
    
    \begin{blockarray}{c @{\hspace{1ex}}[ ccccccc  cccc@{} ]}
        \begin{block*}{ccccccc|cccc|c}
            & & & & & & & & & & & $0$ \\
            & & & $B$ & & & & & & $C$ & & $0$ \\
            & & & & & & & & & & & $\vdots$ \\
            & & & & & & & & & & & $0$ \\
            \cline{2-11}
        \end{block*}
        \begin{block*}{cccccccccccc}
            $r_1$ & $1$ & & & & & & $1$ & & & & $1$ \\
            $r_2$ & & $1$ & & & & & & $1$ & & & $1$ \\
            $\vdots$ & & & $\ddots$ & & & & & & $\ddots$ & & $\vdots$ \\
            $r_j$ & & & & $1$ & & & & & & $1$ & $1$ \\
        \end{block*}
    \end{blockarray}
\end{figure}
    
\end{document

相关内容