
Estou tentando tabular*
gerar uma tabela, pois gostaria de usar também midrule
etc. bottomrule
para obter as diferentes espessuras de linha. Porém, na minha tentativa abaixo, como também tento colorir seções da tabela, obtenho espaços na cor assim:
Eu olhei para estessoluções relacionadasmas queria saber se existe uma solução mais simples para usar aqui, pois ainda não estou obtendo o resultado desejado.
Este é o meu 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}
Como fazer com que a cor preencha as células sem lacunas e ao mesmo tempo usar o toprule
, midrule
etc?
Responder1
- Uso de
@{\extracolsep{\fill}}
inserir espaços extras entre colunas que não podem ser coloridos por\rowcolor{...}
Então, uma forma de usartabularx
é promissora, mas nela você não deve usar@{\extracolsep{\fill}}
- No uso de
tabularx
exigir que pelo menos uma coluna seja do tipoX
- Se todas as colunas puderem ter a mesma largura, o código para sua tabela
tabularx
pode 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}
Na minha opinião, esta tabela tem muitos espaços vazios entre o conteúdo das colunas. Será melhor se você estiver disposto a reduzir a largura da mesa.
Editar:
Um exemplo de tabela mais estreita com apenas algumas células coloridas na largura da primeira e segunda colunas de uso tabularray
e siunitx
pacotes, MWE pode 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}
Responder2
talvez isso ajude - dúvidas são bem-vindas
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}
Para expandir a tabela por toda a text width
--forneça X columns
colunas semelhantes 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}
Responder3
Ao substituir {tabular*} por {NiceTabular*} of nicematrix
pela key colortbl-like
, aqui está o que você obtém:
\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}
Observe que o preâmbulo da sua tabela anuncia 5 colunas, mas você usou apenas 4.