我正在尝试设置一个显示两个样本结果的相互关联表。但是,为了获得更好的视觉效果,我想通过在整个表格(而不仅仅是一个单元格)中添加一条对角线将该表格分成两部分。单元格本身的长度不同。
我实际上尝试过使用 diagbox,但失败了,(据我所知)因为它仅适用于一个单元格。
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{diagbox}
\begin{document}
\begin{tabular}{rrrrrr}
\toprule \\[-1.8ex]
& AAAAA & BBBBBBBB & CCCCC & DDDDDD & EEEEEE \\
\midrule
A & \backslashbox && && \\
B & .XX*** & \backslashbox & & & \\
C & .XX*** & .XX*** & \backslashbox & & \\
D & .XX*** & .XX*** & .XX*** & \backslashbox &\\
E & .XX*** & .XX*** & .XX*** & .XX*** & \backslashbox \\
\bottomrule
\end{tabular}
\end{document}
有什么想法吗-我检查了现有的答案,但似乎都不适合。
答案1
pstricks
如果我很清楚你想要什么的话,这里有一个可能性:
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{diagbox}
\usepackage{pst-node, auto-pst-pdf}
\begin{document}
\begin{postscript}
\begin{tabular}{rrrrrr}
\toprule \\[-1.8ex]
& AAAAA & BBBBBBBB & CCCCC & DDDDDD & EEEEEE \\
\midrule
A \pnode[1em, 2.6ex]{A} & && && \\
B & .XX*** & & & & \\
C & .XX*** & .XX*** & & & \\
D & .XX*** & .XX*** & .XX*** & &\\
E & .XX*** & .XX*** & .XX*** & .XX*** & \pnode[0.6em, -1.3ex]{X} \\
\bottomrule
\end{tabular}
\ncline[linewidth = 0.4pt]{A}{X}
\end{postscript}
\end{document}
答案2
{NiceTabular}
这是使用 的解决方案nicematrix
。该环境类似于经典环境{tabular}
(包array
),但还在单元格、行和列下创建 PGF/Tikz。可以使用这些节点在\CodeAfter
) 中使用 Tikz 绘制您想要的任何规则。
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{NiceTabular}{rrrrrr}
\toprule
& AAAAA & BBBBBBBB & CCCCC & DDDDDD & EEEEEE \\
\midrule
A \\
B & .XX*** \\
C & .XX*** & .XX*** \\
D & .XX*** & .XX*** & .XX*** \\
E & .XX*** & .XX*** & .XX*** & .XX*** & \\
\bottomrule
\CodeAfter
\tikz \draw (2-|2) -- (last-|last) ;
\end{NiceTabular}
\end{document}
您需要多次编译(因为 PGF/Tikz 节点)。
\diagbox
实际上,你也可以使用命令(的内置命令nicematrix
)中的命令\Block
(也是的内置命令)绘制对角线nicematrix
。使用此技术,你不必明确使用 TikZ。
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{rrrrrr}
\toprule
& AAAAA & BBBBBBBB & CCCCC & DDDDDD & EEEEEE \\
\midrule
A & \Block{*-*}{\diagbox{}{}}\\
B & .XX*** \\
C & .XX*** & .XX*** \\
D & .XX*** & .XX*** & .XX*** \\
E & .XX*** & .XX*** & .XX*** & .XX*** & \\
\bottomrule
\end{NiceTabular}
\end{document}
输出是一样的。