我对下图中以红色突出显示的表格有两个问题。
- 首先,在左侧,包含文本“数字”的多行单元格未在单元格的中心对齐。我相信发生这种情况是因为我在包含“非常长的类别名称分布在两行”的单元格内使用了一个表格;我这样做是因为我需要这个文本分布在两行上,而我不知道其他方法可以做到这一点。
- 使用多行获取包含“类别”的单元格,但如您在右侧看到的,没有垂直条。我不知道为什么会发生这种情况。
有人知道我该如何解决这个问题吗?这是我的带有 MWE 的代码:
\documentclass[a4paper]{article}
\usepackage{multirow}
\begin{document}
\begin{table}[t]
\begin{center}
\begin{tabular}{|c|c|c|c|c|}
\hline
\multirow{2}{*}{Number} & \multicolumn{4}{c}{Category} \\ \cline{2-5}
& \begin{tabular}{c} Very long category name \\ distributed on two rows \end{tabular} & cat.\ A & cat.\ B & \begin{tabular}{c} Another very long name \\ on two rows \end{tabular}\\
\hline
abc & def & ghi & jkl & mno\\
\hline
\end{tabular}
\end{center}
\end{table}
\end{document}
答案1
您还可以绘制该表,它{NiceTabular}
有nicematrix
两个优点:
\multirow
您可以使用命令来代替\Block
;使用该命令(可用于垂直和水平合并单元格),您必须指定行(和列数),而使用时\multirow
,您必须指定物理行数(这有时需要进行调整,就像您的情况一样)。在 中
{NiceTabular}
,您有一个密钥hvlines
,它绘制了除块之外的所有规则。
\documentclass[a4paper]{article}
\usepackage{nicematrix}
\begin{document}
\begin{table}[t]
\begin{center}
\begin{NiceTabular}{ccccc}[hvlines]
\Block{2-1}{Number} & \multicolumn{4}{c}{Category} \\
& \begin{tabular}{c} Very long category name \\ distributed on two rows \end{tabular}
& cat.\ A & cat.\ B & \begin{tabular}{c} Another very long name \\ on two rows \end{tabular}\\
abc & def & ghi & jkl & mno\\
\end{NiceTabular}
\end{center}
\end{table}
\end{document}
nicematrix
但是,由于使用 PGF/Tikz 节点,因此需要进行多次编译。
答案2
\documentclass[a4paper]{article}
\usepackage{multirow}
\begin{document}
\begin{table}[t]
\begin{center}
\begin{tabular}{|c|c|c|c|c|}
\hline
\multirow{3.5}{*}{Number} & \multicolumn{4}{c|}{Category} \\ \cline{2-5}
& \begin{tabular}{c} Very long category name \\ distributed on two rows \end{tabular} & cat.\ A & cat.\ B & \begin{tabular}{c} Another very long name \\ on two rows \end{tabular}\\
\hline
abc & def & ghi & jkl & mno\\
\hline
\end{tabular}
\end{center}
\end{table}
\end{document}