页眉和页脚的行长会随着颜色变化而变化

页眉和页脚的行长会随着颜色变化而变化

我正在使用 fancyhdr。我想将页眉和页脚规则设为红色。当我这样做时,线条会稍微收缩,不再是纸张的宽度。

首先,我使用以下代码时的正常结果:

\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}

结果看起来很正常,如下所示显示页面的左上角:

在此处输入图片描述

研究表明,以下代码会改变颜色,事实也确实如此:

\renewcommand{\headrulewidth}{1pt}
\renewcommand{\headrule}{\hbox to\headwidth{
 \color{red}\leaders\hrule height \headrulewidth\hfill}}

但是现在规则的长度比纸张略小,大约半个字符,这当然看起来不太好:

在此处输入图片描述

它也比预期的要低,就像在标题文本后有一个空白行,不知道为什么。使用类似代码的红色页脚也太短了,但没有相同的“额外空间”问题。

非常感谢您的建议。

答案1

\headrule定义\f@nch@initialise

\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
      \hrule\@height\headrulewidth\@width\headwidth
      \vskip-\headrulewidth}}%

您的尝试在几个方面都失败了。例如,由于没有保护的端线,线变得更短;但您也得到了两个不必要的垂直空间,一个在线上方,一个在线下方。这是因为\hrule没有在前后添加行间空间,但\hbox确实添加了。

省略该fancyplain部分也许没问题,但我认为省略它没有任何意义。

\documentclass{article}
\usepackage[a6paper]{geometry}% just for a smaller picture
\usepackage{fancyhdr}
\usepackage{xcolor}
\usepackage{lipsum}

\makeatletter
\renewcommand{\headrule}{{% <--- !!!
  \if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
  \color{red}% <--- !!!
  \hrule\@height\headrulewidth\@width\headwidth
  \vskip-\headrulewidth
}}
\renewcommand{\footrule}{{% <--- !!!
  \if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
  \color{red}% <--- !!!
  \hrule\@width\headwidth\@height\footrulewidth
}}
\makeatother

\pagestyle{fancy}
\fancyhead{}\fancyhead[R]{\leftmark}
\renewcommand{\footrulewidth}{0.4pt}

\begin{document}

\section{Test}

\lipsum

\end{document}

在此处输入图片描述

相关内容