
Если вы раскрасите строку в таблице, @{}
это не приведет к удалению цвета с боковых подшипников, как показано на рисунке ниже.
Чтобы удалить цвет, вы можете направить керн в столбец таблицы с помощью >{\kern-\tabcolsep}
, как показано на рисунке ниже:
Однако это не работает, если столбец, который вы хотите кернить, является -столбцом p
. Вместо этого содержимое ячейки больше не выстраивается в линию со следующей ячейкой, как показано ниже:
\kern
Почему? Можно ли это как-то использовать (я знаю, что установка \tabcolsep
на ноль может иметь тот же эффект, но это имеет некоторые побочные эффекты)?
МВЭ:
\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}
решение1
Для столбцов фиксированной ширины вы можете добавить \leavevmode
или использовать \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}
Добавлен: В случае, если у вас столбец фиксированной ширины, если ячейка имеет несколько строк, только первая строка имеет отрицательный кернинг. Обходной путь заключается во включении содержимого ячейки в \parbox[t]{\hsize}
(необязательный параметр [t]
был предложен @Sveinung – спасибо!). Это также работает для X
типа столбца, если вы используете tabularx
среду.
Для L, R, C, J
типов столбцов из tabulary
, похоже, вам также придется добавить \leavevmode
(или использовать \hskip
) для последнего столбца, даже если это столбец не фиксированной ширины.