我很难创建一个新命令,使\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}