\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
。
嵌套的tabular
for\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}