它应该很简单,但我至今还没搞明白:页码适用于页眉和普通样式,但不适用于其他样式。我所做的一切似乎都不会影响\thepage
,甚至\textbf
等。
\documentclass[sfheadings]{mwbk}
\usepackage{lipsum}
%\pagestyle{headings}
\makeatletter
\let\ps@opening\ps@plain
\let\ps@closing\ps@headings
\renewcommand\heading@font{\sffamily\bfseries}
\renewcommand\hf@plain{%
\let\@oddhead\@empty
\def\@oddfoot{\heading@font\hfil\thepage\hfil}%
\let\@evenhead\@empty
\let\@evenfoot\@oddfoot
}
\renewcommand\hf@headings{%
\def\@oddhead{\heading@font\rightmark\hfil\thepage}%
\let\@oddfoot\@empty
\def\@evenhead{\heading@font\thepage\hfil\leftmark}% <<< heading@font only affects \leftmark
\let\@evenfoot\@empty
}
\makeatother
\begin{document}
\chapter{A chapter}
\lipsum[1-10]
\section{asdf}
\lipsum[15-17]
\end{document}
答案1
\pagestyle{headings}
修改后需重新申报。
\ps@opening
此外,和的指令也\ps@closing
应延迟至\begin{document}
。
\documentclass[sfheadings]{mwbk}
\usepackage{lipsum}
\makeatletter
\renewcommand\heading@font{\sffamily\bfseries}
\renewcommand\hf@plain{%
\let\@oddhead\@empty
\def\@oddfoot{\heading@font\hfil\thepage\hfil}%
\let\@evenhead\@empty
\let\@evenfoot\@oddfoot
}
\renewcommand\hf@headings{%
\def\@oddhead{\heading@font\rightmark\hfil\thepage}%
\let\@oddfoot\@empty
\def\@evenhead{\heading@font\thepage\hfil\leftmark}%
\let\@evenfoot\@empty
}
\AtBeginDocument{%
\let\ps@opening\ps@plain
\let\ps@closing\ps@headings
}
\makeatother
\pagestyle{headings}
\begin{document}
\chapter{A chapter}
\lipsum[1-10]
\section{asdf}
\lipsum[15-17]
\end{document}
章节页面位于左侧只是为了方便(制作较小的图片)。