Behalten Sie die Textfarbe in Tabellen und Tabellen-/Abbildungsbeschriftungen bei

Behalten Sie die Textfarbe in Tabellen und Tabellen-/Abbildungsbeschriftungen bei

Ich habe die folgende Umgebungsdefinition:

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

Diese Umgebung färbt einfach den gesamten Text darin blau und setzt ihn \ifrevdarin auf „true“.

In Tabellen und Abbildungen innerhalb dieser Umgebung \ifrevbleibt der Wert korrekt erhalten (d. h. eine \ifrevAnweisung wird als „true“ ausgewertet, wenn sich die Abbildung/Tabelle in einer revisionUmgebung befindet, und andernfalls als „false“). Die Textfarbe der Überschriften und Tabelleneinträge wird jedoch auf Schwarz zurückgesetzt. Beispiel:

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

Durch das Hinzufügen von \begin{revision}und \end{revision}direkt nach und vor „und“ \begin{document}wird \end{document}der Absatz richtigerweise blau eingefärbt und das kleine „a“ in der Tabelle in ein großes „A“ geändert, der Text in der Tabelle und die Überschriften bleiben jedoch schwarz.

Wie behalte ich auch in dieser Umgebung die blaue Farbe in Tabellen und Abbildungen bei?

Antwort1

Unter Berücksichtigung der Kommentare habe ich die Umgebungsdefinition wie folgt umgeschrieben, was anscheinend wie gewünscht funktioniert:

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

verwandte Informationen