fancyhdr 覆盖了我的页码设置

fancyhdr 覆盖了我的页码设置
\documentclass{mwrep}

%page number on the end of chapter
\makeatletter
\let\ps@closing\ps@plain
\makeatother

%margins
\usepackage{anysize}
\marginsize{3cm}{3cm}{2cm}{2cm}

\usepackage{lipsum}

%mark
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}\chead{}\rhead{}\lfoot{}\cfoot{}\rfoot{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
%mark

\begin{document}
\chapter{AAAAAAA}
\section{aaaaaaa}
\lipsum
\section{bbbbbbb}
\lipsum
\section{ccccccc}
\lipsum
\chapter{BBBBBBB}
\section{aaaaaaa}
\lipsum
\section{bbbbbbb}
\lipsum
\section{ccccccc}
\lipsum
\chapter{CCCCCCC}
\section{aaaaaaa}
\lipsum
\section{bbbbbbb}
\lipsum
\section{ccccccc}
\lipsum
\end{document}

当您删除%marks 之间的代码时,您会在每一页上得到一个数字。当我使用 时fancyhdr,这些设置会被覆盖,并且章节开头和结尾的页码会被省略。有办法解决这个问题吗?我只是用它fancyhdr来更改页码的位置。

答案1

该类mwrep具有一种非常特殊的管理页面样式的方式,因此与其交互fancyhdr可能很困难;但这似乎有效:

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}\fancyfoot[R]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancypagestyle{opening}{\fancyhf{}\fancyfoot[R]{\thepage}%
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}}
\fancypagestyle{closing}{\fancyhf{}\fancyfoot[R]{\thepage}%
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}}

我们只是重新定义了opening页面closing样式,以便他们使用这种fancyhdr方式来做生意。

还删除与有关的代码\ps@closing

一个没有的解决方案fancyhdr可能是

\makeatletter
\def\ps@plain{%
  \let\@oddhead\@empty
  \def\@oddfoot{\reset@font\hfil\thepage}%
  \let\@evenhead\@empty
  \let\@evenfoot\@oddfoot}
\let\ps@opening=\ps@plain
\let\ps@closing=\ps@plain
\makeatother
\pagestyle{plain}

综合考虑,我更喜欢第一个解决方案,尽管有点长,因为它允许您在需要时仅使用提供的命令自定义页面样式,而不是输入诸如等fancyhdr低级命令。\@oddfoot

相关内容