Rellenar fila tabular* parcial con color

Rellenar fila tabular* parcial con color

Estoy intentando utilizar tabular*para generar una tabla, ya que me gustaría utilizar también midrule, bottomruleetc. para obtener los diferentes grosores de línea. Sin embargo, en mi intento a continuación, como también intento colorear secciones de la tabla, obtengo espacios en colores como este:

ingrese la descripción de la imagen aquí

He mirado estossoluciones relacionadaspero quería saber si existe una solución más sencilla para usar aquí, ya que todavía no obtengo el resultado deseado.

Este es mi código:

\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}

¿Cómo conseguir que el color llene las celdas sin espacios y al mismo tiempo utilizar toprule, midruleetc.?

Respuesta1

  • El uso de @{\extracolsep{\fill}}insertar espacios adicionales entre columnas que no pueden ser coloreados. Por \rowcolor{...} lo tanto, una forma de usar tabularxes prometedora, pero en ella no debes usar@{\extracolsep{\fill}}
  • En el uso de tabularxse requiere que al menos una columna sea del tipoX
  • Si todas las columnas pueden tener el mismo ancho, el código para su tabla tabularxpuede ser:
\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}

ingrese la descripción de la imagen aquí

En mi opinión, esta tabla tiene demasiados espacios vacíos entre el contenido de las columnas. Será mejor si está dispuesto a reducir el ancho de la mesa.

Editar: Un ejemplo de tabla más estrecha con solo algunas celdas coloreadas en la primera y segunda columna de uso tabularrayy siunitxpaquetes de ancho, MWE puede ser:

\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}

ingrese la descripción de la imagen aquí

Respuesta2

Quizás esto ayude. Las consultas son bienvenidas.

MWE

\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}

ingrese la descripción de la imagen aquí

Para expandir la tabla por completo, text widthproporcione X columnscolumnas similares detabularx

\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}

ingrese la descripción de la imagen aquí

Respuesta3

Al reemplazar {tabular*} por {NiceTabular*} de nicematrixcon la clave colortbl-like, esto es lo que obtienes:

\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}

Salida del código anterior

Observa que el preámbulo de tu tabular anuncia 5 columnas pero has utilizado sólo 4.

información relacionada