保留表格和表格/圖形標題中的文字顏色

保留表格和表格/圖形標題中的文字顏色

我有以下環境定義:

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

相關內容