带有标签和虚线的矩阵

带有标签和虚线的矩阵

我正在尝试将以下矩阵 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已从 缩短4pt2ptmathtools提供\mathclap(一个居中的零宽度框)并加载amsmath,它提供了\overset(一个数学重音类型宏)。我已经\smash编辑了第一行中的元素,以使分隔符不超过或的array高度。BC

leftidx是一个超小型软件包,添加了左索引功能。请参阅数学中字母前的上标

答案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 节点)。

上述代码的输出

相关内容