Latex \cmidrule影响单元格高度和纵向居中问题

起源: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的博客-CSDN博客

将\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在垂直方向上终于居中了

猜你喜欢

转载自blog.csdn.net/qq_42276781/article/details/129822506