![在我的表格中设置一些水平边框](https://linux22.com/image/298271/%E5%9C%A8%E6%88%91%E7%9A%84%E8%A1%A8%E6%A0%BC%E4%B8%AD%E8%AE%BE%E7%BD%AE%E4%B8%80%E4%BA%9B%E6%B0%B4%E5%B9%B3%E8%BE%B9%E6%A1%86.png)
我有一张大桌子,我想放一些东西,以便将桌子分成三个部分。
这是我的表格:
\begin{center}
\begin{large}
\begin{tabular}{|l|l||l|l|l|l|l|l|l|l|}
\hline
\multicolumn{10}{|c|}{Performance of RKD-forest vs FLANN} \\
\hline
Program & N & dim & p\_l & \#trees & max\_l & $\epsilon$ & miss & error & Speedup \\ \hline
\multirow{1}{*}{RKD} & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\hline
\multirow{1}{*}{RKD} & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\hline
...
\multirow{1}{*}{RKD} & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\hline
\multirow{1}{*}{RKD} & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\hline
...
\multirow{1}{*}{RKD} & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
\hline
\multirow{1}{*}{RKD} & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
\hline
...
\end{tabular}
\end{large}
\end{center}
所以,我想在留下空白行的地方放一些东西来分隔表格(当然我可以创建另一个表格),我只是想看看它是什么样子的。
答案1
这个例子使用 来\multicolumn{10}{c}{}
作为分隔符,中间用灰色空间填充。第二个例子没有使用彩色分隔符。
\documentclass{book}
\usepackage{multirow}
\usepackage{xcolor}
\usepackage{colortbl}
\begin{document}
\begin{center}
\large
\begin{tabular}{|*{10}{l|}}%
\hline
\multicolumn{10}{|c|}{Performance of RKD-forest vs FLANN} \\
\hline
Program & N & dim & p\_l & \#trees & max\_l & $\epsilon$ & miss & error & Speedup \\ \hline
RKD & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\hline
RKD & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\hline
\multicolumn{10}{c}{\cellcolor{lightgray}} \tabularnewline
\hline
RKD & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\hline
RKD & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\hline
\multicolumn{10}{c}{\cellcolor{lightgray}} \tabularnewline
\hline
RKD & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
\hline
RKD & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
\hline
\end{tabular}
\end{center}
\begin{center}
\large
\begin{tabular}{|*{10}{l|}}%
\hline
\multicolumn{10}{|c|}{Performance of RKD-forest vs FLANN} \\
\hline
Program & N & dim & p\_l & \#trees & max\_l & $\epsilon$ & miss & error & Speedup \\ \hline
RKD & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\hline
RKD & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\hline
\multicolumn{10}{c}{} \tabularnewline
\hline
RKD & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\hline
RKD & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\hline
\multicolumn{10}{c}{} \tabularnewline
\hline
RKD & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
\hline
RKD & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
\hline
\end{tabular}
\end{center}
\begin{center}
\large
\renewcommand{\arraystretch}{1.2}%
\begin{tabular}{*{10}{l}}%
\multicolumn{10}{c}{Performance of RKD-forest vs FLANN} \\[2ex]
\hline
Program & N & dim & p\_l & \#trees & max\_l & $\epsilon$ & miss & error & Speedup \\ [2ex]
\hline
RKD & 1.000 & 10.000 & 2 & 4 & 2 & & 0.22 & 0.001 & 218.6 \\
RKD & 1.000 & 10.000 & 2 & 4 & 2 & \multirow{-2}{*}{0} & 0.22 & 0.001 & 218.6 \\
\hline
\multicolumn{10}{c}{} \tabularnewline
\hline
RKD & 10.000 & 10.000 & 2 & 4 & 2 & & 0.492 & 0.0015 & 3489.6 \\
RKD & 10.000 & 10.000 & 2 & 4 & 2 & \multirow{-2}{*}{0} & 0.492 & 0.0015 & 3489.6 \\
\hline
\multicolumn{10}{c}{} \tabularnewline
\hline
RKD & 100.000 & 100 & 50 & 1 & 2 & & 0.568 & 0.0068 & 836.8 \\
RKD & 100.000 & 100 & 50 & 1 & 2 & \multirow{-2}{*}{0} & 0.568 & 0.0068 & 836.8 \\
\hline
\end{tabular}
\end{center}
\end{document}
答案2
删除每个部分内的所有垂直线和水平线,以便两条简单的水平线足以将表格清楚地分成三个部分。
或者,您也可以在行尾使用一些类似的东西\\[2ex]
来添加一些垂直空间。
我还删除了多列和多行单元格。保持表格尽可能简单。
但最好使用\hline
软件包中的相应命令来更改剩余的 s booktabs
。例如:
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\centering Performance of RKD-forest vs FLANN\\[10pt]
\begin{tabular}{llllllllll}
\toprule
Program & N & dim & p\_l & \#trees & max\_l & $\epsilon$ & miss & error & Speedup \\
\midrule\addlinespace[2ex]
RKD & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
RKD & 1.000 & 10.000 & 2 & 4 & 2 & 0 & 0.22 & 0.001 & 218.6 \\
\midrule\addlinespace[2ex]
RKD & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
RKD & 10.000 & 10.000 & 2 & 4 & 2 & 0 & 0.492 & 0.0015 & 3489.6 \\
\midrule\addlinespace[2ex]
RKD & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.8 \\
RKD & 100.000 & 100 & 50 & 1 & 2 & 0 & 0.568 & 0.0068 & 836.\\
\bottomrule
\end{tabular}
\end{document}
当然,\midrule
plus\addlinespace[2ex]
只是一个例子,您可以随意使用规则、除 2ex 之外的任何其他垂直空间(包括无)或其他类型的规则。使用该包,arydshln
您还可以使用自定义虚线,以便您可以输入一些类似的东西:
\addlinespace[.2ex]\hdashline[3pt/5pt]\addlinespace[.2ex]
但是,对于自定义实线 + 间距,使用起来更容易\specialrule
(从booktabs
包中)。例如:
\specialrule{.3pt}{.3ex}{.3ex}
哪一个更好是一个品味问题,但请注意,许多编辑和许多 TeX.SE 用户讨厌带有额外规则的表格(我也是,但问题是“设置边界”......)
答案3
一些变化和改进(至少在我看来)是使用 a caption
,S
带有小数点逗号的列的列类型和\cmidrule
s (在适当的地方)而不是\midrule
s :
\documentclass{article}
\usepackage{array, multirow, booktabs, caption}
\usepackage{siunitx}
\usepackage{geometry}
\captionsetup{font = small, labelfont = sc}
\setlength\aboverulesep{1ex}
\setlength\belowrulesep{2ex}
\begin{document}
\begin{table}\centering
\caption{Performance of RKD-forest vs FLANN}
\begin{tabular}{l*{2}{S[table-format=3.3]}S[table-format=2.0]*{3}{c}S[table-format=1.3]S[table-format=1.4]S[table-format=4.1]}
\toprule
Program & {N} & {dim} & {p\_l} & {\#trees} & {max\_l} & {$\epsilon$} & {miss} & {error} & {Speedup} \\
\cmidrule[\lightrulewidth]{1-6}\cmidrule[\lightrulewidth]{8-10}
RKD & 1.000 & 10.000 & 2 & 4 & 2 &\multirow{6}{1em}[-3ex]{0} & 0.22 & 0.001 & 218.6 \\
RKD & 1.000 & 10.000 & 2 & 4 & 2 & & 0.22 & 0.001 & 218.6 \\
\cmidrule(lr){1-6}\cmidrule(r){8-10}
RKD & 10.000 & 10.000 & 2 & 4 & 2 & & 0.492 & 0.0015 & 3489.6 \\
RKD & 10.000 & 10.000 & 2 & 4 & 2 & & 0.492 & 0.0015 & 3489.6 \\
\cmidrule(lr){1-6}\cmidrule(r){8-10}
RKD & 100.000 & 100 & 50 & 1 & 2 & & 0.568 & 0.0068 & 836.8 \\
RKD & 100.000 & 100 & 50 & 1 & 2 & & 0.568 & 0.0068 & 836.\\
\bottomrule
\end{tabular}
\end{table}
\end{document}