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請務必在 after\title但 before 之前調用它\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}

在此輸入影像描述

相關內容