I'm having difficulty creating a new command for \rowstyle
that allows me to color the text of different rows in a table and preserve my ability to space out the columns and not induce space between the lines. I'm trying to stay away from Tabu. Here is what I'm using:
\documentclass{article}
\usepackage{array}
\usepackage{threeparttable}
\usepackage{xcolor}
\makeatletter
\newcommand*{\@rowstyle}{}
\newcommand*{\rowstyle}[1]{% sets the style of the next row
\gdef\@rowstyle{#1}%
\@rowstyle\ignorespaces%
}
\newcolumntype{=}{% resets the row style
>{\gdef\@rowstyle{}}%
}
\newcolumntype{+}{% adds the current row style to the next column
>{\@rowstyle}%
}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\makeatother
\begin{document}
\begin{table}[h!] \small
\begin{threeparttable}
\begin{tabular}{ =p{2.0cm} +C{1.0cm} +C{1.0cm} +C{1.0cm} +C{1.0cm} +C{1.0cm} +C{1.0cm} }
\hline
1 & -0.043 & -0.206 & -0.01 & -0.46 & 0.336 & 0.191 \\
\rowstyle{\color{red}}
2 & (0.902) & (0.63) & (1) & (0.286) & (0.259) & (0.502) \\
\rowstyle{\color{blue}}
3 & 119 & 111 & 120 & 106 & 119 & 141 \\
\rowstyle{\color{black}}
4 & -0.04 & -0.182 & 0.074 & -0.227 & -0.189 & 0.127 \\
\hline
\end{tabular}
\begin{tablenotes}
\footnotesize
\item \textbf{Note:} This table XYZ.
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
Thanks for any and all thoughts.
Best Answer
\color
introduces a whatsit (\special
). At the start of ap
column vertical mode is in force, that means the whatsit becomes the top of the cell. Asp
columns are aligned at the base line, the following text line is put below the current row base line. Adding\leavevmode
helps, then the whatsit is put at the begin of the first text line in horizontal mode.