В моем документе класса книги заголовки глав есть только на страницах LE и RO, и я хочу, чтобы то же самое было и на страницах содержания. Я пробовал полностью удалить заголовки с помощью \makeatletter \let\@mkboth\relax \makeatother
и добавить \fancyhead[LE,RO]{\leftmark}
, но это привело к тому, что слово Содержание появилось в верхнем регистре рядом с заголовком оглавления. Ниже приведен MWE, и добавлено изображение того, что я получаю:
\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\begin{document}
\pagestyle{fancy}
\makeatletter
\let\@mkboth\relax
\makeatother
\tableofcontents%
\fancyhead[LE,RO]{\leftmark}
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}
Любая ссылка на решение приветствуется.
Тип заголовков, которые мне нужны для страниц содержания, за исключением первой страницы, как и во всех главах, показан на рисунке ниже:
решение1
Редактироватьпосле комментария: Кажется, я наконец понял, на какой вопрос вы на самом деле хотите ответить.
Я использую
fancyhdr
заголовки глав и разделов в заголовке. Однако для страниц оглавления заголовок главы "СОДЕРЖАНИЕ" отображается с обеих сторон заголовка, т.е. также как заголовок раздела. Как мне убрать его с одной стороны заголовка?
На это есть простой ответ: используйте \markright{}
для очистки части заголовка "название раздела". Вы можете сделать это, обернув его в \addtocontents{toc}
(чтобы он был сразу после вызова заголовка главы \markboth
на первой странице содержания) и \AtBeginDocument
(чтобы он был в первой "записи" в таблице содержания).
\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\AtBeginDocument{\addtocontents{toc}{\protect\markboth{\textsl{CONTENTS}}{}}}
\begin{document}
\pagestyle{fancy}
\tableofcontents%
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}
Старый ответ:
Без какого-либо ручного вмешательства заголовок по умолчанию на последующих страницах оглавления имеет "СОДЕРЖАНИЕ" заглавными буквами слева и справа. Первая страница оглавления не имеет заголовка, как и все другие начальные страницы глав.
\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\begin{document}
\pagestyle{fancy}
\tableofcontents%
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}
Чтобы изменить то, что помещается в заголовок для страниц таблицы содержания, вам нужно вызвать, \markboth
который перезаписывает то, что уже было помещено туда заголовком таблицы содержания. Нет необходимости взламывать какие-либо другие команды, чтобы не вызывать \markboth
или связанные команды, так как цель этих макросов на самом деле перезаписать то, что уже там есть. Так что вам на самом деле нужно только вызвать\markboth
послезаголовок главы оглавления идопервый разрыв страницы, т.е. в идеале сразу после заголовка главы.
Вдохновленэтот ответ, я бы добавил \markboth
вызов TOC в качестве первой записи (чтобы он вызывался сразу после заголовка главы). Чтобы убедиться, что это первая запись, можно использовать \AtBeginDocument
в преамбуле. Минимальный пример:
\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\AtBeginDocument{\addtocontents{toc}{\protect\markboth{Contents}{\textnormal{More Contents}}}}
\begin{document}
\pagestyle{fancy}
\tableofcontents%
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}
Конечно, теперь вы захотите изменить это, чтобы получить точную формулировку и также стиль форматирования текста для заголовка, который вам нужен. Обратите внимание, что стиль по умолчанию (по крайней мере, в этом минимальном примере) — курсивный текст, поэтому вам может потребоваться его перезаписать.