在 Latex 中使用多行和多列来形成表格

在 Latex 中使用多行和多列来形成表格

我写了类似下面的代码:

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

在此处输入图片描述 我希望删除名称下方第一列和第二列中的水平线,并且用于表示列大小的“p”未提供实际尺寸。任何帮助都将不胜感激。

答案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} 

相关内容