표 및 표/그림 캡션 내부의 텍스트 색상 유지

표 및 표/그림 캡션 내부의 텍스트 색상 유지

다음과 같은 환경 정의가 있습니다.

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

이 환경은 단순히 내부의 모든 텍스트를 파란색으로 색칠하고 \ifrev내부를 true로 설정합니다.

이 환경 내의 표와 그림에서 \ifrev값은 적절하게 유지됩니다(즉, \ifrev그림/표가 revision환경에 있으면 명령문은 true로 평가되고 그렇지 않으면 false로 평가됩니다). 그러나 캡션과 표 항목의 텍스트 색상은 검은색으로 재설정됩니다. 예를 들어:

\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}\end{revision}바로 앞에 및를 추가하면 단락이 파란색으로 올바르게 표시 \begin{document}되고 \end{document}표에서 소문자 a가 대문자 A로 변경되지만 표의 텍스트와 캡션은 검정색으로 유지됩니다.

이 환경 내의 표와 그림 내부에도 파란색을 어떻게 유지합니까?

답변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%
}{}

관련 정보