我想复制这张图片:
有没有办法不使用任何外部包(理想情况下只是和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}