我想为表格中的一些单元格着色,其中一些单元格使用\makecell
。我遇到的问题是,\makecell
颜色没有填满单元格的整个宽度。
梅威瑟:
\documentclass{article}
\usepackage{makecell}
\usepackage{colortbl}
\begin{document}
\begin{tabular}{|l|}
Cell 1's text is very long \\
\cellcolor{red} \makecell{Cell\\2}
\end{tabular}
\end{document}
当然,期望的行为是填满整个单元格,那么我该怎么做呢?
编辑:我在原始问题中使用\makecell
来获取由多条线组成的单元格,因此我也更新了 MWE 来执行此操作。如果有任何其他方法可以不使用 来执行此操作,makecell
我也愿意这样做。
答案1
已知makecell
彩色表格存在问题。以下是两种解决方法:
- 一个使用
\rowcolor
和 其悬垂可选参数,另一个用 替换makecell
。tabStackengine
值得注意的是,由于列具有l
说明符,因此命令的内容\makecell
可以在单元格中全局居中,使用放置参数,但两行不能彼此居中。 另一个解决方案是使用包
tabstackengine
,它不会出现与着色单元格相同的问题,并\multicolumn
能获得居中内容。\documentclass{article} \usepackage{makecell} \usepackage{tabstackengine} \usepackage[table]{xcolor} \begin{document} \begin{tabular}{|l|} Cell 1's text is very long \\ \rowcolor{red}[\tabcolsep][47pt]\makecell[r]{Cell 2\\ Text} \\ \multicolumn{1}{|>{\columncolor{yellow}}c|}{\tabularCenterstack{c}{Cell 3\\ Text}} \end{tabular} \end{document}