
Si colorea una fila en una tabla, @{}
no elimina el color de los cojinetes laterales, como se muestra en la siguiente figura.
Para eliminar el color, puede dirigir un núcleo a la columna de la tabla usando >{\kern-\tabcolsep}
, como se muestra en la siguiente figura:
Sin embargo, esto no funciona si la columna que desea intercalar es una p
columna -. En cambio, el contenido de la celda ya no se alinea con la siguiente celda, como se muestra a continuación:
¿Por qué? ¿Es posible usarlo \kern
de alguna manera (sé que establecerlo \tabcolsep
en cero puede tener el mismo efecto, pero hacerlo tiene algunos efectos secundarios)?
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}
Respuesta1
Para columnas de ancho fijo, puede agregar \leavevmode
o 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}
Agregado: En caso de que tenga una columna de ancho fijo, si una celda tiene varias líneas, solo la primera línea tiene un kerning negativo. Una solución alternativa consiste en incluir el contenido de la celda en un \parbox[t]{\hsize}
(el opcional [t]
fue sugerido por @Sveinung – ¡gracias!). Esto también funciona para el X
tipo de columna si usa un tabularx
entorno.
Para los L, R, C, J
tipos de columnas de tabulary
, parece que también hay que agregar \leavevmode
(o usar \hskip
) para la última columna, incluso si no es una columna de ancho fijo.