![如何获得具有行和列标签并且可以与标题对齐的矩阵?](https://linux22.com/image/341678/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E5%85%B7%E6%9C%89%E8%A1%8C%E5%92%8C%E5%88%97%E6%A0%87%E7%AD%BE%E5%B9%B6%E4%B8%94%E5%8F%AF%E4%BB%A5%E4%B8%8E%E6%A0%87%E9%A2%98%E5%AF%B9%E9%BD%90%E7%9A%84%E7%9F%A9%E9%98%B5%EF%BC%9F.png)
我想复制这张图片:
有没有办法不使用任何外部包(理想情况下只是和tikz
的一些组合)或狂野的重新定义来实现这一点?我不喜欢使用,因为当试图让它吐出一个括号矩阵时,它会做坏事。\array
tabular
blkarray
到目前为止我可以做
\documentclass[11pt]{amsart}
\begin{document}
\begin{tabular}{c @{\hspace{2\tabcolsep}} *{4}{c}}
&
0 &
1 &
2 &
3
\\[1ex]
0 & 0 & 1/3 & 1/3 & 1/3 \\
1 & 0 & 1/3 & 1/3 & 1/3 \\
2 & 1/3 & 1/3 & 1/3 & 0 \\
3 & 0 & 1/3 & 1/3 & 1/3 \\
\end{tabular}
\end{document}
编辑:我喜欢 @Werner 最初给出的答案,但对于我的用例来说,似乎很难修改。这是我尝试过的,但无法正确对齐括号:
\[
P =
\begin{array}{ *{5}{c} }
\\[3\normalbaselineskip]
& \multicolumn{4}{c}{\rowind{State}} \\
& \colind{\$0} & \colind{\$1} & \colind{\$2} & \colind{\$3} \\
\rowind{0} & 0 & 1/3 & 1/3 & 1/3 \\
\rowind{1} & 0 & 1/3 & 1/3 & 1/3 \\
\rowind{2} \smash{\makebox[0pt][l]{$%
\hspace{.5\tabcolsep}\left[\begin{array}{@{}c@{}}
\mathstrut \\ \mathstrut \\ \mathstrut \\ \mathstrut
\end{array}\right.
$}} & 1/3 & 1/3 & 1/3 & 0 \smash{\makebox[0pt][l]{$%
\hspace{.5\tabcolsep}\left.\begin{array}{@{}c@{}}
\mathstrut \\ \mathstrut \\ \mathstrut \\ \mathstrut
\end{array}\right]
$}} \\
\rowind{3} & 0 & 1/3 & 1/3 & 1/3 \\
\end{array}
\]
答案1
当然!我做了一些定义以避免重复内容,如果您愿意,也可以对其进行调整:
\documentclass{article}
\newcommand{\indsize}{\scriptsize}
\newcommand{\colind}[2]{\displaystyle\smash{\mathop{#1}^{\raisebox{.5\normalbaselineskip}{\indsize #2}}}}
\newcommand{\rowind}[1]{\mbox{\indsize #1}}
\begin{document}
\[
P =
\begin{array}{@{}c@{}}
\rowind{0} \\ \rowind{1} \\ \rowind{2} \\ \rowind{3} \\ \rowind{4}
\end{array}
\mathop{\left[
\begin{array}{ *{5}{c} }
\colind{1}{\$0} & \colind{0}{\$1} & \colind{0}{\$2} & \colind{0}{\$3} & \colind{0}{\$4} \\
1-p & 0 & p & 0 & 0 \\
0 & 1-p & 0 & p & 0 \\
0 & 0 & 1-p & 0 & p \\
0 & 0 & 0 & 0 & 1
\end{array}
\right]}^{
\begin{array}{@{}c@{}}
\rowind{State} \\ \mathstrut
\end{array}
}
\]
\end{document}