部分的页面背景颜色

部分的页面背景颜色

我想专门为文档中每个“部分”部分创建的页面设置背景颜色(例如第 I 部分 xxx、第 II 部分 xxxx)。我使用的是书籍文档类。设置(和重置)背景颜色的解决方案无法专门为包含第 I 部分 xxxx 的页面着色,但之后也会为页面着色。

梅威瑟:

\documentclass{book}
\usepackage{xcolor}
\begin{document}

First page

\cleardoublepage
\pagecolor{green}
\part{Example for pagecolor}
\pagecolor{white}

Last page
\end{document}

“零件”页面及其后续页面是两个都颜色为绿色。

答案1

您可以修补part命令以添加页面颜色,而不是手动添加。但由于 a 是在内部newpage末尾发出的(当使用选项时(默认)),页面颜色也会应用于下一页。这可以通过修补命令来避免。您可以采用困难的方式或巧妙的方式,如以下代码所示。\partopenright\@endpart

\documentclass{book}
\usepackage{xcolor}
\makeatletter
%%-----------------Hard coding----------------------
%\renewcommand\part{%
%  \if@openright
%    \cleardoublepage
%  \else
%    \clearpage
%  \fi
%  \pagecolor{green}   %% Added line here
%  \thispagestyle{plain}%
%  \if@twocolumn
%    \onecolumn
%    \@tempswatrue
%  \else
%    \@tempswafalse
%  \fi
%  \null\vfil
%  \secdef\@part\@spart}

%\renewcommand\@endpart{\vfil\newpage
%                \pagecolor{white}   %%% Added line here
%              \if@twoside
%               \if@openright
%                \null
%                \thispagestyle{empty}%
%                \newpage
%               \fi
%              \fi
%              \if@tempswa
%                \twocolumn
%              \fi}
%%--------- end of hard coding ---------------------

%%---smart coding ----------------------------------
\usepackage{xpatch}
%
\xpatchcmd{\part}{\thispagestyle{plain}}
      {\pagecolor{green}\thispagestyle{plain}}{}{}
\xpatchcmd{\@endpart}{\vfil\newpage}{\vfil\newpage
              \pagecolor{white}}{}{}
%%--------- end of smart coding ---------------------
\makeatother


\begin{document}
\chapter{One}
First page

\cleardoublepage
\part{Example for pagecolor}

Last page
\end{document}

在此处输入图片描述

相关内容