Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

The following code shows that a \color{red} command increases the height of a tabular cell. I want to use a switch, not a command as \textcolor{red}{text}.

\documentclass{article}

\usepackage{xcolor}
\usepackage{float}

\begin{document}

\begin{table}[H]
\begin{tabular}{*{2}{p{0.45\textwidth}}}
\hline
\color{red} header &
header \tabularnewline
\hline
 %
 content  & content \tabularnewline
 content  & content \tabularnewline
 content  & content \tabularnewline
\hline
\end{tabular}
\end{table} 
\end{document}

enter image description here

How can I work around this problem?

share|improve this question

1 Answer 1

up vote 12 down vote accepted

The cell height will be correct if you insert \leavevmode before \color for changing into horizontal mode. \textcolor does the same internally, it calls \leavevmode and then \color, additionally it does grouping. So use this as a switch:

\leavevmode\color{red} header &

If necessary in other places (maybe in moving arguments), consider protecting \leavevmode.

\protect\leavevmode\color{red}
share|improve this answer
3  
The \color command doesn't switch to LR-mode, since it's useful also between paragraphs; however in a p column it defeats the boxing mechanism because when the paragraph starts, as soon as TeX scans the h in "header", the vertical list is not empty. Issuing \leavevmode cures the problem by starting a paragraph itself. –  egreg Oct 14 '11 at 10:22
    
@egreg: thanks for the additional explanation! –  Stefan Kottwitz Oct 14 '11 at 10:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.