我正在尝试修改页脚中页码的字体大小,但在使用题词时遇到章节页面问题。这是我的 MWE:
\documentclass[12pt,oneside]{book}
\usepackage{epigraph, fancyhdr}
\newcommand{\changefont}{\fontsize{10}{11}\selectfont}
% clear plain page style
\fancypagestyle{plain}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\changefont \thepage}
}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE]{\changefont \slshape \rightmark}
\fancyhead[RO]{\changefont \slshape \leftmark}
\fancyfoot[C]{\changefont \thepage}
\renewcommand{\chaptermark}[1]{%
\markboth{\chaptername
\ \thechapter.\ #1}{}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\frontmatter{}
\fancyhead[LE,RO]{\changefont \slshape Acknowledgements}
\fancyfoot[C]{\changefont \thepage}
\chapter*{Acknowledgements}
\epigraphhead[70]{\epigraph{The isolated man does not develop any intellectual power. It is necessary for him to be immersed in an environment\ldots}{Alan Turing}}
Acknowledgements go here.
\end{document}
我尝试使用修改后的页脚更改题词页面样式,使用
\fancypagestyle{epigraph}{\fancyfoot[C]{\changefont \thepage}}
但这会删除我的题词。有什么想法吗?
答案1
修改页脚中页码大小的正确方法是重新定义宏,使用命令设置该页面(其中提供了)\epigraphhead
的页面样式。这不能使用 来完成,因为这会删除题词本身。题词的位置和放置由该宏以及页面样式定义处理。\epigraphhead[...]{...}
\ps@epigraph
\fancypagestyle{epigraph}{\fancyfoot[C]{\changefont \thepage}}
正确的方法是在之前添加宏\begin{document}
:
\makeatletter
\renewcommand{\epigraphhead}[2][95]{%
\def\@epitemp{\begin{minipage}{\epigraphwidth}#2\end{minipage}}
\def\ps@epigraph{\let\@mkboth\@gobbletwo
\@epipos
\if@epirhs
\def\@oddhead{\hfil\begin{picture}(0,0)
\put(0,-#1){\makebox(0,0)[r]{\@epitemp}}
\end{picture}}
\else
\if@epicenter
\def\@oddhead{\hfil\begin{picture}(0,0)
\put(0,-#1){\makebox(0,0)[b]{\@epitemp}}
\end{picture}\hfil}
\else
\def\@oddhead{\begin{picture}(0,0)
\put(0,-#1){\makebox(0,0)[l]{\@epitemp}}
\end{picture}\hfil}
\fi
\fi
\let\@evenhead\@oddhead
\def\@oddfoot{\reset@font\hfil\changefont\thepage\hfil}
\let\@evenfoot\@oddfoot}
\thispagestyle{epigraph}}
\makeatother
笔记:我已经添加了\changefont
的定义\@oddfoot
。
宏中还\reset@font
提供了一个命令。我们也可以通过设置为不带上面提供的调整来\@oddfoot
更改字体大小。\changefont
\reset@font
我认为这不是一个好主意,因为它像核心宏\reset@font
一样工作。\normalfont
\makeatletter
\let\reset@font\changefont
\makeatother