带标签列的阵列

带标签列的阵列

有没有一种智能的方式来标记(或命名)矩阵中的列?我想要类似的东西

\[M=\left[\begin{array}{c|cc}
1 & 2 & 3\\
4 & 5 & 6
\end{array}\right],N=\left[\begin{array}{c|cc}
7 & 8 & 9\\
10 & 11 & 12
\end{array}\right]\]
\[A \ B \ C \ D \ E \ F\]

其中 A、B、...、F 分别是第一、第二、...、第六列的标签(或者说名称)。我想要的是标签 A 正好位于第一列下方,标签 B 位于第二列下方,等等,当然,要对齐。到目前为止,我已经手动在标签前强制添加一些额外的空格,并且还尝试了命令\phantom

答案1

kbordermatrix包裹在排版带有索引的矩阵方面做得很出色。它的格式类似于 (La)TeX 的格式\bordermatrix

在此处输入图片描述

\documentclass{article}
\usepackage{kbordermatrix}% http://www.hss.caltech.edu/~kcb/LaTeX.shtml
\newcommand{\noindex}{\hspace*{-0.8em}}%
\begin{document}
\[
  M=\kbordermatrix{%
      & A &        & B & C \\
    1 & 1 & \vrule & 2 & 3 \\
    2 & 4 & \vrule & 5 & 6
  },\quad
  N=\kbordermatrix{%
    \noindex &  D &        &  E &  F \\
    \noindex &  7 & \vrule &  8 &  9 \\
    \noindex & 10 & \vrule & 11 & 12
  }
\]
\end{document}

相对于方程/表达式的垂直对齐保持良好。

答案2

你可以使用包来实现这一点。它允许你在可以格式化为独立数组的数组内blkarray使用s:block

\documentclass{article}

\usepackage{blkarray}

\begin{document}

\[M=
\begin{blockarray}{ccc}
A & B & C \\
\begin{block}{[c|cc]}
1 & 2 & 3 \\
4 & 5 & 6 \\
\end{block}
\end{blockarray},\quad
N=
\begin{blockarray}{ccc}
D & E & F \\
\begin{block}{[c|cc]}
7 & 8 & 9 \\
10 & 11 & 12\\
\end{block}
\end{blockarray}
\]

\end{document}

答案3

这是一个具有环境的解决方案nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\NiceMatrixOptions
  {
    code-for-first-row = \scriptstyle , 
    code-for-first-col = \scriptstyle , 
  }

$M = 
\begin{bNiceArray}{c|cc}[first-col,first-row]
  & A & B & C \\
1 & 1 & 2 & 3 \\
2 & 4 & 5 & 6 
\end{bNiceArray}$,\qquad
$N = 
\begin{bNiceArray}{c|cc}[first-row]
D & E & F \\
7 & 8 & 9 \\
10 & 11 & 12
\end{bNiceArray}$

\end{document}

上述代码的输出

相关内容