页码位置

页码位置

我正在使用 documentclass 处理 LaTeX 中的长文档book。我需要页码始终位于每页的右上角,甚至如果该页面是章节的第一页(目前,在章节的第一页上,页码位于下方中央,在所有其他页面上,页码位于右上角)。

我使用以下命令控制页码的位置fancyhdr

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

另外,我不知道问题是否相关,但我的章节不是从页面顶部开始的。有一个白色区域,然后是第 X 章,然后是章节行的换行符。我还希望章节从页面顶部开始。

这里的主要问题是如何让页码始终出现在右上角,我只在可能相关的情况下提到章节标题位置的内容。

答案1

即使选择了其他样式,章节的第一页也会使用普通的页面样式。您可以通过\thispagestyle{fancy}在每个\chapter{}命令后添加来修复此问题。

章节首页顶部的空白区域是标准章节样式的一部分。您可以使用该fncychap包创建自己的样式(或使用其中一种包中的样式)。

更新:对于由命令(例如\tableofcontents)生成的跨页特殊章节,添加\thispagestyle{fancy}将不起作用。更通用的解决方案是在序言中添加以下内容:

\makeatletter
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                    \thispagestyle{fancy}%
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@chapter\@schapter}
\makeatother

答案2

如果我理解正确的话,唯一的问题是普通的页面样式没有在 fancyhdr 中定义。所以你所要做的就是

来自手册

\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyhead[RO,RE]{\thepage} %RO=right odd, RE=right even
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}

请注意,有三种页面样式。

空:用于诸如标题页之类的页面。

plain:用于章节开始,包括列表的开始,例如 \tableofcontens 和 \listoffigures

fancy:适用于普通文本页面

除了 fancyhdr 之外,还有其他页面(例如 scrpage2)允许操作页面样式。

答案3

修改常规和特殊章节(例如目录)的页面样式很容易。章节通常会覆盖当前页面样式,将其设置为plainfancyhdr提供了一个命令\fancypagestyle来重新定义其他页面样式,这样,您只需重新定义样式即可获得章节页面上所需的样式,plain如下所示:

\fancypagestyle{plain}{\pagestyle{fancy}}

本文档的第 7 节对此进行了解释fancyhdr

答案4

章节页面默认使用页面样式 plain。包 fancyhdr 不会自动重新定义 plain。但如果您将页面样式替换fancy为,fancyplain则可以同时修改两种样式:

\documentclass{report}
\usepackage{blindtext}% only for dummy text
\usepackage{fancyhdr}
\pagestyle{fancyplain}% <- use fancyplain instead fancy
\fancyhf{}
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\begin{document}
\blinddocument
\end{document}

结果:

在此处输入图片描述

如果应该有不同的内容plainfancy使用宏\fancyplain

\documentclass{report}
\usepackage{blindtext}% only for dummy text
\usepackage{fancyhdr}
\pagestyle{fancyplain}% <- use fancyplain instead fancy
\fancyhf{}
\fancyhead[L]{content for \fancyplain{plain}{fancy} pages}% <- added
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\begin{document}
\blinddocument
\end{document}

结果:

在此处输入图片描述

如果所有页面都应该有一个 head 规则,则删除 的重新定义\headrulewidth并重新定义\plainheadrulewidth

\documentclass{report}
\usepackage{blindtext}% only for dummy text
\usepackage{fancyhdr}
\pagestyle{fancyplain}% <- use fancyplain instead fancy
\fancyhf{}
\fancyhead[L]{content for \fancyplain{plain}{fancy} pages}% <- added
\fancyhead[R]{\thepage}
%\renewcommand\headrulewidth{0pt}% default ist .4pt
\renewcommand{\plainheadrulewidth}{.4pt}% default is 0pt
\begin{document}
\blinddocument
\end{document}

结果:

在此处输入图片描述

相关内容