我需要绘制一个简单的矩阵,其中的列对应一些集合。我尝试了以下方法:
\[D^{4}_{2}=
\left[\begin{array}{cc}
\diagdown & {\begin{array}{cccccc} \{1,2\} & \{1,3\} & \{2,3\} & \{1,4\} & \{2,4\} & \{3,4\} \end{array}} \\
{\begin{array}{c}
\{1,2\} \\
\{1,3\} \\
\{2,3\} \\
\{1,4\} \\
\{2,4\} \\
\{3,4\}
\end{array}} &
{\left(\begin{array}{cccccc}
0 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
\end{array}\right)}
\end{array}\right]
\]
结果是:
我怎样才能将内部矩阵元素分隔开来,以便它能够适合整个表的行和列?
答案1
这是一种可能的方法;\overmat
将其第一个参数写在第二个参数中包含的条目上方;使用10pt
for增加了内部矩阵中列之间的间隔arraycolsep
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{xcolor}
\newcommand\overmat[2]{%
\makebox[0pt][c]{$\smash{\color{white}\overbrace{\vphantom{%
\begin{matrix}{c}#2\end{matrix}}}^{\mkern12mu \text{\color{black}#1}}}$}#2}
\newcommand\diagdown{}% temporal definition
\begin{document}
\[D^{4}_{2}=
\left[\begin{array}{c@{}c}
\diagdown & \\
{\begin{array}{>{\scriptstyle}c}
\{1,2\} \\
\{1,3\} \\
\{2,3\} \\
\{1,4\} \\
\{2,4\} \\
\{3,4\}
\end{array}} &
\setlength\arraycolsep{10pt}
{\left(\begin{array}{@{\mkern5mu}cccccc@{\mkern5mu}}
\overmat{\{1,2\}}{0} & \overmat{\{1,3\}}{0}
& \overmat{\{2,3\}}{0} & \overmat{\{1,4\}}{0}
& \overmat{\{2,4\}}{0} & \overmat{\{3,4\}}{1} \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
\end{array}\right)}
\end{array}\right]
\]
\end{document}
由于我不知道 的定义\diagdown
,因此我提供了部分定义\newcommand\diagdown{}
。请在您的文档中使用您的实际定义。
答案2
这是第二个答案kbordermatrix
- 也许不是你现在想要的,但却是一个很好的工具。(kbordermatrix.sty
从http://ctan.math.utah.edu/ctan/tex-archive/macros/generic/misc/kbordermatrix.sty必要时。
\documentclass{article}
\usepackage{amsmath}
\usepackage{kbordermatrix}
\begin{document}
\begin{equation*}
\kbordermatrix{
& \{1,2\} & \{1,3\} & \{2,3\} & \{1,4\} & \{2,4\} & \{3,4\} \\
\{1,2\} & 0 & 0 & 0 & 0 & 0 & 1 \\
\{1,3\} & 0 & 0 & 0 & 0 & 1 & 0 \\
\{2,3\} & 0 & 0 & 0 & 1 & 0 & 0 \\
\{1,4\} & 0 & 0 & 1 & 0 & 0 & 0 \\
\{2,4\} & 0 & 1 & 0 & 0 & 0 & 0 \\
\{3,4\} & 1 & 0 & 0 & 0 & 0 & 0
}
\end{equation*}
\end{document}
答案3
这是使用scalerel
\documentclass{article}
\usepackage{amsmath}
\usepackage{scalerel}
\begin{document}
\setlength\arraycolsep{.5ex}
\def\x{\begin{array}{c} x\\x\\x\\x\\x\\x\end{array}}
\begin{equation}
\begin{bmatrix}
\begin{array}{c}
\\ \{1,2\} \\ \{1,3\} \\ \{2,3\} \\ \{1,4\} \\ \{2,4\} \\ \{3,4\}
\end{array}
&
\begin{array}{c}
\\ \scalerel*[1.2ex]{(}{\x}
\end{array}
&
\begin{array}{c}
\{1,2\} \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 1\\
\end{array}
&
\begin{array}{c}
\{1,3\} \\ 0 \\ 0 \\ 0 \\ 0 \\ 1 \\ 0\\
\end{array}
&
\begin{array}{c}
\{2,3\} \\ 0 \\ 0 \\ 0 \\ 1 \\ 0 \\ 0\\
\end{array}
&
\begin{array}{c}
\{1,4\} \\ 0 \\ 0 \\ 1 \\ 0 \\ 0 \\ 0\\
\end{array}
&
\begin{array}{c}
\{2,4\} \\ 0 \\ 1 \\ 0 \\ 0 \\ 0 \\ 0\\
\end{array}
&
\begin{array}{c}
\{3,4\} \\ 1 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0\\
\end{array}
&
\begin{array}{c}
\\ \scalerel*[1.2ex]{)}{\x}
\end{array}
\end{bmatrix}
\end{equation}
\end{document}