LaTeX表格使用multirow后竖线断裂的修复方法咨询
解决LaTeX表格multirow导致竖线断裂的问题
我尝试使用LaTeX生成表格,当前生成的表格如图所示:
对应的原LaTeX代码如下:
\begin{tabular}{c|cc|cc|cc} \toprule \multirow{3}{*}{Test Sequence} & \multicolumn{2}{c|}{Thomas et al.} & \multicolumn{2}{c|}{Pan et al.} & \multicolumn{2}{c}{Liu et al.} \\ & \multicolumn{2}{c|}{VTM-5.0} & \multicolumn{2}{c|}{VTM-6.0} & \multicolumn{2}{c}{VTM-10.0} \\ & BDBR(\%) & $\Delta{T}$(\%) & BDBR(\%) & $\Delta{T}$(\%) & BDBR(\%) & $\Delta{T}$(\%) \\ \hline \multirow{1}{*}{Class A} & \multirow{2}{*}{label-1} & \multirow{2}{*}{label-2} & \multirow{2}{*}{label-3} & \multirow{2}{*}{label-4} & \multirow{2}{*}{label-5} & \multirow{2}{*}{label-6} \\ 4096$\times2160$ \\ \hline Average & itemB & itemC & itemD & itemE & itemF & itemG \\ \bottomrule \end{tabular}
竖线断裂的核心原因是跨行的空行未补全单元格占位符,表格每一行的单元格数量必须和列定义一致,否则竖线会因为缺失单元格而断开。以下两种方法可以解决问题:
方法一:补全跨行空行的占位符
在multirow跨行的空行中,补全所有&占位符,确保每一行的单元格数量匹配列数:
\begin{tabular}{c|cc|cc|cc} \toprule \multirow{3}{*}{Test Sequence} & \multicolumn{2}{c|}{Thomas et al.} & \multicolumn{2}{c|}{Pan et al.} & \multicolumn{2}{c}{Liu et al.} \\ & \multicolumn{2}{c|}{VTM-5.0} & \multicolumn{2}{c|}{VTM-6.0} & \multicolumn{2}{c}{VTM-10.0} \\ & BDBR(\%) & $\Delta{T}$(\%) & BDBR(\%) & $\Delta{T}$(\%) & BDBR(\%) & $\Delta{T}$(\%) \\ \hline \multirow{2}{*}{Class A} & \multirow{2}{*}{label-1} & \multirow{2}{*}{label-2} & \multirow{2}{*}{label-3} & \multirow{2}{*}{label-4} & \multirow{2}{*}{label-5} & \multirow{2}{*}{label-6} \\ 4096$\times2160$ & & & & & & \\ % 补全所有&占位符 \hline Average & itemB & itemC & itemD & itemE & itemF & itemG \\ \bottomrule \end{tabular}
方法二:用makecell合并单元格文本(更简洁)
导入makecell包后,使用\makecell命令把两行文本合并到一个单元格,避免使用multirow跨行,从根源上避免竖线断裂:
% 先在导言区导入包 \usepackage{makecell} \begin{tabular}{c|cc|cc|cc} \toprule \multirow{3}{*}{Test Sequence} & \multicolumn{2}{c|}{Thomas et al.} & \multicolumn{2}{c|}{Pan et al.} & \multicolumn{2}{c}{Liu et al.} \\ & \multicolumn{2}{c|}{VTM-5.0} & \multicolumn{2}{c|}{VTM-6.0} & \multicolumn{2}{c}{VTM-10.0} \\ & BDBR(\%) & $\Delta{T}$(\%) & BDBR(\%) & $\Delta{T}$(\%) & BDBR(\%) & $\Delta{T}$(\%) \\ \hline \makecell{Class A \\ 4096$\times2160$} & label-1 & label-2 & label-3 & label-4 & label-5 & label-6 \\ \hline Average & itemB & itemC & itemD & itemE & itemF & itemG \\ \bottomrule \end{tabular}
内容的提问来源于stack exchange,提问作者Jui-Chen Lo
相关产品推荐
相关产品推荐

