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
相关产品推荐
相关产品推荐

