我正在尝试将以下矩阵 TeX 化,来自 Guillemin 和 Pollack (1.4 #13)
我能做的最好的就是用
\[ \left( \begin{array}{c:c} B & C \\ \hdashline
D & E \end{array} \right) \]
如果你想测试一下
\documentclass[11pt]{article}
\usepackage{arydshln}
\begin{document}
\[ \left( \begin{array}{c:c} B & C \\ \hdashline
D & E \end{array} \right) \]
\end{document}
输出如下所示:
答案1
也许以下内容更合适:
\documentclass{article}
\usepackage{arydshln,leftidx,mathtools}
\begin{document}
\[
\setlength{\dashlinegap}{2pt}
\leftidx{_{m-r}^{\phantom{m-r}\llap{$\scriptstyle r$}}}{\left( \begin{array}{c:c}
\smash{\overset{r}{B}} & \mathclap{\smash{\overset{n-r}{C}}} \\
\hdashline
D & E
\end{array} \right)}{}
\]
\end{document}
破折号之间的间隙\hdashline
已从 缩短4pt
至2pt
。mathtools
提供\mathclap
(一个居中的零宽度框)并加载amsmath
,它提供了\overset
(一个数学重音类型宏)。我已经\smash
编辑了第一行中的元素,以使分隔符不超过或的array
高度。B
C
答案2
该软件包nicematrix
提供了向矩阵添加外部行和列的工具。它有内置命令来绘制虚线(带有真正的圆点)。
对于其他样式的规则,可以为任何 Tikz 样式的线定义字母(在数组的前言中)和命令(对于水平规则)。
您至少需要nicematrix
(2022-02-16) 版本 6.6。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{mathtools}
\usepackage{tikz}
\begin{document}
\NiceMatrixOptions{code-for-first-row = \scriptstyle,code-for-first-col = \scriptstyle }
$A = \begin{pNiceArray}{c:c}[first-row, first-col, columns-width=auto]
& r & n-r \\
r & B & C \\
\hdottedline
m-r & D & E
\end{pNiceArray}$
\bigskip
\NiceMatrixOptions
{
custom-line =
{
letter = I ,
command = hdashedline ,
tikz = dashed ,
width = \pgflinewidth
}
}
$A = \begin{pNiceArray}{cIc}[first-row, first-col, columns-width=auto]
& r & n-r \\
r & B & C \\
\hdashedline
m-r & D & E
\end{pNiceArray}$
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。