我正在尝试实现这样的目标
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
您可以使用下列任何一种可能性:
- 使用以下方法将单元格分散到各行中
multirow
(正如您已经做的那样); - 将多行单元格的内容合并为其
tabular
自己的内容;或 - 不要使用上面的 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}