Fancyhdr:页眉和页码居中规则

Fancyhdr:页眉和页码居中规则
\documentclass[10pt]{book}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{fancyhdr}


\title{My Book}
\author{Me}
\begin{document}
\maketitle

\chapter{My Chapter}
\lipsum
\end{document}

我怎样才能将书名和章节标题交替居中放置在规则之间的顶部,并将页码放置在规则之间的底部?(有关想法请参见下图。)

在此处输入图片描述

答案1

使用\hrulefill,您将获得一条横跨所有可用空间的水平线。因此,\hrulefill\thepage\hrulefill您将获得横跨整个文本区域宽度的“行页码行”。您可以使用 将其设置为页脚\fancyfoot[C]。您想稍微调整一下外观:

  • 这些线不应该直接连接到页码,因此您需要在页码的左侧和右侧添加相同的水平空间,例如\quad
  • 默认情况下,该线绘制在页码的基线上,但在您的示例中,它是垂直居中在页码周围。因此,您需要使用类似 的命令来降低页码\raisebox{-3pt}

标题和标题也有可能,只需进行相同的“调整”。还有一些需要考虑的事情:

  • 您可以使用\markboth{\@title}{\@title}(也许添加一些文本格式宏)将您设置的标题\title也用于标题。请确保在之后\title但在之前调用它\maketitle
  • 您需要重新定义\chaptermark\sectionmark等,以确保您不会用书名覆盖左标记,而只将章节标题(以及,如果适用的话,章节标题等)插入到右标记。

作为开发页眉和页脚样式的起点,下面是一个最小示例。

\documentclass{book}
\usepackage{lipsum}

\title{My Book}
\author{Me}

\makeatletter
\markboth{\textsc{\@title}}{\textsc{\@title}}
\makeatother

\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[C]{\hrulefill\quad\raisebox{-3pt}{\thepage}\quad\hrulefill}
\fancyhead[CO]{\hrulefill\quad\raisebox{-3pt}{\leftmark}\quad\hrulefill}
\fancyhead[CE]{\hrulefill\quad\raisebox{-3pt}{\rightmark}\quad\hrulefill}
\renewcommand{\headrulewidth}{0pt}
}
\pagestyle{plain}

\renewcommand{\chaptermark}[1]{\markright{\textsc{#1}}}
\renewcommand{\sectionmark}[1]{}
\renewcommand{\subsectionmark}[1]{}

\begin{document}
\maketitle
\chapter{My Chapter}
\lipsum
\end{document}

在此处输入图片描述

相关内容