我想知道是否有人可以帮助我排版这个带有线条的边框矩阵。虚线或实线都可以,但我希望线条不要超出括号。我也不希望需要加载 3 个以上的包来实现这一点。
我尝试了在 StackExchange 上找到的其他几种解决方案,但它们似乎不起作用(我没有 kbordermatrix,并且 nicematrix 由于某种原因不会画线)。
任何建议都值得感激。
编辑:这是我当前的代码:
\bbordermatrix{
& {\bf 1} & {\bf 5} & {\bf 2} & {\bf 4} & {\bf 3} \cr
{\bf 1}\, & \nicefrac16 & \nicefrac56 & 0 & 0 & 0 \cr
{\bf 5}\, & \nicefrac16 & \nicefrac56 & 0 & 0 & 0 \cr
{\bf 2} & 0 & 0 & \nicefrac23 & \nicefrac13 & 0 \cr
{\bf 4} & 0 & 0 & \nicefrac23 & \nicefrac13 & 0 \cr
{\bf 3} & \nicefrac1{36} & \nicefrac5{36} & \nicefrac59 & \nicefrac5{18} & 0
}
我已经开始排查 NiceMatrix 出了什么问题。我有一个头文件,我将其包含为 \include{...}。该头文件中的某些内容似乎构成了这个矩阵(来源:带块的边界矩阵):
像这样:
问题是,我仔细检查并注释掉了该标题中的每一行代码,但似乎没有什么特别的问题。事实上,如果我不包含标题,而只是复制每一行,当我排版文档时,矩阵第一次出现错误,但第二次排版时它就正确了。我以前从未见过这种行为……我怎样才能得到不同的结果?
然后,如果我删除头文件的行并用 \include 替换它们,我会得到相反的行为:第一次排版正确,但随后所有时间排版都会不正确。
我不知道发生了什么事。
答案1
这是一个使用nicematrix
两个自定义规则的解决方案。
\documentclass[12pt,a4paper]{article}
\usepackage{xfrac} % nice fractions
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\NiceMatrixOptions
{
custom-line ={command= H, tikz= dashed, width= 1mm}, % horizontal, dashed
custom-line = {letter= I, tikz= dashed, width= 1mm}, % vertical, dashed
}
$\begin{bNiceArray}{cc I cc I c}[first-row, first-col, cell-space-top-limit=3pt, extra-margin=4pt]
&1 &5 &2 &4 &3\\
1 &\sfrac{1}{6} &\sfrac{5}{6} &0 &0 &0\\
5 &\sfrac{1}{6} &\sfrac{5}{6} &0 &0 &0\\ \H % custom rule <<<<
2 &0 &0 &\sfrac{2}{3} &\sfrac{1}{3} &0\\
4 &0 &0 &\sfrac{2}{3} &\sfrac{1}{3} &0\\ \H % custom rule <<<<
3 &\sfrac{1}{36} &\sfrac{5}{36} &\sfrac{5}{9} &\sfrac{5}{18} &0\\
\end{bNiceArray}$
\end{document}
用过的nicematrix.sty 2022/05/08 v6.8a
更新后续问题之后:数组第一列和第一行加粗。使用键
code-for-first-row
和code-for-first-col
\documentclass[12pt,a4paper]{article}
\usepackage{xfrac} % nice fractions
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\NiceMatrixOptions
{
custom-line ={command= H, tikz= dashed, width= 1mm}, % horizontal, dashed
custom-line = {letter= I, tikz= dashed, width= 1mm}, % vertical dashed
}
$\begin{bNiceArray}{cc I cc I c}[first-row, first-col, cell-space-top-limit=3pt, extra-margin=4pt, code-for-first-row = $\boldmath$, code-for-first-col = $\boldmath$]% changed <<<<<<<
&1 &5 &2 &4 &3\\
1 &\sfrac{1}{6} &\sfrac{5}{6} &0 &0 &0\\
5 &\sfrac{1}{6} &\sfrac{5}{6} &0 &0 &0\\ \H % custom rule <<<<
2 &0 &0 &\sfrac{2}{3} &\sfrac{1}{3} &0\\
4 &0 &0 &\sfrac{2}{3} &\sfrac{1}{3} &0\\ \H % custom rule <<<<
3 &\sfrac{1}{36} &\sfrac{5}{36} &\sfrac{5}{9} &\sfrac{5}{18} &0\\
\end{bNiceArray}$
\end{document}