答案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}