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

LaTeX longtable第一列设为灰色后水平线在彩色区域不显示的问题求助

解决Longtable第一列背景色覆盖水平线的问题

这问题我太熟悉了!当你给longtable的列添加背景色时,columncolor默认会把颜色填充到列的内外边距区域,刚好覆盖住了表格的水平线,导致线条看起来“消失”在灰色背景里。下面给你两个靠谱的解决方案:

方法1:调整columncolor的填充范围

通过修改columncolor的可选参数,让背景色不覆盖表格线的区域。把第一列的格式从>{\columncolor{lightgray}}p{0.2\linewidth}改成>{\columncolor{lightgray}[0pt][\tabcolsep]}p{0.2\linewidth},这里的[0pt][\tabcolsep]指定了背景色左边不超出列边界,右边保持默认的内边距,这样水平线就不会被覆盖了。

修改后的完整代码:

\documentclass[a4paper,11pt,english]{report}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage[table,xcdraw]{xcolor}
\usepackage{lipsum} % just for dummy text- not needed for a longtable
\begin{document}
\lipsum[1]
\lipsum[1]
\lipsum[1]
\definecolor{lightgray}{HTML}{EFEFEF}
\begin{longtable}{| >{\columncolor{lightgray}[0pt][\tabcolsep]}p{0.2\linewidth} | p{0.175\linewidth} |}
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
foo & bar \\
\hline
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable}
\end{longtable}
Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}

方法2:使用hhline包绘制不受背景色影响的线条

如果调整填充范围的方法不符合你的需求,可以引入hhline包,它专门用来处理带背景色的表格线条,确保线条能显示在背景色上方。

步骤如下:

  • 导入hhline包:\usepackage{hhline}
  • 把所有的\hline替换成\hhline{|--|}(这里的-对应每一列的线条,|对应竖线)

修改后的完整代码:

\documentclass[a4paper,11pt,english]{report}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage[table,xcdraw]{xcolor}
\usepackage{hhline} % 新增hhline包
\usepackage{lipsum} % just for dummy text- not needed for a longtable
\begin{document}
\lipsum[1]
\lipsum[1]
\lipsum[1]
\definecolor{lightgray}{HTML}{EFEFEF}
\begin{longtable}{| >{\columncolor{lightgray}}p{0.2\linewidth} | p{0.175\linewidth} |}
\hhline{|--|} % 替换\hline
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
foo & bar \\
\hhline{|--|}
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable}
\end{longtable}
Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}

两种方法都能完美解决水平线被灰色背景覆盖的问题,你可以根据自己的喜好选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:37:41