You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:27:32