multirow
我正在尝试使用和格式化表格multicolumn
。大部分看起来都不错,只是我缺少一些边框,并且我会在“二元分类器”行和其正下方的行之间添加一个线分隔符(1 vs. 2)等。我似乎无法弄清楚。
\begin{tabular}{|l|c|c|c|c|c|}
\hline
\multirow{2}{*}{Category} & \multicolumn{3}{c|} {Binary Classifier} & \multirow{2}{*}{Votes} & \multirow{2}{*}{Result}\\
& 1 vs. 2 & 1 vs. 3 & 2 vs. 3\\
\hline Class 1 & Win & Win & X & 2 & Win \\
\hline Class 2 & X & X & Win & 1 & X \\
\hline Class 3 & X & X & X & 0 & X \\
\hline
\end{tabular}
答案1
\cline
只需为缺失的水平线添加一个,并为第二行添加缺失的单元格。
% arara: pdflatex
\documentclass{article}
\usepackage{multirow}
\usepackage{array}
\begin{document}
\begin{tabular}{|l|*{5}{c|}}
\hline
\multirow{2}{*}{Category} & \multicolumn{3}{c|}{Binary Classifier} & \multirow{2}{*}{Votes} & \multirow{2}{*}{Result} \\\cline{2-4}
& 1 vs.\ 2 & 1 vs.\ 3 & 2 vs.\ 3 & & \\\hline
Class 1 & Win & Win & X & 2 & Win \\\hline
Class 2 & X & X & Win & 1 & X \\\hline
Class 3 & X & X & X & 0 & X \\\hline
\end{tabular}
\end{document}
答案2
省去一些麻烦,同时让它看起来更美观。以下是一些关于打印表格的一般建议。
- 不要使用垂直线,除非您的表格需要垂直阅读。
- 使用不同宽度的水平线。
booktabs
-package 有一些很好的预定义长度(以及一些非常好的建议),即\toprule
、\midrule
和\bottomrule
。 - 在顶部使用标题。(对于图形,标题可以位于其下方)。
- 不要写
\begin{tabular}{|l|c|c|c|c|c|}
那么多重复项。\begin{tabular}{|l|*{5}{c|}}
如果您确实想要垂直线,请使用,或者\begin{tabular}{l*{5}{c}}
不带垂直线。这样,您可以指定所需的 c 型列数,而不必逐一输入。
输出
代码
\documentclass[11pt]{article}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\caption{Some binary stuff\ldots}
\begin{tabular}{l*{5}{c}}
\toprule
\multirow{2}{*}{Category} & \multicolumn{3}{c} {Binary Classifier} & \multirow{2}{*}{Votes} & \multirow{2}{*}{Result}\\
& 1 vs. 2 & 1 vs. 3 & 2 vs. 3\\
\midrule
Class 1 & Win & Win & X & 2 & Win \\
Class 2 & X & X & Win & 1 & X \\
Class 3 & X & X & X & 0 & X \\
\bottomrule
\end{tabular}
\end{table}
\end{document}