我有一个 LaTeX 文档,其中包含很多表格(至少 100 个不同大小的表格),其中我使用了标准的列类型l
、c
和r
。现在我改变了主意,不再考虑表格的外观,因为我一开始并没有优先考虑制作表格。
更具体地说,我想改变每个表中文本的颜色。
我的问题是,是否有任何方法可以重新定义或“ renewcolumntype
”列类型,就像可以使用renewcommand
命令一样,这样我就不必浏览大量的表来手动编写重新定义?
我拥有的表格都是非常标准的,所以我看不出 MWE 在这里会有什么帮助。它们都看起来像这样:
\begin{table}[H]
\centering
\renewcommand{\arraystretch}{1.25}
\rowcolors{2}{}{grey!40}
\colorbox{tablecolor}{%
\begin{tabular}{lrr}
columnheader 1 & columnheader 2 & columnheader 3 \\\midrule
x & y & z \\
x & y & z \\\bottomrule
\end{tabular}}
\caption{caption}
\label{tab:label}
\end{table}
当我尝试这样做时,LaTeX 并不高兴:
\newcolumntype{l}{>{\color{newcolor}}l}
\newcolumntype{c}{>{\color{newcolor}}c}
\newcolumntype{r}{>{\color{newcolor}}r}
但这样就没问题了:
\newcolumntype{u}{>{\color{newcolor}}l}
\newcolumntype{i}{>{\color{newcolor}}c}
\newcolumntype{o}{>{\color{newcolor}}r}
虽然后者按预期工作,但这意味着我必须浏览所有表并更改每个表中的列类型。
答案1
如果您想改变所有表格的文本颜色,也许您可以使用环境钩子{tabular}
:(\AtBeginEnvironment{tabular}{\color{red}}
在最新版本的 LaTeX 中)。