以下 MWE:
\documentclass[10pt]{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{array,float}
\begin{document}
\begin{tabular}{|*{3}{>{\centering}p{1cm}|}}
\hline \color{red}A&B&C\tabularnewline \hline
\end{tabular}
\begin{tabular}{|*{3}{>{\centering}m{1cm}|}}
\hline \color{blue}A&B&C\tabularnewline \hline
\end{tabular}
Some blablah...
\end{document}
给我 :
蓝色一直延续到单元格之后,甚至表格之后!
我知道我基本上可以用牙套来解决问题
\color{blue}A
但我想了解为什么如果我在表格中使用“m”参数而不是“p”, \color 会出现这种奇怪的行为......(否则,为什么在第一个表格中,单元格更高,而 A 位于其单元格的底部?)
答案1
请参阅包文档第 6 页的脚注color
。
您可以使用它\leavevmode\color...
来避免该问题。
如果你\color
在段落开始前添加垂直模式,那么颜色 whatsit 节点将出现在第一行的开头,而不是第一行的开头多于第一行。p
列与第一个项目对齐,因此它与该节点对齐,而不是与第一行文本的基线对齐。
您可以通过添加显式内容来解决颜色泄漏问题{}
,以将颜色保留在单元格中
\documentclass[10pt]{article}
\usepackage{color}
\usepackage{array}%[=2016-10-06]
\begin{document}
\begin{tabular}{|*{3}{>{\centering}p{1cm}|}}
\hline \leavevmode\color{red}A&B&C\tabularnewline \hline
\end{tabular}
\begin{tabular}{|*{3}{>{\centering}m{1cm}|}}
\hline {\leavevmode\color{blue}A}&B&C\tabularnewline \hline
\end{tabular}
Some blablah...
\end{document}
但这不是必需的,如果您array
通过取消注释可选参数来使用以前的版本,那么它无需 `{ 即可工作。我会在 github 上提出有关此问题的问题。