因此,我正在使用该包为马尔可夫链编写一个转移矩阵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}