我正在表格中使用该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}