单元格背景颜色比表格中的中线(或水平线)长

单元格背景颜色比表格中的中线(或水平线)长

我在使用书本标签和颜色编辑表格时遇到了一个小问题。主要问题是单元格的背景颜色比中间线长,这不是什么大问题,但看起来很烦人。

桌子上的问题

我使用 midrules、toprules 和 bottomrules。表格的一行如下所示:

XXXXXX & xx\% & xx\% & xx\% & xx\% & \cellcolor[HTML]{CAFFCA}xx\% & \cellcolor[HTML]{CAFFCA}xx\% & \cellcolor[HTML]{CAFFCA}xx\% \\

我不确定如何扩展规则或如何缩短颜色。欢迎提出任何建议。

最低工作代码:

\documentclass{article}

\usepackage{booktabs}
\usepackage[table,xcdraw]{xcolor}
\usepackage{multirow}
\usepackage{adjustbox}

\begin{document}
    \begin{table}
          \centering
          \footnotesize
            \begin{tabular}{@{}l|rrrr@{}}
                \toprule
                \multicolumn{1}{c|}{\textbf{xx}} & \multicolumn{1}{c|}{\textbf{xx}} & \multicolumn{1}{c|}{\textbf{xx}} & \multicolumn{1}{c}{\textbf{xx}} & \multicolumn{1}{c}{\textbf{xx}} \\ \midrule
                xx & xx & xx & xx & \cellcolor[HTML]{FE0000}xx \\
                xx & xx & xx & xx & \cellcolor[HTML]{34FF34}xx \\ \bottomrule
            \end{tabular}
    \end{table}
\end{document}

答案1

在你的情况下也许是 TiZ 矩阵可以提供帮助。

<matrixname>-<rownumber>-<columnnumber>可以引用单个单元格。

\documentclass{article}

\usepackage{booktabs}
\usepackage[table,xcdraw]{xcolor}
\usepackage{multirow}
\usepackage{adjustbox}

\definecolor{myred}{HTML}{FE0000}
\definecolor{mygreen}{HTML}{34FF34}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{table}
\centering
\begin{tikzpicture}
    \matrix[
        matrix of nodes,
        row sep=0pt,
        column 1/.style={nodes={text width=3em, align=left}},
        row 1/.style={nodes={text width=3em, align=center}},
        nodes={text width=3em, align=center, font=\footnotesize}
    ] (M) {                
    xx & xx & xx & \textbf{xx} & \textbf{xx} \\[4pt]   
    xx & xx & xx & xx & |[fill=myred]|xx \\
    xx & xx & xx & xx & |[fill=mygreen]|xx \\ 
    };
    % horizontal lines
    \draw[thick] (M.north west) -- (M.north east);
    \draw[thick] (M.south west) -- (M.south east);
    \draw (M.west |- M-1-1.south west) -- (M-1-1.south west) -- (M-1-5.south east) -- (M.east |- M-1-5.south east);
    % vertical line
    \draw (M.north -| M-1-1.north east) -- (M-1-1.north east) -- (M-3-1.south east) -- (M.south -| M-3-1.south east);
\end{tikzpicture}
\end{table}
\end{document}

在此处输入图片描述

答案2

不要@{}用于彩色表格,修改MWE如下:

\documentclass{article}

\usepackage[table,xcdraw]{xcolor}
\usepackage{multirow}
\usepackage{adjustbox}
\usepackage{makecell}%

\begin{document}
    \begin{table}
          \centering
          \footnotesize
            \begin{tabular}{l|rrrr}
\Xhline{1pt}
                \multicolumn{1}{c|}{\textbf{xx}} & \multicolumn{1}{c|}{\textbf{xx}} & \multicolumn{1}{c|}{\textbf{xx}} & \multicolumn{1}{c}{\textbf{xx}} & \multicolumn{1}{c}{\textbf{xx}} \\ 
\Xhline{0.5pt}
                xx & xx & xx & xx & \cellcolor[HTML]{FE0000}xx \\
                xx & xx & xx & xx & \cellcolor[HTML]{34FF34}xx \\ 
\Xhline{1pt}
            \end{tabular}
    \end{table}
\end{document}

输出:

在此处输入图片描述

答案3

您的表格应该是什么样子不太清楚。考虑到表格末尾的r列类型和(导致您的问题的原因),您似乎在寻找以下内容:@{}

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs, 
            makecell}   % <--- new
\renewcommand\theadfont{\normalsize\bfseries}

\usepackage[table,xcdraw]{xcolor}
%\usepackage{multirow}
%\usepackage{adjustbox}

\begin{document}
    \begin{table}[ht]
\centering
\begin{tabular}{@{} l  rr r
    >{\columncolor{white}[\tabcolsep][0pt]}r
                @{}}
    \Xhline{\heavyrulewidth}
    \thead{xx}  & \thead{xx}    & \thead{xx}    & \thead{xx}  & \thead{xx}  \\ \Xhline{\lightrulewidth}
    xx & xx & xx & xx & \cellcolor[HTML]{FE0000}xx \\
    xx & xx & xx & xx & \cellcolor[HTML]{34FF34}xx \\
    \Xhline{\heavyrulewidth}
\end{tabular}
    \end{table}
\end{document}

相关内容