此代码使彩色单元格中的边框消失。如何恢复边框?我试过了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}