更改表格中的文本颜色,保留能力

更改表格中的文本颜色,保留能力

我很难创建一个新命令,使\rowstyle我能够为表格中不同行的文本着色,并保留我分隔列和不在行之间产生间隙的能力。我试图远离 Tabu。以下是我正在使用的命令:

\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}

结果

感谢您的所有想法。

答案1

\color引入一个 whatsit ( \special)。在列的开头,p垂直模式有效,这意味着 whatsit 成为单元格的顶部。由于p列在基线处对齐,因此下一行文本将放置在当前行基线下方。添加\leavevmode帮助,然后将 whatsit 放置在水平模式下第一行文本的开头。

\documentclass{article}

 \usepackage{array}
 \usepackage{threeparttable}
 \usepackage{xcolor}
 \makeatletter
 \newcommand*{\@rowstyle}{}
\newcommand*{\rowstyle}[1]{% sets the style of the next row
  \gdef\@rowstyle{#1}%
  \leavevmode\@rowstyle
  \ignorespaces
}
\newcolumntype{=}{% resets the row style
  >{\gdef\@rowstyle{}\ignorespaces}%
}
\newcolumntype{+}{% adds the current row style to the next column
  >{\leavevmode\@rowstyle\ignorespaces}%
}

 \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}

结果

相关内容