使单行独立于表格模式

使单行独立于表格模式

我这里有这张表:

\begin{table}[]
\centering
\begin{tabular}{lccc}
    \toprule
    Metric / Index & \textbf{V1 - Base Unet} & \textbf{V2 - Multiscale} & \textbf{V3 - Attention} \\
    \midrule
    
    Training set \\
    \midrule
    MAE & 0.0 & 0.0 & 0.0 \\
    MSE & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    
    Validation set \\
    \midrule
    MAE & 0.0 & 0.0 & 0.0 \\
    MSE & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    
    Test set \\
    \midrule
    MAE & 0.0 & 0.0 & 0.0 \\
    MSE & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    
\end{tabular}
\caption{Caption}
\label{tab:my_label}
\end{table}

它看起来像这样:

在此处输入图片描述

我怎样才能将“训练集”、“验证集”和“测试集”置于中心位置,并使它们也独立于lccc表的模式?

答案1

用于multicolumn使单个单元格居中。

\begin{table}[]
\begin{tabular}{lccc}
    \toprule
    Metric / Index & \textbf{V1 - Base Unet} & \textbf{V2 - Multiscale} & \textbf{V3 - Attention} \\
    \midrule
    
    \multicolumn{4}{c}{Training set} \\
    \midrule
    MAE & 0.0 & 0.0 & 0.0 \\
    MSE & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    
    \multicolumn{4}{c}{Validation set} \\
    \midrule
    MAE & 0.0 & 0.0 & 0.0 \\
    MSE & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    
    \multicolumn{4}{c}{Test set} \\
    \midrule
    MAE & 0.0 & 0.0 & 0.0 \\
    MSE & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    
\end{tabular}
\caption{Caption}
\label{tab:my_label}
\end{table}

在此处输入图片描述

答案2

这里有两种“修复”表格的方法。

  • 第一个通过以下方式将字符串“训练集”、“验证集”和“测试集”集中在三个数据列中:

     & \multicolumn{3}{c}{...}
    

    包装器,然后是\cmidrule(l){2-4}指令,以提供一些视觉分组。我想结果还不错,但有人可能会质疑是否有必要粗体一些标题单元格。

  • 第二种方法则完全不同。首先,它创建一个新的标题列,排列“设置”字符串以跨越两个都新的和现有的标题列,并将 MAE、MSE 等字符串放在第 2 列,以便它们在视觉上从属于“set”字符串。这为这两类对象提供了一些急需的视觉分组。其次,它还提供了标题中更正式的结构并消除不必要的大胆的总体而言,现在的表格比以前看起来更加紧凑;许多读者会发现紧凑的外观非常有吸引力。

选择你的选择。:-)

在此处输入图片描述

\documentclass{article} % or some other suitable document class
\usepackage[vmargin=1in]{geometry} % just for this example
\usepackage{booktabs}
% handy shortcut macro for use in second table:
\newcommand\ml[1]{\multicolumn{2}{@{}l}{#1}} 

\begin{document}

\begin{table}[ht]
\centering
\begin{tabular}{@{} l ccc @{}}
    \toprule
    Metric/Index 
    & \textbf{V1 -- Base Unet} & \textbf{V2 -- Multiscale} & \textbf{V3 -- Attention} \\
    \midrule
    & \multicolumn{3}{c@{}}{Training set} \\
    \cmidrule(l){2-4}
    MAE  & 0.0 & 0.0 & 0.0 \\
    MSE  & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    \addlinespace
    & \multicolumn{3}{c@{}}{Validation set} \\
    \cmidrule(l){2-4}
    MAE  & 0.0 & 0.0 & 0.0 \\
    MSE  & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    \addlinespace
    & \multicolumn{3}{c@{}}{Test set} \\
    \cmidrule(l){2-4}
    MAE  & 0.0 & 0.0 & 0.0 \\
    MSE  & 0.0 & 0.0 & 0.0 \\
    SSIM & 0.0 & 0.0 & 0.0 \\
    ZNCC & 0.0 & 0.0 & 0.0 \\
    \bottomrule
\end{tabular}
\caption{Caption}
\label{tab:my_label}
\end{table}

\begin{table}[h!] % 'h!' forces the table onto the same pages
\centering
\begin{tabular}{@{} p{1ex} l ccc @{}} % new fixed-width left-hand column
    \toprule
    \ml{Set/Metric} 
    & V1 & V2 & V3 \\
    & & Base Unet & Multiscale & Attention \\
    \midrule
    
    \ml{Training set} \\
    & MAE  & 0.0 & 0.0 & 0.0 \\
    & MSE  & 0.0 & 0.0 & 0.0 \\
    & SSIM & 0.0 & 0.0 & 0.0 \\
    & ZNCC & 0.0 & 0.0 & 0.0 \\
    \addlinespace
    
    \ml{Validation set} \\
    & MAE  & 0.0 & 0.0 & 0.0 \\
    & MSE  & 0.0 & 0.0 & 0.0 \\
    & SSIM & 0.0 & 0.0 & 0.0 \\
    & ZNCC & 0.0 & 0.0 & 0.0 \\
    \addlinespace
    
    \ml{Test set} \\
    & MAE  & 0.0 & 0.0 & 0.0 \\
    & MSE  & 0.0 & 0.0 & 0.0 \\
    & SSIM & 0.0 & 0.0 & 0.0 \\
    & ZNCC & 0.0 & 0.0 & 0.0 \\
    \bottomrule
\end{tabular}
\caption{Caption}
\label{tab:my_label_x}
\end{table}

\end{document}

相关内容