Заполнить часть табличной* строки цветом

Заполнить часть табличной* строки цветом

Я пытаюсь использовать tabular*для генерации таблицы, поскольку я хотел бы также использовать и т. д midrule. bottomrule, чтобы получить различную толщину линий. Однако в моей попытке ниже, поскольку я также пытаюсь раскрасить разделы таблицы, я получаю пробелы в цвете, как это:

введите описание изображения здесь

Я посмотрел на этисвязанные решенияно хотел бы узнать, есть ли более простое решение, так как я все еще не получаю желаемого результата.

Вот мой код:

\documentclass{article}
\usepackage{float}
\usepackage{xcolor,colortbl,tabularx}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}

\begin{table}[H]
\centering
  \caption{Not too good looking table here.\label{tab:table1}}
  \footnotesize
% Table generated by Excel2LaTeX from sheet 'Sheet2'
    \begin{tabularx}{\textwidth}{c @{\extracolsep{\fill}} c|ccc}
    %\begin{tabular*}{cc|cc}
    %\toprule
    \hline
    \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
   Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
   %\midrule
    \hline
    FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
    FLTR0 & 80    & 80    & FLTR0 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
    FLTR6 & 6     & 44    & FLTR4 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
    FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
    \hline
    %\bottomrule
    \end{tabularx}%
    %\end{tabular*}
\end{table}

\end{document}

Как сделать так, чтобы цвет заполнял ячейки без пробелов и в то же время использовал и т. д toprule. midrule?

решение1

  • Использование @{\extracolsep{\fill}}вставки дополнительных пробелов между столбцами, которые не могут быть окрашены. \rowcolor{...} Таким образом, способ использования tabularxявляется многообещающим, но в нем не следует использовать@{\extracolsep{\fill}}
  • При использовании tabularxтребуется, чтобы хотя бы один столбец был типомX
  • Если все столбцы могут иметь одинаковую ширину, то код для вашей таблицы tabularxможет быть следующим:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}

\begin{document}

\begin{table}[ht]
\centering
  \caption{Not too good looking table here.\label{tab:table1}}
  \footnotesize
    \begin{tabularx}{\textwidth}{CC|CC}
\hline
\multicolumn{2}{c|}{\textbf{Test1}} 
                    & \multicolumn{2}{c}{\textbf{Test2}}    \\
Test11  & Test12    & Test13    & Test14                    \\
    \hline
FLTR2   & 2         & 40        & FLTR0                     \\
FLTR0   & 80        & 80        & FLTR0                     \\
\rowcolor{red!30} 
\textcolor{purple}{FLTR0} 
        & \textcolor{purple}{160} 
                    &  \textcolor{purple}{204} 
                                & \textcolor{purple}{FLTR4} \\
FLTR6   & 6         & 44        & FLTR4                     \\
\rowcolor{red!30}
\textcolor{purple}{FLTR16} 
        & \textcolor{purple}{16} 
                    & \textcolor{purple}{43¸} 
                                & \textcolor{purple}{FLTR3} \\
FLTR4   & 44        & 6         & FLTR6                     \\
    \hline
    \end{tabularx}%
\end{table}

\end{document}

введите описание изображения здесь

По моему мнению, в этой таблице слишком много пустого пространства между содержимым колонок. Будет лучше, если вы соизволите уменьшить ширину таблицы.

Редактировать: Примером более узкой таблицы с цветными только некоторыми ячейками в первом и втором столбце может быть использование tabularrayпакетов siunitxMWE:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx, varwidth}
\NewTableCommand\SCC[2]{\SetCell{bg=#1, fg=#2}}

\begin{document}

    \begin{table}[ht]
    \centering
\caption{Not too good looking table here.}
\label{tab:table1}
    \begin{tblr}{colspec={Q[l] Q[c, si={table-format=3.0}] |
                          Q[c, si={table-format=3.0}] Q[l] },
                 row{1} = {font=\bfseries, guard},
                 row{2} = {guard}
                 }
    \toprule
\SetCell[c=2]{c}    Test 1
        &           & \SetCell[c=2]{c}    Test 2    
                                &                   \\
Test11  & Test12    & Test13    & Test14            \\
    \midrule
FLTR2   &   2       & 40        & FLTR0             \\
FLTR0   &   80      & 80        & FLTR0             \\
\SetRow{bg=red!20, fg=purple} 
FLTR0   &   160     &   204     &   FLTR4           \\     
FLTR6   &   6       &   44      &   FLTR4           \\
\SCC{red!20}{purple}
FLTR16  & \SCC{red!20}{purple}
            16      &   43      &   FLTR3           \\
FLTR4   &   44      &   6       & FLTR6             \\
    \bottomrule
    \end{tblr}%
\end{table}

\end{document}

введите описание изображения здесь

решение2

может быть, это поможет — вопросы приветствуются

МВЭ

\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}
    
    \begin{NiceTabular}{c @{\extracolsep{\fill}} c|ccc}[colortbl-like]
        \toprule
    \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
        Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
        \midrule
        FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
        FLTR0 & 80    & 80    & FLTR0 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
        FLTR6 & 6     & 44    & FLTR4 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
        FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
        \bottomrule
    \end{NiceTabular}
    
\end{document}

введите описание изображения здесь

Чтобы развернуть таблицу на всю ее часть text width--укажите X columnsаналогичные столбцыtabularx

\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}
    
    \begin{NiceTabular}{c X[c]|c X[c]}[colortbl-like]
        \toprule
        \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
        Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
        \midrule
        FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
        FLTR0 & 80    & 80    & FLTR0 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
        FLTR6 & 6     & 44    & FLTR4 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
        FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
        \bottomrule
    \end{NiceTabular}
    
\end{document}

введите описание изображения здесь

решение3

Заменив {tabular*} на {NiceTabular*} nicematrixс ключом colortbl-like, вы получите следующее:

\documentclass{article}
\usepackage{float}
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}

\begin{table}[H]
\centering
  \caption{Not too good looking table here.\label{tab:table1}}
  \footnotesize
% Table generated by Excel2LaTeX from sheet 'Sheet2'
    \begin{NiceTabular*}{\textwidth}{c @{\extracolsep{\fill}} c|ccc}[colortbl-like]
    %\begin{tabular*}{cc|cc}
    %\toprule
    \hline
    \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
   Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
   %\midrule
    \hline
    FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
    FLTR0 & 80    & 80    & FLTR0 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
    FLTR6 & 6     & 44    & FLTR4 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
    FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
    \hline
    %\bottomrule
    \end{NiceTabular*}%
    %\end{tabular*}
\end{table}

\end{document}

Вывод кода выше

Обратите внимание, что в преамбуле вашей таблицы указано 5 столбцов, но вы использовали только 4.

Связанный контент