我有这张表:
\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{pifont}
\def\CHECK{\ding{52}}
\begin{document}
\begin{table}
\centering
\caption{My table}
\rowcolors{5}{}{gray!10}
\begin{tabular}{*8c}
\toprule
& Experimentally & \multicolumn{5}{c}{Type} \\
\cmidrule(lr){3-5}
A & Tested & N & M & F & O & C\\
\midrule
1 & & \CHECK & & \CHECK \\
2 & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK\\
3 & & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK \\
\bottomrule
\end{tabular}
\end{table}
输出:
我想实现以下目标:
- “Type” 一词应与行的中心对齐(位于 M、N、F 上方)
- 我还希望“Experimentally Tested”文本之间的垂直空间更小。我试过了
\vspace{}
,但出现了错误。也许我做错了。
目前,表格看起来不太美观。如能提供任何帮助,我将不胜感激。
答案1
对于垂直空间,一个简单的\multirowcell
(来自makecell
)就可以了。我添加了 caption 包,以便在标题和表格之间留出合适的间距。至于 中的对齐\multicolumn
,考虑正确的列数(3;,而不是 5)就足够了:
\documentclass[table]{article}
\usepackage{nicematrix}
\usepackage{xcolor}
\usepackage{booktabs, multirow, makecell, caption}
\usepackage{pifont}
\def\CHECK{\ding{52}}
\begin{document}
\begin{table}
\centering
\caption{My table}
\rowcolors{5}{}{gray!10}
\begin{tabular}{*8c}
\toprule
& & \multicolumn{3}{c}{Type} \\
\cmidrule(lr){3-5}
A &\multirowcell{-2}{Experimentally\\ Tested} & N & M & F & O & C\\
\midrule
1 & & \CHECK & & \CHECK \\
2 & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK\\
3 & & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
与。{NiceTabular}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{pifont}
\def\CHECK{\ding{52}}
\begin{document}
\begin{table}
\centering
\caption{My table}
\begin{NiceTabular}{*7c}
\CodeBefore
\rowcolors{5}{}{gray!10}
\Body
\toprule
& \Block{2-1}{Experimentally\\ Tested} & \Block{1-3}{Type} \\
\cmidrule(lr){3-5}
A & & N & M & F & O & C\\
\midrule
1 & & \CHECK & & \CHECK \\
2 & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK\\
3 & & \CHECK & \CHECK & \CHECK & \CHECK & \CHECK \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。