我这里有这张表:
\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}