带表格的 Slashbox:调整多行的对角线分隔符

带表格的 Slashbox:调整多行的对角线分隔符

我正在表格中使用该slashbox包,如下所示。但是如您所见,第一个单元格中的对角线不是该单元格的真实对角线。这是因为该单元格中存在多行。那么如何使对角线从左上角延伸到左侧第一个单元格的右下角呢?

在此处输入图片描述

这是我的代码:

\documentclass[12pt]{article}
\usepackage{slashbox}

\begin{document}

\begin{table}[htbp]
\begin{center}
\begin{tabular}[htp]{||l|c|c|c|c||}
\hline
\backslashbox{Adult}{Motion types}
& can definitely & \multicolumn{2}{c|}{can definitely } & can definitely\\
person
& walk & \multicolumn{2}{c|}{jump} & run\\
\cline {3-4}
& & more than
& more than & \\
& & 10 cm
& 20 cm & \\[4mm]
\hline \hline
Joe & Yes & No & No & No \\[4mm]
\hline
\end{tabular}
\end{center}
\end{table}

\end{document}

谢谢。

答案1

要获取跨多行的单元格,可以使用multirow包裹. \backslashbox在其实施限制内可以很好地处理这个问题 - 斜线被构建为 LaTeX 图片,因此允许的线条斜率数量是有限的。

示例输出

\documentclass[12pt]{article}

\usepackage{slashbox,multirow}

\begin{document}

\begin{table}[htbp]
\begin{center}
\begin{tabular}[htp]{||l|c|c|c|c||}
\hline
\multirow{4}{*}{\backslashbox{Adult\\\strut person}{\strut Motion\\ types}}
& can definitely & \multicolumn{2}{c|}{can definitely } & can definitely\\
& walk & \multicolumn{2}{c|}{jump} & run\\
\cline {3-4} & & more than & more than & \\
& & 10 cm & 20 cm &\\
\hline \hline
Joe & Yes & No & No & No \\
Margaret & Yes & Yes & Yes & Yes \\
\hline
\end{tabular}
\end{center}
\end{table}

\end{document}

一个更复杂的解决方案,可以更灵活地选择斜线,可以使用类似tikz,见表格单元格中的对角线对于某些这样的方法,但仍然需要这样的\multirow命令。

答案2

该包为其环境nicematrix提供了自己的命令(类似于提供的环境)。\diagbox{NiceTabular}{tabular}array

该命令与多行和多列单元格完美配合(因为规则是由 PGF/TikZ 绘制的)。

\documentclass[12pt]{article}

\usepackage{nicematrix}

\begin{document}

\begin{table}[htbp]
\begin{center}
\begin{NiceTabular}{|l|c|c|c|c|}
\Hline
\Block{3-1}{\diagbox{Adult\\\strut person}{\strut Motion\\ types}}
& \Block[t]{3-1}{can definitely\\ walk} 
& \Block[t]{1-2}{can definitely \\ jump} & 
& \Block[t]{3-1}{can definitely \\jump} \\ \Hline
& & more than & more than & \\ \Hline
& & 10 cm & 20 cm &\\
\Hline \Hline
Joe & Yes & No & No & No \\
Margaret & Yes & Yes & Yes & Yes \\
\Hline
\end{NiceTabular}
\end{center}
\end{table}

\end{document}

第一个代码的输出

相关内容