穿过整个表格的对角线

穿过整个表格的对角线

我正在尝试设置一个显示两个样本结果的相互关联表。但是,为了获得更好的视觉效果,我想通过在整个表格(而不仅仅是一个单元格)中添加一条对角线将该表格分成两部分。单元格本身的长度不同。

我实际上尝试过使用 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} 

输出是一样的。

相关内容