fancyhdr
我对这个包有一个问题:我使用report
文档类,我有一个章节,很多文本,然后是一个以某个部分开始的新页面(或者下一页没有从该特定页面开始的章节)。
问题是,我定义的页眉和页脚不在章节页面上,而只在非章节页面上。为什么?我错过了什么?
最小示例:
\documentclass[]{report}
\usepackage{lastpage}
\usepackage{fancyhdr} % for use of \pageref{LastPage}
\fancypagestyle{IHA-fancy-style}{%
\fancyhf{} %Clear header and footer
\fancyhead[LE,RO]{\slshape \rightmark}
\fancyhead[LO,RE]{\slshape \leftmark}
\fancyfoot[C]{\thepage of \pageref{LastPage}} %Custom footer
\renewcommand{\headrulewidth}{0.4pt} %Line at the header visible
\renewcommand{\footrulewidth}{0.4pt}} %Line at the footer visible
\title{A short example}
\begin{document}
\maketitle
\tableofcontents
\pagestyle{IHA-fancy-style}
\chapter{A chapter}
Look at the footer
\newpage
\section{A section}
Look at the footer
\end{document}
请注意:第 2 页底部没有行 - 第 3 页底部有一行。
有什么线索吗?
答案1
您可以重新定义plain
发出的样式\chapter
。您可以这样做;我建议不要在章节起始页或上部规则中添加标题。
\documentclass[twoside]{report}
\usepackage{lastpage}
\usepackage{fancyhdr} % for use of \pageref{LastPage}
\fancypagestyle{IHA-fancy-style}{%
\fancyhf{}% Clear header and footer
\fancyhead[LE,RO]{\slshape \rightmark}
\fancyhead[LO,RE]{\slshape \leftmark}
\fancyfoot[C]{\thepage\ of \pageref{LastPage}}% Custom footer
\renewcommand{\headrulewidth}{0.4pt}% Line at the header visible
\renewcommand{\footrulewidth}{0.4pt}% Line at the footer visible
}
% Redefine the plain page style
\fancypagestyle{plain}{%
\fancyhf{}%
\fancyfoot[C]{\thepage\ of \pageref{LastPage}}%
\renewcommand{\headrulewidth}{0pt}% Line at the header invisible
\renewcommand{\footrulewidth}{0.4pt}% Line at the footer visible
}
\title{A short example}
\begin{document}
\maketitle
\tableofcontents
\pagestyle{IHA-fancy-style}
\chapter{A chapter}
Look at the footer
\newpage
\section{A section}
Look at the footer
\end{document}
答案2
对于report
文档类,命令\chapter
在文件中定义report.cls
,从第 339 行左右开始。宏定义中包含\chapter
指令\thispagestyle{plain}
,指示 LaTeX 将章节的第一页设置为所谓的“纯文本”样式。
要将章节第一页的页面样式从“普通”切换为“花式”,您可以加载包etoolbox
并修补宏的定义\chapter
:
\documentclass{report}
% other preamble stuff...
\usepackage{etoolbox}
\patchcmd{\chapter}{\thispagestyle{plain}}{\thispagestyle{fancy}}{}{}
% rest of document ...