我需要能够更改文档的背景颜色和页面颜色包似乎很合适。但是,我还需要一个命令,允许我为从特定页码开始的所有页面着色(想想突出显示文档中超过 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 页开始。