Wie erstelle ich eine farbige Kopfzeile in einer Tabelle?

Wie erstelle ich eine farbige Kopfzeile in einer Tabelle?

Ich habe folgende Tabelle

\newcommand{\headrow}{\rowcolor{black!20}}
\definecolor{Gray}{gray}{0.90}
\begin{table}[ht]\rowcolors{1}{Gray}{white}
\begin{center}
\caption{Test Table}
 \begin{tabular}{l|cccccccc}
\hline
\headrow
\multirow{2}{1.7cm}{\textbf{Approach}}& \multicolumn{8}{c}{\centering \textbf{Test}}\\
\cline{2-9} 
& \multicolumn{1}{c}{\textbf{A}} & \multicolumn{1}{c}{\textbf{B}}& \multicolumn{1}{c}{\textbf{C}} & \multicolumn{1}{c}{\textbf{D}}& \multicolumn{1}{c}{\textbf{E}} & \multicolumn{1}{c}{\textbf{F}}
& \multicolumn{1}{c}{\textbf{G}}& \multicolumn{1}{c}{\textbf{H}}\\
    \hline

   App1 & &&  && &&&
    \\ 
  App2 && &&& &&&
    \\ 
   \hline
    \end{tabular}
   
 \end{center}
\end{table}

Die Ausgabe ist die folgende

Bildbeschreibung hier eingeben

Wie Sie sehen, hat die Kopfzeile zwei Grautöne, einen von \headrow und einen aus meiner Definition der Graufarbe.

Wie kann ich also für die Kopfzeile dieselbe Farbe wie für \headrow festlegen und das Wort „Approch“ sichtbar machen?

Beachten Sie, dass bei Verwendung der Nicematrix der folgende Fehler auftritt Bildbeschreibung hier eingeben

Antwort1

Mit {NiceTabular}erhalten nicematrixSie im PDF-Viewer ein nahezu perfektes Ergebnis (Sie sehen beispielsweise nicht die dünnen weißen Linien, die Sie in Viewern sehen, die MuPDF verwenden, wie z. B. SumatraPDF).

Allerdings benötigt man dazu mehrere Zusammenstellungen.

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\definecolor{Gray}{gray}{0.90}
\begin{table}[ht]
\caption{Test Table}
\begin{NiceTabular}{l|cccccccc}%
  [code-before = \rowcolors{3}{}{Gray} \rowcolor{black!20}{1,2}]
\hline
\Block{2-1}{\textbf{Approach}} & \multicolumn{8}{c}{\textbf{Test}}\\
\cline{2-9} 
& \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}
& \textbf{G} & \textbf{H} \\
\hline
App1 \\
App2 \\
\hline
\end{NiceTabular}
\end{table}
\end{document}

Ausgabe des obigen Codes

Antwort2

Eine einfache Lösung besteht darin, \multirow{-2}am Anfang der folgenden Zeile hinzuzufügen und \cellcolor{black!20}innerhalb von \multiro hinzuzufügen. Unabhängig davon: Ich habe das captionPaket hinzugefügt, um einen dekantierten Abstand zwischen Überschrift und Tabelle zu haben. Ich habe auch alles Unnötige \multicolumn{1}{c}{…}in der Überschriftenzeile entfernt. Letzte Anmerkung: Verwenden Sie nicht centerinnerhalb einer Tabelle: Es fügt dem normalen Abstand der Tabellenumgebung unerwünschten vertikalen Abstand hinzu. Umgebung.

\documentclass{article}
\usepackage{multirow, caption}
\usepackage[table]{xcolor}
\newcommand{\headrow}{\rowcolor{black!20}}

\begin{document}

\definecolor{Gray}{gray}{0.90}
\begin{table}[ht]\rowcolors{3}{}{Gray}
\setlength{\extrarowheight}{2pt}
\centering
\caption{Test Table}
 \begin{tabular}{l|*{8}{c}}
\hline
\headrow & \multicolumn{8}{c}{\centering \textbf{Test}}\\
\cline{2-9}
\headrow \multirow{-2}{1.7cm}{\textbf{Approach}} & \textbf{A} & \textbf{B}& \textbf{C} & \textbf{D}& \textbf{E} & \textbf{F}
& \textbf{G}& \textbf{H}\\
    \hline

   App1 & && && &&&
    \\
  App2 && &&& &&&
    \\
   \hline
    \end{tabular}
\end{table}
\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen