起源:latex中表格的横线如何不连续,即“如何使下面的这个表格中,Column1和Column2下方的横线不连续”。
\begin{table*}[htbp]
\caption{A}\label{B}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ccccc}
\hline
\multirow{2}{*}{Column0} & \multicolumn{2}{c}{Column1} & \multicolumn{2}{c}{Column2} \\
\cline{2-5}
~ & subcolumn1 & subcolumn2 & subcolumn1 & subcolumn2 \\
\hline
Row1 & element11 & element12 &element13 & element14 \\
Row2 & element21 & element22 &element23 & element24 \\
Row3 & element31 & element32 &element33 & element34 \\
\hline
Row4 & element41 & element42 &element43 & element44 \\
\hline
\end{tabular}
\end{table*}
方案一 多次使用\cline
\begin{table*}[htbp]
\caption{A}\label{B}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ccccc}
\hline
\multirow{2}{*}{Column0} & \multicolumn{2}{c}{Column1} & \multicolumn{2}{c}{Column2} \\
\cline{2-3}\cline{4-5}
~ & subcolumn1 & subcolumn2 & subcolumn1 & subcolumn2 \\
\hline
Row1 & element11 & element12 &element13 & element14 \\
Row2 & element21 & element22 &element23 & element24 \\
Row3 & element31 & element32 &element33 & element34 \\
\hline
Row4 & element41 & element42 &element43 & element44 \\
\hline
\end{tabular}
\end{table*}
失败。虽然分别使用了两次\cline,但是最终Column1和Column2下方的横线仍然连在一起。和\cline{2-5} 的效果没有区别。
方案二 使用\cmidrule代替\cline
使用\cmidrule来替换\cline。注意需要在tex文件开头使用\usepackage{booktabs}导入booktabs包
\begin{table*}[htbp]
\caption{A}\label{B}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ccccc}
\hline
\multirow{2}{*}{Column0} & \multicolumn{2}{c}{Column1} & \multicolumn{2}{c}{Column2} \\
\cmidrule(lr{0pt}){2-3} \cmidrule(lr{0pt}){4-5}
~ & subcolumn1 & subcolumn2 & subcolumn1 & subcolumn2 \\
\hline
Row1 & element11 & element12 &element13 & element14 \\
Row2 & element21 & element22 &element23 & element24 \\
Row3 & element31 & element32 &element33 & element34 \\
\hline
Row4 & element41 & element42 &element43 & element44 \\
\hline
\end{tabular}
\end{table*}
虽然横线不连续了,但是可以看到Column0在垂直方向上并没有和右边的横线对齐
方案二改进版 修改\multirow
参考博客 Latex 跨行跨列表格_cmidrule_涛O_O的博客-优快云博客
将\multirow{2}{*}{Column0}改为\multirow{2.4}{*}{Column0}
将2换成2.2,2.3,2.4具体需要自己调节。
\begin{table*}[htbp]
\caption{A}\label{B}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ccccc}
\hline
\multirow{2.4}{*}{Column0} & \multicolumn{2}{c}{Column1} & \multicolumn{2}{c}{Column2} \\
\cmidrule(lr{0pt}){2-3} \cmidrule(lr{0pt}){4-5}
~ & subcolumn1 & subcolumn2 & subcolumn1 & subcolumn2 \\
\hline
Row1 & element11 & element12 &element13 & element14 \\
Row2 & element21 & element22 &element23 & element24 \\
Row3 & element31 & element32 &element33 & element34 \\
\hline
Row4 & element41 & element42 &element43 & element44 \\
\hline
\end{tabular}
\end{table*}
可以看到Column0在垂直方向上终于居中了