在自定义长表标题定义中,Cellcolor 不会为整个单元格着色

在自定义长表标题定义中,Cellcolor 不会为整个单元格着色

longtable为了在具有灰色背景的多列表格单元格中创建标题,我更改了\LT@makecaption原始包。

\documentclass[12pt]{article}

\usepackage{longtable}
\usepackage{color}
\usepackage{xcolor}
\usepackage{colortbl}

% redefine longtable caption
\makeatletter
\def\LT@makecaption#1#2#3{%
    \multicolumn{\LT@cols}{|c|}{\cellcolor{gray!40}\textbf{#2: }\textbf{#3}}
}
\makeatother

\begin{document}

\begin{longtable}{|c|c|}
    \hline
    \caption{My Table Caption}\label{table1} \\
    \hline
    1 & 2\\ \hline
    3 & 4\\ \hline
\end{longtable}

\end{document}

通过查看编译后的版本,它不会用灰色背景为整个表格宽度着色。LaTeX 在单元格的右侧添加了一个小的空白区域(边距/填充?)。

在此处输入图片描述

我怎样才能避免这种情况,让整个表格宽度的单元格宽度和右侧的右边框着色,而不使用任何边距/填充?

答案1

您在代码中明确添加了两个空格标记,如果没有它们,您将得到

在此处输入图片描述

\documentclass[12pt]{article}

\usepackage{longtable}
\usepackage{color}
\usepackage{xcolor}
\usepackage{colortbl}

% redefine longtable caption
\makeatletter
\def\LT@makecaption#1#2#3{%
    \multicolumn{\LT@cols}{|c|}{\cellcolor{gray!40}\textbf{#2: }\textbf{#3}}%%%
}
\makeatother

\begin{document}

\begin{longtable}{|c|c|}
    \hline
    \caption{My Table Caption}\label{table1}\\
    \hline
    1 & 2\\ \hline
    3 & 4\\ \hline
\end{longtable}

\end{document}

相关内容