
다음과 같은 환경 정의가 있습니다.
\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%
}{}