Mantenga el color del texto dentro de las tablas y los títulos de tablas/figuras.

Mantenga el color del texto dentro de las tablas y los títulos de tablas/figuras.

Tengo la siguiente definición de entorno:

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

Este entorno simplemente colorea todo el texto que contiene de azul y establece el \ifrevvalor verdadero dentro de él.

En tablas y figuras dentro de este entorno, el \ifrevvalor se conserva adecuadamente (es decir, una \ifrevdeclaración se evalúa como verdadera si la figura/tabla está en un revisionentorno y falsa en caso contrario). Sin embargo, el color del texto de los títulos y las entradas de la tabla se restablece a negro. Por ejemplo:

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

Agregar \begin{revision}y \end{revision}justo después y antes \begin{document}y \end{document}colorea correctamente el párrafo en azul y cambia la a minúscula a la A mayúscula en la tabla, pero mantiene el texto en la tabla y los títulos en negro.

¿Cómo mantengo también el color azul dentro de las tablas y figuras dentro de este ambiente?

Respuesta1

Teniendo en cuenta los comentarios, he reescrito la definición del entorno de la siguiente manera, que parece funcionar como quería:

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

información relacionada