
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 \ifrev
valor verdadero dentro de él.
En tablas y figuras dentro de este entorno, el \ifrev
valor se conserva adecuadamente (es decir, una \ifrev
declaración se evalúa como verdadera si la figura/tabla está en un revision
entorno 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%
}{}