如何在块分区良好矩阵上插入垂直线

如何在块分区良好矩阵上插入垂直线

我有以下算法

\documentclass[12pt,english]{article}
\usepackage{nicematrix}
\NiceMatrixOptions{renew-dots}
\NiceMatrixOptions{renew-matrix}

\begin{document}
$$
\begin{bNiceMatrix}
\ve_{1,1}   & \cdots  &\ve_{1,k}&\ve_{1,k+1} &\cdots   & \ve_{1,n} \\
    &      \Ddots&     \vdots   & \vdots     & \Ddots &   \vdots  \\
    &       &      \ve_{k,k} &\ve_{k,k+1}      &\cdots&   \ve_{k,n}    \\
\hline
   &       &      & \ve_{k+1,k+1} &  \cdots & \ve_{k+1,n}           \\
\Block{2-3}<\huge>{0}
    &       &       && \Ddots  &   \vdots  \\
    &       &       &      & &  \ve_{n,n}  \\
\end{bNiceMatrix}
$$
\end{document}

生成: 在此处输入图片描述

我有两个问题,下面重点介绍:

在此处输入图片描述

我想要的第一件事就是拥有那条垂直线来实现块分区矩阵的外观。

我遇到的第二个问题是突出显示区域中的点重叠,可以解决这个问题吗?

老实说,即使使用 nicematrix 等强大的软件包,处理分块矩阵也是很繁琐的,我希望有一些在线软件可以轻松创建分块矩阵并生成代码。

答案1

用于\CodeAfter绘制虚线对角线和垂直线。

b

\documentclass[12pt,english]{article}
\usepackage{nicematrix}
\usepackage{tikz} % added <<<

\NiceMatrixOptions{renew-dots}
\NiceMatrixOptions{renew-matrix}

\newcommand{\ve}{\varepsilon}

\begin{document}

    $$
    \begin{bNiceMatrix}[margin]
        \ve_{1,1}   & \cdots    &\ve_{1,k}  &\ve_{1,k+1}    &\cdots     & \ve_{1,n}     \\
                    & \Ddots    &\vdots     & \vdots        &           & \vdots        \\
                    &           &\ve_{k,k}  &\ve_{k,k+1}    &\cdots     & \ve_{k,n}     \\  \hline
                    &           &           & \ve_{k+1,k+1} &  \cdots   & \ve_{k+1,n}   \\
    \Block{2-3}<\huge>{0}&      &           &               & \Ddots    & \vdots        \\
                    &           &           &               &           & \ve_{n,n}     \\
         \CodeAfter  % added <<<<<<<<<<<<
        \line{1-4}{3-6} 
        \tikz \draw  (1-|4) -- (7-|4);  
    \end{bNiceMatrix}
    $$
\end{document}

答案2

对于垂直规则,可以使用{pNiceArray}具有前导码的{array}

对于对角虚线,您可以使用 键禁用并行化parallelize-diags=false

\documentclass[12pt,english]{article}
\usepackage{nicematrix}

\NiceMatrixOptions{renew-dots,renew-matrix}

\newcommand{\ve}{\varepsilon}

\begin{document}

\[
\begin{bNiceArray}{ccc|ccc}[margin,parallelize-diags=false]
    \ve_{1,1}        & \cdots    & \ve_{1,k}  & \ve_{1,k+1}   & \cdots & \ve_{1,n}   \\
                     & \ddots    & \vdots     & \vdots        & \ddots & \vdots      \\
                     &           & \ve_{k,k}  & \ve_{k,k+1}   & \cdots & \ve_{k,n}   \\  \hline
                     &           &            & \ve_{k+1,k+1} & \cdots & \ve_{k+1,n} \\
\Block{2-3}<\huge>{0}&           &            &               & \ddots & \vdots      \\
                     &           &            &               &        & \ve_{n,n}   \\
\end{bNiceArray}
\]

\end{document}

上述代码的输出

相关内容