使用 kbordermatrix 分割标签线

使用 kbordermatrix 分割标签线

使用 kbordermatrix 时,是否有一种优雅的方法将标签拆分为两行或多行?

请考虑以下示例:

我想将标签分成两行。

现在,以下操作根本不起作用:

\documentclass{standalone}
\usepackage{kbordermatrix}
\usepackage{tikz}
\begin{document}
\kbordermatrix{
  & \begin{tikzpicture}\node[align=center] at (0,0){a label consisting\\of several words};\end{tikzpicture}\\ 
a & $0$\\
b & $0$
}
\end{document}

接下来

\documentclass{standalone}
\usepackage{kbordermatrix}
\usepackage{tikz}
\begin{document}
\kbordermatrix{
  & \begin{minipage}{0.1\textwidth}a label consisting\\of several words\end{minipage}\\ 
a & $0$\\
b & $0$
}
\end{document}

产生这个:

这显然不太好。

答案1

与。{NiceTabular}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{cc}
    & \small \Block{}{A label\\ consisting\\ of several\\ words} \\
$a$ & $0$ \\
$b$ & $0$ \\
\CodeAfter 
  \SubMatrix[{2-2}{3-2}]
\end{NiceTabular}

\end{document}

上述代码的输出

答案2

我建议使用blkarraystackengine包来实现这一点:

\documentclass[border=6pt]{standalone}
\usepackage{kbordermatrix}
\usepackage{blkarray}
\usepackage[usestackEOL]{stackengine}

\begin{document}

 $\setstackgap{L}{2ex} \begin{blockarray}{rc}
 & \scriptsize\Centerstack{A label\\ consisting \\of several \\words} \\
\begin{block}{ >{\scriptstyle}r[c]}
 a & 0 \\
 b & 0 \\
\end{block}
\end{blockarray} $

\end{document}

在此处输入图片描述

答案3

感谢大家的回答。我将在这里发布一个我自己偶然发现的替代方案,它bnicematrix也可以使用。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
$
\begin{bNiceMatrix}[first-row,first-col]
    & \mbox{\begin{tabular}{c}
            \textnormal{A label ,}\\\textnormal{on several rows}
            \end{tabular}
        } \\
        a & 0 \\
        b & 1 
\end{bNiceMatrix}
$
\end{document}

结果如下:

在此处输入图片描述

相关内容