从第 x 页开始更改页面颜色

从第 x 页开始更改页面颜色

我需要能够更改文档的背景颜色和页面颜色包似乎很合适。但是,我还需要一个命令,允许我为从特定页码开始的所有页面着色(想想突出显示文档中超过 N 页官方页数限制的页面)。这可能是一个简单的新命令两行,但我不明白。有人知道吗?

答案1

您可以加载该atbegshi包并使用该包的\AtBeginShipout宏从某个页面开始打开页面着色。

\documentclass{article}
\usepackage{pagecolor}
\usepackage{atbegshi} % for '\AtBeginShipout' macro
% Make page color "light red" *after* page 2
\AtBeginShipout{\ifnum\value{page}=2\pagecolor{red!20}\fi}
\usepackage{lipsum}
\begin{document}
\lipsum[1-20] % filler text
\end{document}

答案2

根据我的回答有哪些方法可以将内容绝对定位在页面上?\AddEverypageHook,而是使用\AddThispageHook,将整页放置\rule在页面背景中。

\documentclass{article}
\usepackage{everypage}
\usepackage{xcolor}
\usepackage{lipsum}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\ateveryxy[3]{%
 \AddEverypageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
  \raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
% VERIFIED THAT SETTING \hoffset AND \voffset DO NOT BREAK SOLUTION.
%\hoffset=0.4in
%\voffset=0.2in
\def\BGcolor{red!10}
\begin{document}
\lipsum[1-17]
% COMMENCE COLORED PAGES HERE
\ateveryxy{0in}{\paperheight}{\textcolor{\BGcolor}{\rule{\paperwidth}{\paperheight}}}
\lipsum[17-29]
\def\BGcolor{blue!10}% CHANGE THE COLOR HERE
\lipsum[30-34]
\end{document}

答案3

以下建议仅在您已将 as 用作页眉和页脚的包时才有意义scrlayer-scrpage。然后,您可以定义一个新的背景层并将其添加到所有层页面样式,包括empty

\documentclass{article}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{scrlayer-scrpage}
\DeclareNewLayer[
  background,
  contents={\ifnum\value{page}>3\color{orange!20}\rule{\layerwidth}{\layerheight}\fi}
]{pagecolor}
\AddLayersAtBeginOfPageStyle{@everystyle@}{pagecolor}

\begin{document}
\Blinddocument
\end{document}

或者您可以使用选项onpsinit

\documentclass{article}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{scrlayer-scrpage}
\KOMAoptions{onpsinit={\ifnum\value{page}=3\pagecolor{orange!10}\fi}}
\begin{document}
\Blinddocument
\end{document}

在这两种情况下,彩色背景都从第 4 页开始。

相关内容