有没有一种智能的方式来标记(或命名)矩阵中的列?我想要类似的东西
\[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}