\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}