
У меня есть следующая таблица
\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}
Вывод следующий
Как вы заметили, строка заголовка имеет два серых цвета: один из \headrow и один из моего определения серого цвета.
Итак, как мне сделать заголовок того же цвета, что и в \headrow, и сделать слово Approch видимым?
Обратите внимание, что при использовании nicematrix я получаю следующую ошибку:
решение1
При использовании {NiceTabular}
параметра nicematrix
вы получите практически идеальный результат в программе просмотра PDF (например, вы не увидите тонких белых линий, которые вы видите в программах просмотра, использующих MuPDF, таких как SumatraPDF).
Однако вам понадобится несколько компиляций.
\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}
решение2
Простое решение состоит в добавлении \multirow{-2}
в начале следующей строки и добавлении \cellcolor{black!20}
внутри \multiro. Не связано: Я добавил пакет, caption
чтобы иметь интервал decant между подписью и таблицей. Я также удалил все ненужное \multicolumn{1}{c}{…}
в строке заголовков. Последнее замечание: не используйте center
внутри таблицы: это добавляет нежелательный вертикальный интервал к обычному интервалу таблицы environment. environment.
\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}