第一行和第一列跨越子矩阵的矩阵

第一行和第一列跨越子矩阵的矩阵
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
   
\begin{document}

        \[
        P=\left[
        \begin{array}{cccc|cccccccccccc}
        1      & 1 & \dots    &1            & 1 & 1&  \dots       & 1 \\
        1      &   &                      &                       &   &             &   \\
        \vdots &   &        \textbf{\Huge{C}}               & &&&  \textbf{\Huge{0}}  &    \\
        1      &   &                      &                       &   &             &   \\
        \cline{2-8}
        1      &   &                      &                       &   &             &   \\
        \cdots &   &     \textbf{\Huge{0}}     &                       &   &&\textbf{\Huge{D}} \\
        1      &   &                      &                       &   &             &
        \end{array}
        \right]
        \]

\end{document}

我写了以下代码。我面临的问题是我希望该线出现在第一行之后。请查看我想要的矩阵的附图。我如何从第一行中删除该线?请帮忙

在此处输入图片描述

如果只需对我的代码进行一些操作就可以做到这一点,我会很高兴也很感激。我想在不使用任何包的情况下做到这一点

答案1

通过调整OP的代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
   
\begin{document}
\begin{center}
    \[
    P= 
    \left[
    \begin{matrix}
    1      & 1 & \dots                & 1 & 1                     & 1 & \dots             & 1  \\
    1      &   &                      &   & \multicolumn{1}{c|}{}  &                       &    \\
    \vdots &   & \textbf{\Huge{C}}    &   & \multicolumn{1}{c|}{}  &   & \textbf{\Huge{0}} &    \\
    1      &   &                      &   & \multicolumn{1}{c|}{}  &   &                        \\
    \cline{2-8}
    1      &   &                      &   & \multicolumn{1}{c|}{}  &   &                        \\
    \vdots &   & \textbf{\Huge{0}}    &   & \multicolumn{1}{c|}{}  &   &\textbf{\Huge{D}}       \\
    1      &   &                      &   & \multicolumn{1}{c|}{}  &   &
    \end{matrix} \;
    \right]
    \]
\end{center}
\end{document}

上述代码的结果

答案2

提案内容如下nicematrix

\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
   
\begin{document}

$\begin{pNiceArray}{ccccr}[columns-width=4mm,right-margin,nullify-dots]
1       & \Cdots & &                        & 1 \\
\Vdots  & \Block{2-2}<\Large>{C} & & \Block{2-2}<\Large>{0} &   \\
\\
  & \Block{2-2}<\Large>{0} & & \Block{2-2}<\Large>{D} &   \\
1 
\CodeAfter
\tikz \draw (4-|2) -- (4-|6) (2-|4) -- (6-|4) ;   
\end{pNiceArray}$

\end{document}

上述代码的结果

答案3

带有array一些嵌套:

\documentclass{article}
\usepackage{amsmath,array}

\newcommand{\bigentry}[2][\huge]{\begin{tabular}{@{}c@{}}#1$#2$\end{tabular}}

\begin{document}

\[
\newcommand{\ones}{\begin{matrix} 1 \\[-1ex] \vdots \\ 1 \end{matrix}}
\left[\begin{array}{ c @{} c | c @{} }
\noalign{\vspace{0.5ex}}
\begin{matrix} 1 \end{matrix} &
\multicolumn{1}{c@{}}{\begin{matrix} 1 & \dots & 1 \end{matrix}} &
\begin{matrix} 1 & \dots & 1 \end{matrix} \\
\ones & \bigentry{\mathbf{C}} & \bigentry{\mathbf{0}} \\
\cline{2-3}
\ones & \bigentry{\mathbf{0}} & \bigentry{\mathbf{D}} \\
\noalign{\vspace{0.5ex}}
\end{array}\right]
\]

\end{document}

在此处输入图片描述

\vdots由于不太适合目的,我们需要一些技巧,所以必须在顶部和底部添加一些垂直空间。

避免\textbf在公式中使用数学对象,应该是\mathbf

嵌套的tabularfor\bigentry确保垂直居中并能适应大小改变命令,否则这在数学模式下是非法的。

该命令\ones只是为了减少代码混乱的本地简写。

答案4

像这样吗?我使用nicematrix包来重绘矩阵,关键点是first-row选项。

\documentclass{article}
\usepackage{nicematrix}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\begin{document}
\[
p=\left[
\begin{NiceArray}{*4{C}|*3{C}}[first-row, extra-margin=2mm]
  1 & 1 & \Cdots & 1 & 1 & \Cdots & 1 \\
  1 & \Block{3-3}<\Huge>{\mathbf{C}} & & & \Block{3-3}<\Huge>{\mathbf{0}} & & \\
  \Vdots & & & & & & \\
  1 & & & & & & \\
\cline{2-7}
  1 & \Block{3-3}<\Huge>{\mathbf{0}} & & & \Block{3-3}<\Huge>{\mathbf{D}} & & \\
  \Vdots & & & & & & \\
  1 & & & & & & \\
\end{NiceArray}\right]
\]
\end{document}

在此处输入图片描述

相关内容