Mantenha a cor do texto dentro de tabelas e legendas de tabelas/figuras

Mantenha a cor do texto dentro de tabelas e legendas de tabelas/figuras

Eu tenho a seguinte definição de ambiente:

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

Este ambiente simplesmente colore todo o texto dentro dele de azul e define o valor \ifrevcomo verdadeiro dentro dele.

Em tabelas e figuras dentro deste ambiente, o \ifrevvalor é preservado adequadamente (ou seja, uma \ifrevinstrução é avaliada como verdadeira se a figura/tabela estiver em um revisionambiente e como falsa caso contrário). No entanto, a cor do texto das legendas e das entradas da tabela é redefinida para preto. Por exemplo:

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

Adicionar \begin{revision}e \end{revision}logo depois e antes \begin{document}e \end{document}colore corretamente o parágrafo de azul e altera o a minúsculo para A maiúsculo na tabela, mas mantém o texto na tabela e as legendas em preto.

Como faço para manter também a cor azul dentro das tabelas e figuras dentro deste ambiente?

Responder1

Levando em consideração os comentários, reescrevi a definição do ambiente da seguinte forma, que parece funcionar como eu queria:

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

informação relacionada