单元格颜色与单元格边框重叠

单元格颜色与单元格边框重叠

此代码使彩色单元格中的边框消失。如何恢复边框?我试过了hhline,但不起作用。

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{graphicx}
\begin{document}
\begin{table}
\resizebox{\textwidth}{!}{%
\begin{tabular}{lll}
\multicolumn{1}{c}{\textbf{Table}} & \multicolumn{1}{c}{\textbf{}}                              &                       \\
                               & a                                                          & b                     \\ \cline{2-3} 
\multicolumn{1}{l|}{a}             & \multicolumn{1}{l|}{\cellcolor[HTML]     {FE0000}\textit{}} & \multicolumn{1}{l|}{} \\ \hline
\multicolumn{1}{|l|}{\textit{b}}   & \multicolumn{1}{l|}{\cellcolor[HTML]        {CD9934}}          & \multicolumn{1}{l|}{} \\ \hline
\end{tabular}%
}
\caption{My caption}
\label{my-label}
\end{table}
\end{document}

答案1

Thuis 是 和 的已知问题\cline{...}colortbl在这种情况下,来自包的行hhline很方便:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{graphicx}
\usepackage{hhline}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}
\begin{table}
\resizebox{\textwidth}{!}{%
\begin{tabular}{r|c|c|}
\mc{\textbf{Table}}     & \mc{}                     & \mc{}     \\
\mc{}                   & \mc{a}                    & \mc{b}    \\ 
    \hhline{~|-|-|}
\textit{a}              & \cellcolor[HTML]{FE0000}  &           \\ 
    \hhline{~|-|-|}
\textit{b}              & \cellcolor[HTML]{CD9934}  &            \\ 
    \hhline{~|-|-|}
\end{tabular}%
}

or 

\resizebox{\textwidth}{!}{%
\begin{tabular}{|r|c|c|}
\mc{\textbf{Table}}     & \mc{}                     & \mc{}     \\
\mc{}                   & \mc{a}                    & \mc{b}    \\
    \hhline{-|-|-|}
\textit{a}              & \cellcolor[HTML]{FE0000}  &           \\
    \hhline{-|-|-|}
\textit{b}              & \cellcolor[HTML]{CD9934}  &            \\
    \hhline{-|-|-|}
\end{tabular}%
}
\caption{My caption}
\label{my-label}
\end{table}
\end{document}

在此处输入图片描述

答案2

该软件包中nicematrix有专门用于解决此类问题的工具。

在您的代码中,我已用键替换了{tabular}{NiceTabular}color-inside键指定表格中将有颜色说明)。

当然,我已经加载nicematrix(并卸载了几个未使用的包)。

输出符合预期。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{table}
\resizebox{\textwidth}{!}{%
\begin{NiceTabular}{lll}[color-inside]
\multicolumn{1}{c}{\textbf{Table}} & \multicolumn{1}{c}{\textbf{}} & \\
                          & a                                                & b                     \\ \cline{2-3} 
\multicolumn{1}{l|}{a}    & \multicolumn{1}{l|}{\cellcolor[HTML]{FE0000}\textit{}} & \multicolumn{1}{l|}{} \\ \hline
\multicolumn{1}{|l|}{\textit{b}}   & \multicolumn{1}{l|}{\cellcolor[HTML]{CD9934}}    & \multicolumn{1}{l|}{} \\ \hline
\end{NiceTabular}%
}
\caption{My caption}
\label{my-label}
\end{table}

\end{document}

第一个代码的输出

但是输出结果并不完美(两个规则之间的连接存在小问题)。

nicematrix有可以避免该问题的规则工具。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{table}
\resizebox{\textwidth}{!}{%
\begin{NiceTabular}{lll}[color-inside]
\Block[c]{}{\textbf{Table}} \\
           & a                        & b \\ 
a          & \Block[hvlines]{1-2}{} \cellcolor[HTML]{FE0000} \\
\Block[hvlines]{1-3}{}
\textit{b} & \cellcolor[HTML]{CD9934} \\
\end{NiceTabular}%
}
\caption{My caption}
\label{my-label}
\end{table}

\end{document}

第二段代码的输出

相关内容