边界矩阵内有线的块矩阵

边界矩阵内有线的块矩阵

我想知道是否有人可以帮助我排版这个带有线条的边框矩阵。虚线或实线都可以,但我希望线条不要超出括号。我也不希望需要加载 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两个自定义规则的解决方案。

b

\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-rowcode-for-first-col

C

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

相关内容