我正在尝试制作一个带有外部元素和虚线分隔线的矩阵,以便于理解。我使用该blkarray
包已经取得了很大进展。但是,我未能在行 f 和行 g 之间添加水平分隔线,只能在矩阵内部添加。另外,我希望分隔线为虚线。
编辑:
抱歉,我应该说得更清楚些。我希望两条分隔线都是虚线。如果这对任何提供的答案都有效,我会尝试否。
\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}
\begin{document}
\begin{equation}
H =
\begin{blockarray}{ccccc}
& a & b & c & d\\
\begin{block}{c(cc|cc)}
e & 1 & 2 & 3 & 4\\
f & 5 & 6 & 7 & 8\\
g & 9 & 0 & 1 & 2\\
h & 3 & 4 & 5 & 7\\
\end{block}
\end{blockarray}
\end{equation}
\end{document}
答案1
与。{pNiceArray}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{equation}
H =
\begin{pNiceArray}{cc|cc}[first-row,first-col]
& a & b & c & d\\
e & 1 & 2 & 3 & 4\\
f & 5 & 6 & 7 & 8\\
\hdottedline
g & 9 & 0 & 1 & 2\\
h & 3 & 4 & 5 & 7\\
\end{pNiceArray}
\end{equation}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
如果您想要虚线,您可以使用 Tikz 绘制它们,您可以定义自定义类型的线,custom-line
这样就可以使用您想要的任何 Tikz 线条样式。您至少需要nicematrix
版本 6.10a(2022-06-26)。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\NiceMatrixOptions
{
custom-line =
{
letter = I , % <- for the vertical rules
command = hdashedline , % <- for the horizontal rules
tikz = dashed ,
total-width = \pgflinewidth % <- optional
}
}
\begin{equation}
H =
\begin{pNiceArray}{ccIcc}[first-row,first-col]
& a & b & c & d\\
e & 1 & 2 & 3 & 4\\
f & 5 & 6 & 7 & 8\\
\hdashedline
g & 9 & 0 & 1 & 2\\
h & 3 & 4 & 5 & 7\\
\end{pNiceArray}
\end{equation}
\end{document}
答案2
\BAhhline
与柱一起使用~
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}
\begin{document}
\begin{equation}
H =
\begin{blockarray}{ccccc}
& a & b & c & d\\
\begin{block}{c(cc|cc)}
e & 1 & 2 & 3 & 4\\
f & 5 & 6 & 7 & 8\\
\BAhhline{~..|..}
g & 9 & 0 & 1 & 2\\
h & 3 & 4 & 5 & 7\\
\end{block}
\end{blockarray}
\end{equation}
\end{document}