LaTeX表格中如何实现跨多行的准确率数值在单元格内居中对齐
LaTeX表格跨行单元格垂直居中方案
问题描述
使用LaTeX排版文档时遇到表格格式问题:表格中Accuracy(%)列的数值不与Labels列下的0、1两个分类标签单独关联,需要将该数值在其占据两行高度的单元格内垂直居中显示,暂不清楚具体实现方法。
当前排版效果:
问题复现代码
\documentclass[12 pt, letterpaper, twoside, openright]{book} \usepackage{amsmath} \usepackage{multirow} \usepackage{enumitem} \usepackage{booktabs, makecell, longtable} \usepackage{stackengine} \usepackage{tabularx} \usepackage{caption} \usepackage{subcaption} \begin{document} \begin{table}[H] \caption {Logistic Regression and Random Forest Performances} \centering \begin{tabular}{llssssssss} \toprule \multirow{2}{*}{Patient} &\multirow{2}{*}{Labels} & \multicolumn{4}{c}{Logistic Regression} & \multicolumn{4}{c}{Random Forest} \\ && {Accuracy (\%)}&{$Prec$} & {$Rec$} & {$F1$} & {Accuracy (\%)}& {$Prec$} & {$Prec$} & {$F1$} \\ \midrule \multirow{2}{3em}{F0110} & 0 & 55 & 0.59 & 0.62 & 0.61 & 55& 0.70 & 0.76 & 0.72 \\ & 1 & & 0.58 & 0.55 & 0.57& & 0.72 & 0.66 & 0.69 \\ \hline \bottomrule \end{tabular} \label{tab:tab1} \end{table} \end{document}
修复方法
- 问题原因:两个Accuracy(%)列的数值
55仅填写在Labels=0对应的第一行单元格内,未做跨行声明,因此默认顶格显示在第一行,无法在两行高度内垂直居中。 - 具体操作:参照Patient列的跨行逻辑,使用
\multirow命令将Accuracy列的数值设置为跨2行的单元格,第二行对应的Accuracy位置留空即可自动垂直居中。
修正后的数据行代码:
\multirow{2}{3em}{F0110} & 0 & \multirow{2}{*}{55} & 0.59 & 0.62 & 0.61 & \multirow{2}{*}{55}& 0.70 & 0.76 & 0.72 \\ & 1 & & 0.58 & 0.55 & 0.57& & 0.72 & 0.66 & 0.69 \\
微调技巧:如果编译后发现垂直位置存在细微偏差,可以给
\multirow增加可选偏移参数,例如\multirow{2}{*}[-2pt]{55},负数代表向上偏移,正数代表向下偏移,根据实际显示效果调整数值即可。
内容的提问来源于stack exchange,提问作者sara camp
相关产品推荐
相关产品推荐

