重新定义现有的列类型

重新定义现有的列类型

我有一个 LaTeX 文档,其中包含很多表格(至少 100 个不同大小的表格),其中我使用了标准的列类型lcr。现在我改变了主意,不再考虑表格的外观,因为我一开始并没有优先考虑制作表格。

更具体地说,我想改变每个表中文本的颜色。

我的问题是,是否有任何方法可以重新定义或“ 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 中)。

相关内容