将矩阵的列与 r markdown 上的标签对齐

将矩阵的列与 r markdown 上的标签对齐

我无法将矩阵的列与列标签对齐。我已将代码和输出附在下面。有人能帮我解决这个问题吗?我想将 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包及其列类型。Darray

在此处输入图片描述

\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}

相关内容