单一彩色框内包含 fancyhdr 的完整三部分标题

单一彩色框内包含 fancyhdr 的完整三部分标题

之前还有其他问题,关于使用 fancyhdr 的彩色背景,以便获得彩色的页眉和/或页脚。但是,他们讨论了对页眉的每个部分使用不同的颜色框,或者使用单个部分页眉(即:例如,仅包含中心部分的页眉)。

但是如果我有一个包含三部分(左、中、右)的完整标题,并且我想将所有这三个部分放在一个彩色框内,该怎么办?

理想情况下,彩色框应该没有边距,但三个标题部分应该保留其原始边距,所以我想我不能为此使用 fancyhdr 边距参数。

我确实需要使用 fancyhdr 作为标头。如果需要,我可以添加更多包,但标头仍必须使用 fancyhdr 创建。

答案1

不幸的是,问题中没有 MWE。因此,这里仅建议使用 package 的简单三部分标头fancyhdr

\documentclass{book}
\usepackage{xcolor}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LE]{%
  \strut\rlap{\color{blue!20}\rule[-\dp\strutbox]{\headwidth}{\headheight}}%
  Left part (even page)}
\fancyhead[LO]{%
  \strut\rlap{\color{blue!20}\rule[-\dp\strutbox]{\headwidth}{\headheight}}%
  Left part (odd page)}
\fancyhead[C]{Middle part}
\fancyhead[R]{Right part}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}

在此处输入图片描述


\documentclass{book}
\usepackage{xcolor}

\usepackage[
    headsepline,plainheadsepline
  ]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{Inner part}
\chead{Middle part}
\ohead{Outer part}
\setkomafont{pagehead}{\upshape}

\DeclareNewLayer[
  background,
  head,
  contents={\color{blue!20}\rule[-\dp\strutbox]{\layerwidth}{\layerheight}}
]{head.bg}
\AddLayersAtBeginOfPageStyle{scrheadings}{head.bg}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}

或者从 KOMA-Script 版本 3.19 开始

\documentclass{book}
\usepackage{xcolor}

\usepackage[
    headsepline,plainheadsepline
  ]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{Inner part}
\chead{Middle part}
\ohead{Outer part}
\setkomafont{pagehead}{\upshape}

\DeclareNewLayer[
  background,
  head,
  mode=picture,
  contents={\putLL{\color{blue!20}\rule{\layerwidth}{\layerheight}}}
]{head.bg}
\AddLayersAtBeginOfPageStyle{scrheadings}{head.bg}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}

使用scrlayer-scrpage它还可以很容易地为包括页眉在内的顶部边距着色。

\documentclass{book}
\usepackage{xcolor}

\usepackage[
    %headsepline,plainheadsepline
  ]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{Inner part}
\chead{Middle part}
\ohead{Outer part}
\setkomafont{pagehead}{\upshape}

\DeclareNewLayer[
  background,
  topmargin,
  addheight=\headheight,
  contents={\color{blue!20}\rule{\layerwidth}{\layerheight}}
]{head.bg}
\AddLayersAtBeginOfPageStyle{scrheadings}{head.bg}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}

在此处输入图片描述

如果您想改用,fancyhdr可以使用 TikZ 的remember picture,ovelay选项绘制背景图像。因此,您必须运行代码两次才能将矩形置于正确的位置。

\documentclass{book}
\usepackage{tikz}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand\headrulewidth{0pt}
\fancyhead[LE]{%
  \tikz[remember picture,overlay,baseline]
    \fill[blue!20](current page.north west|-0,-\dp\strutbox)
    rectangle(current page.north east);%
  Left part (even page)}
\fancyhead[LO]{%
  \tikz[remember picture,overlay,baseline]
    \fill[blue!20](current page.north west|-0,-\dp\strutbox)
    rectangle(current page.north east);%
  Left part (odd page)}
\fancyhead[C]{Middle part}
\fancyhead[R]{Right part}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document} 

相关内容