使用 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
答案2
我建议使用blkarray
和stackengine
包来实现这一点:
\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}
结果如下: