
Se você colorir uma linha de uma tabela, @{}
não remove a cor dos rolamentos laterais, conforme mostrado na figura abaixo.
Para remover a cor, você pode direcionar um kernel para a coluna da tabela usando >{\kern-\tabcolsep}
, conforme demonstrado na figura abaixo:
No entanto, isso não funciona se a coluna que você deseja fazer o kern for uma p
-column. Em vez disso, o conteúdo da célula não se alinha mais com a próxima célula, conforme demonstrado abaixo:
Por que? É possível usar \kern
de alguma forma (sei que definir \tabcolsep
zero pode ter o mesmo efeito, mas fazer isso tem alguns efeitos colaterais)?
MWE:
\documentclass[table]{article}
\usepackage{lmodern, microtype, xcolor}
\begin{document}
\begin{tabular}{@{}lcr@{}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\vspace{1cm}
\begin{tabular}{>{\kern-\tabcolsep}lcr<{\kern-\tabcolsep}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\vspace{1cm}
\begin{tabular}{>{\kern-\tabcolsep}p{1cm}cr<{\kern-\tabcolsep}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\end{document}
Responder1
Para colunas de largura fixa, você pode adicionar \leavevmode
ou usar \hskip
:
\documentclass[table]{article}
\usepackage{lmodern, microtype, xcolor}
\begin{document}
\begin{tabular}{@{}lcr@{}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\vspace{1cm}
\begin{tabular}{>{\kern-\tabcolsep}lcr<{\kern-\tabcolsep}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\vspace{1cm}
\begin{tabular}{>{\leavevmode\kern-\tabcolsep}p{1cm}cr<{\kern-\tabcolsep}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\vspace{1cm}
\begin{tabular}{>{\hskip-\tabcolsep}p{1cm}cr<{\kern-\tabcolsep}}
\rowcolor{lightgray}test&test&test\\\hline
test&test&test\\
\rowcolor{lightgray}test&test&test\\
\end{tabular}
\end{document}
Adicionado: Caso você tenha uma coluna de largura fixa, se uma célula tiver várias linhas, apenas a primeira linha terá kerning negativo. Uma solução alternativa consiste em incluir o conteúdo da célula em a \parbox[t]{\hsize}
(o opcional [t]
foi sugerido por @Sveinung – obrigado!). Isso funciona também para o X
tipo de coluna se você usar um tabularx
ambiente.
Para os L, R, C, J
tipos de coluna from tabulary
, parece que você também precisa adicionar \leavevmode
(ou usar \hskip
) para a última coluna, mesmo que não seja uma coluna de largura fixa.