플로트 페이지의 페이지 색상 변경

플로트 페이지의 페이지 색상 변경

플로트 페이지의 페이지 색상을 변경하는 방법을 찾고 있습니다. 나는 [p]각각의 그림에 대한 배치를 사용하고 있습니다. 다음 MWE를 고려하십시오.

\documentclass{scrbook}
\usepackage{afterpage}
\usepackage{pagecolor}

\begin{document}
Text on a clean page. %The page is white by default.
\clearpage
Text before figure. %This page is red already.
\begin{figure}[p]
    \pagecolor{red}\afterpage{\pagecolor{none}}
    Figure text.
\end{figure}
Text after figure.
\clearpage %The float is placed, \afterpage kicks in and restores the page background
Again, text on a clean page.
\end{document}

\pagecolor소스에서 플로트에 도달하자마자 명령이 실행되므로 플로트까지의 모든 페이지가 이미 빨간색입니다 .이 질문같은 문제를 다루는 종류의 솔루션이지만 그 솔루션은 출시된 플로트 페이지에 연결됩니다. 나는 모든 플로트 페이지가 아닌 특정 플로트 페이지에만 컬러 배경을 원합니다. 특정 플로트 페이지의 페이지 색상을 어떻게 변경할 수 있나요?

\AddToShipoutPictureBG(참조된 질문과 솔루션을 바탕으로 배경을 변경하기 위해 설정해야 하는 조건을 추가하려고 생각했는데 , 컬러 플로트 페이지를 원할 때 설정할 수 있습니다. 하지만 우아하지 않고 너무 해키스러워 보입니다...)

답변1

floatpag 패키지를 보면서 pagecolor에도 동일한 트릭을 사용할 수 있다고 생각했습니다. 온 명령을 만들어야했습니다 \thispagecolor.

\documentclass{scrbook}
\usepackage{xcolor}
\usepackage{floatpag}

\makeatletter
\newcommand{\@thispagecolor}{none}
\let\@pagecolornone=\@thispagecolor
\newcommand{\thispagecolor}[1]{\gdef\@thispagecolor{#1}}

\AddToHook{shipout/background}{\ifx\@thispagecolor\@pagecolornone\relax
  %\put(1in,-1in) {color=none}%
\else
  \put(0pt,-\paperheight) {\textcolor{\@thispagecolor}{\rule{\paperwidth}{\paperheight}}}%
  \global\let\@thispagecolor=\@pagecolornone
\fi}
  
\newcommand{\floatpagecolor}[1]{\gdef\at@float@page{\thispagecolor{#1}}}
\makeatother

\floatpagecolor{red}

\begin{document}
Text on a clean page. %The page is white by default.
\clearpage
Text before figure. %This page is red already.
\begin{figure}[p]
    Figure text.
\end{figure}
Text after figure.
\clearpage %The float is placed, \afterpage kicks in and restores the page background
Again, text on a clean page.
\end{document}

관련 정보