
Dieser Code lässt die Ränder in den farbigen Zellen verschwinden. Wie bekomme ich die Ränder zurück? Habe es versucht, hhline
aber es funktioniert nicht.
\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}
Antwort1
Dies ist ein bekanntes Problem mit \cline{...}
und colortbl
. In solchen Situationen hhline
sind Zeilen aus dem Paket hilfreich:
\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}
Antwort2
Das Paket nicematrix
enthält Tools zur Lösung dieser Art von Problemen.
{tabular}
In Ihrem Code habe ich „ by“ durch {NiceTabular}
den Schlüssel ersetzt color-inside
(dieser Schlüssel gibt an, dass die Tabelle Farbanweisungen enthalten soll).
Natürlich habe ich nicematrix
mehrere unbenutzte Pakete geladen (und entladen).
Die Ausgabe ist wie erwartet.
\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}
Allerdings ist das Ergebnis nicht perfekt (es gibt ein kleines Verbindungsproblem zwischen zwei Regeln).
nicematrix
verfügt über Tools für die Regeln, die dieses Problem vermeiden.
\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}