我无法将矩阵的列与列标签对齐。我已将代码和输出附在下面。有人能帮我解决这个问题吗?我想将 0、1、2、3 与相应的列对齐
<div class="math">
\[
\begin{array}{ccc} &
\begin{array}{cccc} 0 & 1 & 2 & 3\end{array}
\\
P=\begin{array}{cccc}
0 \\
1 \\
2\\
3\end{array}
&
\left(
\begin{array}{cccc}
0 & 0.5 & 0.3 & 0.2 \\
0 & 0.5 & 0.4 & 0.1 \\
0 & 0 & 0.5 & 0.5 \\
1 & 0 & 0 & 0\end{array}
\right)\end{array}
\]
</div>
答案1
以下是您可以使用该软件包中的工具进行的操作nicematrix
。
\documentclass{article}
\usepackage{nicematrix,siunitx}
\begin{document}
\NiceMatrixOptions{code-for-first-row=\color{blue}, code-for-first-col = \color{blue}}
$P = \begin{pNiceMatrix}[first-row,first-col]
& 0 & 1 & 2 & 3 \\
0 & 0 & 0.5 & 0.3 & 0.2 \\
1 & 0 & 0.5 & 0.4 & 0.1 \\
2 & 0 & 0 & 0.5 & 0.5 \\
3 & 1 & 0 & 0 & 0 \\
\end{pNiceMatrix}$
\bigskip
With the columns \verb|S| of \verb|siunitx|:
\medskip
$P = \begin{pNiceArray}{cSSS}[first-row,first-col]
& {0} & {1} & {2} & {3} \\
0 & 0 & 0.5 & 0.3 & 0.2 \\
1 & 0 & 0.5 & 0.4 & 0.1 \\
2 & 0 & 0 & 0.5 & 0.5 \\
3 & 1 & 0 & 0 & 0 \\
\end{pNiceArray}$
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案2
假设数字应该在小数点标记上对齐,我建议您在右侧环境中的 4 列中的 3 列使用该dcolumn
包及其列类型。D
array
\documentclass{article}
\usepackage{dcolumn} % for 'D' column type
\newcolumntype{d}[1]{D..{#1}}
\begin{document}
\[
\begin{array}{ c @{} c } % "outer" array: 2 columns, no sep.
&
\begin{array}{c *{3}{d{1.1}} }
0 & 1 & 2 & 3
\end{array}
\\
P=\begin{array}{c}
0 \\ 1 \\ 2 \\ 3
\end{array}
&
\left(
\begin{array}{c *{3}{d{1.1}} }
0 & 0.5 & 0.3 & 0.2 \\
0 & 0.5 & 0.4 & 0.1 \\
0 & 0 & 0.5 & 0.5 \\
1 & 0 & 0 & 0
\end{array}
\right)
\end{array} % end of "outer" array
\]
\end{document}