使用块数组缩小标记矩阵的大小

使用块数组缩小标记矩阵的大小

我创建了一个想要标记的矩阵。但是,我希望将标签放在 smallmatrix 环境中,而不是像我之前那样使用数组将标签放入矩阵中。下面我展示了标记矩阵和相对于 smallmatrix 环境的大小差异。

\documentclass[12pt]{article}%
\usepackage{amsmath}
\usepackage{blkarray}

\begin{document}

\[
\begin{blockarray}{ccccccc}
      & A     & B     & C     & D     & E     & F \\
\begin{block}{c[cccccc]}
A     & 0     & 1     & 1     & 1     & 1     & 1 \\
B     & 1     & 0     & 1     & 1     & 1     & 1 \\
C     & 1     & 1     & 0     & 1     & 1     & 1 \\
D     & 1     & 1     & 1     & 0     & 1     & 1 \\
E     & 1     & 1     & 1     & 1     & 0     & 1 \\
F     & 1     & 1     & 1     & 1     & 1     & 0 \\
\end{block}%
\end{blockarray}%
\]


\[
\left[
\begin{smallmatrix}
0     & 1     & 1     & 1     & 1     & 1 \\
1     & 0     & 1     & 1     & 1     & 1 \\
1     & 1     & 0     & 1     & 1     & 1 \\
1     & 1     & 1     & 0     & 1     & 1 \\
1     & 1     & 1     & 1     & 0     & 1 \\
1     & 1     & 1     & 1     & 1     & 0 \\
\end{smallmatrix}%
\right]
\]

\end{document}

在此处输入图片描述

答案1

这依赖于矩阵中所有列的宽度相等这一要求。此外, 的值\?(此处的字距为1.1pt)和标题的全局字距(此处9mu)可能需要根据情况进行调整。

这个答案基于我的结果: 矩阵上的括号

大写字母的自然宽度与数字的自然宽度不同,因此可以采用两种方法:

  1. 拉伸数字之间的列间隙

  2. 压缩字母之间的列间隙

方法 1 如下:

\documentclass[12pt]{article}%
\usepackage{amsmath}
\usepackage{blkarray}
\usepackage{amsmath}
\usepackage{stackengine}
\begin{document}
\[
\begin{blockarray}{ccccccc}
      & A     & B     & C     & D     & E     & F \\
\begin{block}{c[cccccc]}
A     & 0     & 1     & 1     & 1     & 1     & 1 \\
B     & 1     & 0     & 1     & 1     & 1     & 1 \\
C     & 1     & 1     & 0     & 1     & 1     & 1 \\
D     & 1     & 1     & 1     & 0     & 1     & 1 \\
E     & 1     & 1     & 1     & 1     & 0     & 1 \\
F     & 1     & 1     & 1     & 1     & 1     & 0 \\
\end{block}%
\end{blockarray}%
\]
\def\tmp{%
  \def\?{\kern1.1pt}
  \begin{smallmatrix}
\?0     \?&\? 1     \?&\? 1     \?&\? 1     \?&\? 1     \?&\? 1 \?\\
1     & 0     & 1     & 1     & 1     & 1 \\
1     & 1     & 0     & 1     & 1     & 1 \\
1     & 1     & 1     & 0     & 1     & 1 \\
1     & 1     & 1     & 1     & 0     & 1 \\
1     & 1     & 1     & 1     & 1     & 0 \\
 \end{smallmatrix}
}%
\[
\stackMath\def\stackalignment{r}%
  \stackon%
    {\begin{smallmatrix}A\\B\\C\\D\\E\\F\end{smallmatrix}\!\left[\tmp\right]}%
    {\stackon[1pt]{\phantom{\smash{\tmp\mkern -36mu}}}{%
    \begin{smallmatrix}A&B&C&D&E&F\end{smallmatrix}}\mkern 9mu}%
\]
\end{document}

在此处输入图片描述

方法 2 如下:

\documentclass[12pt]{article}%
\usepackage{amsmath}
\usepackage{blkarray}
\usepackage{amsmath}
\usepackage{stackengine}
\begin{document}
\[
\begin{blockarray}{ccccccc}
      & A     & B     & C     & D     & E     & F \\
\begin{block}{c[cccccc]}
A     & 0     & 1     & 1     & 1     & 1     & 1 \\
B     & 1     & 0     & 1     & 1     & 1     & 1 \\
C     & 1     & 1     & 0     & 1     & 1     & 1 \\
D     & 1     & 1     & 1     & 0     & 1     & 1 \\
E     & 1     & 1     & 1     & 1     & 0     & 1 \\
F     & 1     & 1     & 1     & 1     & 1     & 0 \\
\end{block}%
\end{blockarray}%
\]
\def\tmp{%
  \begin{smallmatrix}
0     & 1     & 1     & 1     & 1     & 1 \\
1     & 0     & 1     & 1     & 1     & 1 \\
1     & 1     & 0     & 1     & 1     & 1 \\
1     & 1     & 1     & 0     & 1     & 1 \\
1     & 1     & 1     & 1     & 0     & 1 \\
1     & 1     & 1     & 1     & 1     & 0 \\
 \end{smallmatrix}
}%
\[
\stackMath\def\stackalignment{r}%
{\def\?{\kern-1.2pt}
  \stackon%
    {\begin{smallmatrix}A\\B\\C\\D\\E\\F\end{smallmatrix}\!\left[\tmp\right]}%
    {\stackon[1pt]{\phantom{\smash{\tmp\mkern -36mu}}}{%
    \begin{smallmatrix}A\?&\?B\?&\?C\?&\?D\?&\?E\?&\?F\end{smallmatrix}}\mkern 9mu}}%
\]
\end{document}

在此处输入图片描述

相关内容