保持表格和表格/图形标题内的文本颜色

保持表格和表格/图形标题内的文本颜色

我有以下环境定义:

\newif\ifrev
\newenvironment{revision}{%
    \begingroup
        \revtrue%
        \color{blue}%
    }{%
        \revfalse%
    \endgroup
}

这个环境只是将其内部的所有文本都变成蓝色,并将\ifrev其设置为 true。

在此环境内的表格和图形中,该\ifrev值被正确保存(即,\ifrev如果图形/表格在revision环境中,则语句的计算结果为真,否则为假)。但是,标题和表格条目的文本颜色被重置为黑色。例如:

\begin{document}
\lipsum[42]
\begin{table}[h]
    \centering
    \begin{tabular}{cc}
        \ifrev{A}\else{a}\fi & b \\
        c & d
    \end{tabular}
    \caption{Caption}
\end{table}
\begin{figure}[h]
    \centering
    \includegraphics{example-image-a}
    \caption{Caption}
\end{figure}
\end{document}

在和之前和之后添加\begin{revision}和可以正确地将段落染成蓝色,并将表格中的小写 a 更改为大写 A,但保留表格中的文本和标题为黑色。\end{revision}\begin{document}\end{document}

我如何在此环境中保留表格和图形内的蓝色?

答案1

考虑到这些评论,我重写了环境定义如下,它似乎按照我的要求运行:

\newenvironment{revision}{%
    \revtrue%
    \color{\revcolour}%
    \captionsetup*{font={color=\revcolour}}%
    \captionsetup*[sub]{font={color=\revcolour}}%
    \makeatletter%
    \let\oldtable\table%
    \def\table{\@ifnextchar[\table@i \table@ii}%
    \def\table@i[#1]{\oldtable[#1]\color{\revcolour}}%
    \def\table@ii{\oldtable\color{\revcolour}}%
    \makeatother%
}{}

相关内容