表中有多行

表中有多行

我正在尝试实现这样的目标

    Name | Age | Sex | AverageGrade | Subject | Grade |
---------------------------------------------------------
         |     |     |              |Maths    | A     |
    Jhon | 24  | M   | A            |Science  | A     |
         |     |     |              |Arts     | A     |
---------------------------------------------------------
         |     |     |              |Maths    | A     |
    Mary | 24  | M   | A            |Science  | A     |
         |     |     |              |Arts     | A     |
---------------------------------------------------------

multirow我在前四列上都使用了。有没有更简单的方法来实现这一点?

答案1

您可以使用下列任何一种可能性:

  1. 使用以下方法将单元格分散到各行中multirow(正如您已经做的那样);
  2. 将多行单元格的内容合并为其tabular自己的内容;或
  3. 不要使用上面的 1 或 2,因为您使用奇数个条目来跨越您的内容。

我会选择选项 2 或 3。这里有一个解决上述 3 种可能性的最小示例:

在此处输入图片描述

\documentclass{article}
\usepackage{multirow}% http://ctan.org/pkg/multirow
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\begin{document}

\noindent Option 1: \par\medskip
\begin{tabular}{rccllc}
  \toprule
  Name & Age & Sex & Average Grade & Subject & Grade \\
  \midrule
  \multirow{3}*{John} & \multirow{3}*{24} & \multirow{3}*{M} & \multirow{3}*{A} &
    Maths & A \\
    &&&&Science & A \\
    &&&&Arts & A \\[.5\normalbaselineskip]
  \multirow{3}*{Mary} & \multirow{3}*{22} & \multirow{3}*{F} & \multirow{3}*{A} &
    Maths & A \\
    &&&&Science & A \\
    &&&&Arts & A \\
  \bottomrule
\end{tabular}

\bigskip

\noindent Option 2: \par\medskip
\begin{tabular}{rccllc}
  \toprule
  Name & Age & Sex & Average Grade & Subject & Grade \\
  \midrule
  John & 24 & M & A & 
    \begin{tabular}{@{}l@{}}Maths \\ Science \\ Arts\end{tabular}& 
    \begin{tabular}{@{}c@{}}A \\ A \\ A\end{tabular} \\[.5\normalbaselineskip]
  Mary & 22 & F & A &
    \begin{tabular}{@{}l@{}}Maths \\ Science \\ Arts\end{tabular}& 
    \begin{tabular}{@{}c@{}}A \\ A \\ A\end{tabular} \\
  \bottomrule
\end{tabular}

\bigskip

\noindent Option 3: \par\medskip
\begin{tabular}{rccllc}
  \toprule
  Name & Age & Sex & Average Grade & Subject & Grade \\
  \midrule
       &    &   &   & Maths & A \\
  John & 24 & M & A & Science & A \\
       &    &   &   & Arts  & A \\[.5\normalbaselineskip]
       &    &   &   & Maths & A \\
  Mary & 22 & F & A & Science & A \\
       &    &   &   & Arts  & A \\
  \bottomrule
\end{tabular}
\end{document}

我用过booktabs进行演示。

答案2

使用m-column 说明符:

\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{@{}rccl m{1.25cm} c@{}}  \toprule
  Name & Age & Sex & Average Grade & Subject & Grade \\  \midrule
  John &  24 & M & A & Maths \newline Science\newline Arts & A \\[\medskipamount]
  Mary &  22 & F & A & Maths \newline Science\newline Arts & A \\\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

相关内容