Cambiar el color de la página para una página flotante

Cambiar el color de la página para una página flotante

Estoy buscando una manera de cambiar el color de una página flotante. Estoy usando la [p]ubicación para la figura respectiva. Considere el siguiente 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}

El \pagecolorcomando se ejecuta tan pronto como se alcanza el flotador en la fuente, por lo que todas las páginas hasta el flotador ya están en rojo.Esta preguntaEn cierto modo trata el mismo problema, sin embargo, su solución se engancha a cualquier página flotante enviada. Solo quiero el fondo de color para ciertas páginas flotantes, no para todas. ¿Cómo puedo cambiar el color de la página solo para una determinada página flotante?

(Dada la pregunta y la solución a las que se hace referencia, estaba pensando en agregar un condicional que debe configurarse para \AddToShipoutPictureBGcambiar el fondo, que podría configurar cuando quiera una página flotante de color. Pero parece poco elegante y demasiado complicado...)

Respuesta1

Al observar el paquete floatpag, pensé que podrías usar el mismo truco para pagecolor. Tuve que crear mi \thispagecolorcomando.

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

información relacionada