變更從第 x 頁開始的頁面顏色

變更從第 x 頁開始的頁面顏色

我需要能夠更改文件的背景顏色和頁面顏色包看起來很合適。然而,我還需要一個命令,允許我為從某個頁碼開始的所有頁面著色(考慮突出顯示超過 N 頁的官方頁面限制的文檔頁面)。這可能是一個簡單的 newcommand 兩行程式碼,但我不明白。有人知道嗎?

答案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

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 頁開始。

相關內容