我的任务很简单 - 绘制矩阵块,其中一个矩阵包含对角线和垂直线。我可以绘制对角虚线,但到目前为止,我还没有成功绘制实线。我的矩阵示例如下:
\begin{pmatrix}
\hat{B} & & & & \\
& ddots & & & \\
& & ddots & & \\
& & & ddots \\\hline
\\
\\
& & \text{{\huge{0}}} & & \\
\\
\end{pmatrix}
答案1
一种可能性是\tikzmark
在线的开始和结束处放置标记,然后绘制它们:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand\tikzmark[1]{%
\tikz[overlay,remember picture,baseline] \node [anchor=base] (#1) {};}
\newcommand\MyLine[3][]{%
\begin{tikzpicture}[overlay,remember picture]
\draw[#1] (#2.north west) -- (#3.south east);
\end{tikzpicture}}
\begin{document}
\[
\begin{pmatrix}
\phantom{0}\tikzmark{a} & & & & \\
& & & & \\
& & & & \\
& & & & \tikzmark{b}\phantom{0}\\\hline
\\
\\
\multicolumn{5}{c}{\text{\huge 0}} \\
\\
\end{pmatrix}\qquad
\begin{pmatrix}
\phantom{0}\tikzmark{c} & \phantom{0}\tikzmark{e} & & & \\
& & & & \\
& & & & \tikzmark{f}\phantom{0} \\
& & & & \tikzmark{d}\phantom{0}\\\hline
\\
\\
\multicolumn{5}{c}{\text{\huge 0}} \\
\\
\end{pmatrix}
\]
\MyLine[ultra thick]{a}{b}
\MyLine[blue,thick]{c}{d}
\MyLine[blue,thick]{e}{f}
\end{document}
答案2
有了,{pNiceMatrix}
一切nicematrix
就变得简单了。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
$\begin{pNiceMatrix}[xdots={line-style=solid,shorten=6pt},nullify-dots,columns-width=3mm]
\Ddots & \Ddots & \Ddots & \Ddots & \\
& & & & \\
& & & & \\
& & & & \\
\hline
\Block{4-5}<\Huge>{0}
& & & & \\
& & & & \\
& & & & \\
& & & & \\
\end{pNiceMatrix}$
\end{document}
您需要多次编译(因为nicematrix
引擎盖下有 PGF/Tikz 节点)。