使用 '\multicolumn' 减少表格中的垂直空间并更改对齐方式

使用 '\multicolumn' 减少表格中的垂直空间并更改对齐方式

我有这张表:

\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}

输出:

在此处输入图片描述

我想实现以下目标:

  1. “Type” 一词应与行的中心对齐(位于 M、N、F 上方)
  2. 我还希望“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 节点)。

上述代码的输出

相关内容