标记矩阵定位问题

标记矩阵定位问题

因此,我正在使用该包为马尔可夫链编写一个转移矩阵gauss。这是我所拥有的:

代码:

\documentclass[12pt]{article}
\usepackage{float}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{gauss}

\begin{document} 
    \begin{align*}
        T\left(s, a_1, s^\prime\right) &= 
            \begin{bmatrix}
            0 & 0.5 & 0.5 & 0 & 0\\
            0 & 0 & 0 & 0.5 & 0.5\\
            0 & 0 & 0 & 0.9 & 0.1 \\
            0 & 0 & 0 & 1 & 0\\
            0 & 0 & 0 & 0 & 1
        \end{bmatrix}\\
        T\left(s, a_1, s^\prime\right) &= 
        \begin{gmatrix}[b]
            \mathllap{S_1\quad} 0 & 0.5 & 0.5 & 0 & 0\\
            \mathllap{S_2\quad} 0 & 0 & 0 & 0.5 & 0.5\\
            \mathllap{S_3\quad} 0 & 0 & 0 & 0.9 & 0.1 \\
            \mathllap{S_4\quad} 0 & 0 & 0 & 1 & 0\\
            \mathllap{S_5\quad} 0 & 0 & 0 & 0 & 1\colops
            \def\colmultlabel#1{\makebox[1.2em]{$#1$}}
            \mult0{S_1}
            \mult1{S_2}
            \mult2{S_3}
            \mult3{S_4}
            \mult4{S_5}
        \end{gmatrix}\\
        T\left(s, a_1, s^\prime\right) &= 
        \begin{bmatrix}
            0 & 0.5 & 0.5 & 0 & 0\\
            0 & 0 & 0 & 0.5 & 0.5\\
            0 & 0 & 0 & 0.9 & 0.1 \\
            0 & 0 & 0 & 1 & 0\\
            0 & 0 & 0 & 0 & 1
        \end{bmatrix}
    \end{align*}
\end{document}

输出:

在此处输入图片描述

我意识到输出是gmatrix一个像来自的正常矩阵一样放置的正常矩阵amsmath,但问题是标签没有被考虑在内。也就是说,行和列标签没有为它创建空间以与其行上的等号或上面的等式分开。

如何修复?

答案1

您可以插入一些水平空间。

\documentclass[12pt]{article}
\usepackage{float}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{gauss}

\begin{document} 
    \begin{align*}
        T\left(s, a_1, s^\prime\right) &= 
            \begin{bmatrix}
            0 & 0.5 & 0.5 & 0 & 0\\
            0 & 0 & 0 & 0.5 & 0.5\\
            0 & 0 & 0 & 0.9 & 0.1 \\
            0 & 0 & 0 & 1 & 0\\
            0 & 0 & 0 & 0 & 1
        \end{bmatrix}\\
        T\left(s, a_1, s^\prime\right) &=\;\quad
        \begin{gmatrix}[b]
            \mathllap{S_1\quad} 0 & 0.5 & 0.5 & 0 & 0\\
            \mathllap{S_2\quad} 0 & 0 & 0 & 0.5 & 0.5\\
            \mathllap{S_3\quad} 0 & 0 & 0 & 0.9 & 0.1 \\
            \mathllap{S_4\quad} 0 & 0 & 0 & 1 & 0\\
            \mathllap{S_5\quad} 0 & 0 & 0 & 0 & 1\colops
            \def\colmultlabel#1{\makebox[1.2em]{$#1$}}
            \mult0{S_1}
            \mult1{S_2}
            \mult2{S_3}
            \mult3{S_4}
            \mult4{S_5}
        \end{gmatrix}\\
        T\left(s, a_1, s^\prime\right) &= 
        \begin{bmatrix}
            0 & 0.5 & 0.5 & 0 & 0\\
            0 & 0 & 0 & 0.5 & 0.5\\
            0 & 0 & 0 & 0.9 & 0.1 \\
            0 & 0 & 0 & 1 & 0\\
            0 & 0 & 0 & 0 & 1
        \end{bmatrix}
    \end{align*}
\end{document}

在此处输入图片描述

但是,如果您想要这个输出,我建议您使用nicematrix,它可以S_i自动添加。

\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{mathtools}
\usepackage{nicematrix}

\begin{document} 
    \begin{align*}
        T\left(s, a_1, s^\prime\right) &= 
            \begin{bmatrix}
            0 & 0.5 & 0.5 & 0 & 0\\
            0 & 0 & 0 & 0.5 & 0.5\\
            0 & 0 & 0 & 0.9 & 0.1 \\
            0 & 0 & 0 & 1 & 0\\
            0 & 0 & 0 & 0 & 1
        \end{bmatrix}\\
        T\left(s, a_1, s^\prime\right) &=
        \begin{bNiceMatrix}[first-row,first-col,
    code-for-first-row = S_{\number\value{jCol}},
    code-for-first-col = S_{\number\value{iRow}}
    ]
            & & & & &  \\ 
            & 0 & 0.5 & 0.5 & 0 & 0\\
            & 0 & 0 & 0 & 0.5 & 0.5\\
            & 0 & 0 & 0 & 0.9 & 0.1 \\
            & 0 & 0 & 0 & 1 & 0\\
            & 0 & 0 & 0 & 0 & 1
        \end{bNiceMatrix}\\
        T\left(s, a_1, s^\prime\right) &= 
        \begin{bmatrix}
            0 & 0.5 & 0.5 & 0 & 0\\
            0 & 0 & 0 & 0.5 & 0.5\\
            0 & 0 & 0 & 0.9 & 0.1 \\
            0 & 0 & 0 & 1 & 0\\
            0 & 0 & 0 & 0 & 1
        \end{bmatrix}
    \end{align*}
\end{document}

在此处输入图片描述

相关内容