我写了类似下面的代码:
\begin{table}
% table caption is above the table
\caption{Sample}
\label{tab:2} % Give a unique label
% For LaTeX tables use
\begin{tabular}{c|c|p{2cm}|p{2cm}|p{2cm}|p{2cm}}
\hline\noalign{\smallskip}
{Task size} & {Type} & \multicolumn{2}{c}{{Makespan}} &
\multicolumn{2}{c}{{Execution Cost }}
\\ \hline
{}&{}& X & Y & X & Y \\
\noalign{\smallskip}\hline\noalign{\smallskip}
\multirow{4}{*}{100} & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11 \\
& C & 6 & 4 &10&11 \\
& D & 6 & 4 &10&11\\ \hline
\multirow{4}{*}{200} & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11\\
& C & 6 & 4 &10&11\\
& D & 6 & 4 &10&11\\ \hline
\multirow{4}{*}{300} & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11\\
& C & 6 & 4 &10&11 \\
& D & 6 & 4 &10&11\\ \hline
\multirow{4}{*}{400} & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11\\
& C & 6 & 4 &10&11\\
& D & 6 & 4 &10&11 \\ \hline
\noalign{\smallskip}\hline
\end{tabular}
\end{table}
答案1
一些建议:
删除表格中的所有垂直线和大多数水平线。所有这些线实际上并没有提高可读性——事实上,它们增加了很多视觉混乱,可能会减少易读性……
加载
booktabs
包并使用其、、\toprule
和宏来获取间距适当的水平规则。midrule
\bottomrule
\cmidrule
您的表格有四
p
列,对于文本块来说,实际上(稍微)太宽了。考虑使用tabularx
环境并将其宽度设置为\textwidth
;然后让 LaTeX 完成与计算列宽相关的所有繁琐工作。
\documentclass{article}
\usepackage{booktabs,tabularx,caption}
\newcolumntype{C}{>{\centering\arraybackslash}X} % centered version of "X" column type
\begin{document}
\begin{table}
\caption{Sample}
\label{tab:2}
\begin{tabularx}{\textwidth}{ll CCCC }
\toprule
Task size & Type & \multicolumn{2}{c}{Makespan} & \multicolumn{2}{c}{Execution Cost} \\
\cmidrule(lr){3-4} \cmidrule(l){5-6}
& & XXX & YYY & XXX & YYY \\
\midrule
100 & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11 \\
& C & 6 & 4 &10&11 \\
& D & 6 & 4 &10&11 \\\addlinespace
100 & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11 \\
& C & 6 & 4 &10&11 \\
& D & 6 & 4 &10&11 \\\addlinespace
100 & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11 \\
& C & 6 & 4 &10&11 \\
& D & 6 & 4 &10&11 \\\addlinespace
100 & A & 6 & 4 &10&11 \\
& B & 6 & 4 &10&11 \\
& C & 6 & 4 &10&11 \\
& D & 6 & 4 &10&11 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}