플로트 페이지의 페이지 색상을 변경하는 방법을 찾고 있습니다. 나는 [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}