\bordermatrix
我正在使用这里定义的 修改版本:\bordermatrix 使用方括号 [ ] 代替圆括号 ( )
我的矩阵有小数元素,我想在行之间添加额外的空间,这样小数就不会接触。对于普通矩阵,可以通过在[0.3em]
每行末尾放置来实现,但这不适用于 bordermatrix,因为它使用\cr
而不是\\
来换行,并且\cr
似乎不接受参数。
\usepackage{etoolbox}
\let\bbordermatrix\bordermatrix
\patchcmd{\bbordermatrix}{8.75}{4.75}{}{}
\patchcmd{\bbordermatrix}{\left(}{\left[}{}{}
\patchcmd{\bbordermatrix}{\right)}{\right]}{}{}
\[\mathbf{P}=\bbordermatrix{& 0 & 1 & 2\cr
0 & 0 & \frac{1}{2} & \frac{1}{2}\cr
1 & \frac{1}{2} & 0 & \frac{1}{2}\cr
2 & \frac{1}{2} & \frac{1}{2} & 0}
\]
答案1
您可以添加几个补丁:
\documentclass{article}
\usepackage{etoolbox}
\let\bbordermatrix\bordermatrix
\patchcmd{\bbordermatrix}{8.75}{4.75}{}{}
\patchcmd{\bbordermatrix}{\left(}{\left[}{}{}
\patchcmd{\bbordermatrix}{\right)}{\right]}{}{}
% Add some space between rows
\patchcmd{\bbordermatrix}{\begingroup}{\begingroup\openup1\jot}{}{}
% Add the same amount at the end
\makeatletter
\patchcmd{\bbordermatrix}
{\vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}}
{\vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip\kern2pt}}
{}{}
\makeatother
\begin{document}
\[
\mathbf{P}=\bbordermatrix{& 0 & 1 & 2\cr
0 & 0 & \frac{1}{2} & \frac{1}{2}\cr
1 & \frac{1}{2} & 0 & \frac{1}{2}\cr
2 & \frac{1}{2} & \frac{1}{2} & 0}
\]
\end{document}
答案2
一种选择是使用kbordermatrix
而是(该包不在 CTAN 上,但可以通过提供的链接下载);这样,您会自动获得方括号而不是圆括号作为分隔符,并且可以使用标准语法\\[<length>]
;一个小例子:
\documentclass{article}
\usepackage{kbordermatrix}
\usepackage{etoolbox}
\let\bbordermatrix\bordermatrix
\patchcmd{\bbordermatrix}{8.75}{4.75}{}{}
\patchcmd{\bbordermatrix}{\left(}{\left[}{}{}
\patchcmd{\bbordermatrix}{\right)}{\right]}{}{}
\begin{document}
\[
\mathbf{P}=\bbordermatrix{
& 0 & 1 & 2\cr
0 & 0 & \frac{1}{2} & \frac{1}{2}\cr
1 & \frac{1}{2} & 0 & \frac{1}{2}\cr
2 & \frac{1}{2} & \frac{1}{2} & 0}\qquad
\mathbf{P}=\kbordermatrix{
& 0 & 1 & 2 \\
0 & 0 & \frac{1}{2} & \frac{1}{2} \\[1ex]
1 & \frac{1}{2} & 0 & \frac{1}{2} \\[1ex]
2 & \frac{1}{2} & \frac{1}{2} & 0\\[0.3ex]}
\]
\end{document}