Я ищу способ изменить цвет страницы плавающей страницы. Я использую [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
выполняется, как только в источнике достигается поплавок, поэтому все страницы до поплавка уже красные.Этот вопросотчасти решает ту же проблему, однако ее решение цепляется к любой отправленной странице float. Я хочу цветной фон только для определенных страниц float, а не для всех. Как изменить цвет страницы только для определенной страницы float?
(Учитывая упомянутый вопрос и решение, я думал добавить условие, которое должно быть установлено для \AddToShipoutPictureBG
изменения фона, который я мог бы задать, когда мне нужна цветная плавающая страница. Но это кажется неэлегантным и просто слишком хакерским...)
решение1
Глядя на пакет floatpag, я подумал, что можно использовать тот же трюк для pagecolor. Мне пришлось создать свой on \thispagecolor
command.
\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}