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

如何在LaTeX中为跨行列(multirow)实现完整背景着色?

LaTeX表格multirow跨行列背景色完全填充解决方案

在使用mcmthesis文档类时,通过multirow实现跨行,搭配colortbl设置背景色会出现跨行列无法完全着色的问题。要实现跨行列区域完整着色,核心是给跨行对应的每一行第一列单元格手动添加背景色,配合multirow完成覆盖。

修改后的代码

\documentclass{mcmthesis}
\mcmsetup{CTeX = false,    % 使用 CTeX 套装时,设置为 true
    tcn = {0000000}, problem = \textcolor{red}{A},
    sheet = true, titleinsheet = true, keywordsinsheet = true,
    titlepage = false, abstract = false}

\usepackage{newtxtext}     % \usepackage{palatino}
\usepackage[backend=bibtex]{biblatex}   % for RStudio Complie
\usepackage{booktabs} % 用于制作三线表
\usepackage{tabularx} % 用于制作自适应表格
\usepackage{tocloft}
\usepackage{multirow}
\usepackage{colortbl} % 用于调整颜色
\usepackage{float}%提供float浮动环境
\usepackage{booktabs}%提供命令\toprule、\midrule、\bottomrule
\setlength{\cftbeforesecskip}{6pt}
\renewcommand{\contentsname}{\hspace*{\fill}\Large\bfseries Contents \hspace*{\fill}}

\title{Enjoy a Cozy and Green Bath}

\date{\today}

\begin{document}
    \begin{table}[htbp]
        \caption{\textbf{KPIs}}
        \centering
        \renewcommand{\arraystretch}{1.5} % 增加行高
        \begin{tabularx}{\textwidth}{|p{0.25\textwidth}|X|}
            
            \hline
            % 第一组跨行着色:给两行的第一列都加cellcolor
            \cellcolor[HTML]{BDD6EE}\multirow{2}{*}{Data1} 
            & \cellcolor[HTML]{BDD6EE} The weight vector calculated by \\
            \cellcolor[HTML]{BDD6EE}
            & \cellcolor[HTML]{BDD6EE} The score of maturity of DAS \\
            \hline
            % 第二组跨行着色
            \cellcolor[HTML]{BDD6EE}\multirow{2}{*}{Data1} 
            & \cellcolor[HTML]{BDD6EE} The weight vector calculated by \\
            \cellcolor[HTML]{BDD6EE}
            & \cellcolor[HTML]{BDD6EE} The score of maturity of DAS \\
            \hline
            \multirow{2}{*}{Data1} & The weight vector calculated by \\
            & The score of maturity of DAS \\
            \hline
        \end{tabularx}
    \end{table}
\end{document}

原理说明

multirow仅负责跨行文本的排版,不会自动填充跨行区域的背景色。\rowcolor只能给当前行着色,跨行的第二行第一列如果没有单独设置\cellcolor,就会显示空白。通过给跨行的每一行第一列都添加\cellcolor,再用multirow把文本覆盖在两行的背景色之上,就能实现和期望效果一致的完整跨行列着色。

内容的提问来源于stack exchange,提问作者actor 12

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:47:46