\pagecolor
在某些情况下,使用after似乎\newpage
会影响之前的页面\newpage
,例如浮动图形。
这是一个简单的例子:
\documentclass{scrreprt}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{xcolor}
\newcommand{\normalpagestyle}{
\newpage
\pagecolor{white}
\color{black}
\addtokomafont{chapter}{\color{red}\fontsize{16}{16}\selectfont}
}
\newcommand{\specialpagestyle}{
\newpage
\pagecolor{red}
\color{white}
\addtokomafont{chapter}{\color{white}\fontsize{16}{16}\selectfont}
}
\begin{document}
\normalpagestyle
\chapter{Test}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\specialpagestyle
\blinddocument
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\normalpagestyle
\blinddocument
\end{document}
有没有什么办法可以解决这个问题?
答案1
对我来说,用 替换两个实例\newpage
似乎\clearpage
有效:
\documentclass{scrreprt}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{xcolor}
\newcommand{\normalpagestyle}{
\clearpage
\pagecolor{white}
\color{black}
\addtokomafont{chapter}{\color{red}\fontsize{16}{16}\selectfont}
}
\newcommand{\specialpagestyle}{
\clearpage
\pagecolor{red}
\color{white}
\addtokomafont{chapter}{\color{white}\fontsize{16}{16}\selectfont}
}
\begin{document}
\normalpagestyle
\chapter{Test}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\specialpagestyle
\blinddocument
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\begin{figure}[ht]
\centering
\rule{10cm}{10cm}
\end{figure}
\normalpagestyle
\blinddocument
\end{document}
答案2
Skillmon 已经说明了如何解决这个问题,但是解释了发生了什么,这\pagecolor
并不影响之前的页面,而是在页面颜色改变后插入图形。
因此[ht]
浮动元素不允许出现在浮动页面上,它们只允许出现在包含文本的页面上。由于没有文本,它们都堆放在队列中,等待有可以放置它们的页面。
然后将\specialpagestye
页面颜色更改为红色,但仍然没有将浮点数插入到文档中。
最后,\chapter
问题 a \clearpage
,与 不同,\newpage
\clearpage
作为紧急操作刷新所有浮动,有效地强制p
进入其可选位置并忽略所有限制。因此,到该点为止的所有浮动都会被输出(但页面已经是红色的)。
在较旧的 latex 版本中,如果您以这种方式堆叠浮点数,则如果您使用超过 18 个“没有空间容纳新浮点数”,则会收到错误消息,但最近的版本使用 etex 扩展寄存器,因此您可以堆叠几千个浮点数而不会出现该错误。