НО

НО

Чтобы объяснить мою проблему, позвольте мне начать с моего MWE:

\documentclass[a4paper,10pt]{book}
\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{extramarks}
\makeatletter
 \renewcommand\chapter{\@startsection%                          
  {chapter}{0}{0mm}%
  {2.5\baselineskip}{1.5\baselineskip}%
  {\centering\normalfont\large\scshape
  }%
 }
 \makeatother
 \newcommand{\mychap}[1]{
 \chapter*{#1}
 \markboth{#1}{#1}}
 \renewcommand{\sectionmark}{}
\renewcommand{\chaptermark}{\markboth{\thechapter}}
\pagestyle{fancy}
\fancyhf{}
\fancyhead{}

  \fancyhead[LE]{{\thepage}}
 \fancyhead[RE]{ {\itshape \nouppercase  \firstleftmark}}%higher level \scshape  \MakeUppercase
  \fancyhead[LO]{ {\itshape \nouppercase  \lastrightmark}} 
  \fancyhead[RO]{ {\thepage}}   %odd page
\begin{document}
\mychap{one}
\lipsum
\mychap{two}
aaa
\mychap{five halves}
\mychap{three}
\lipsum
\mychap{fourth}
\lipsum[5]
\mychap{five}
d
\end{document}

Заметить, что:

  1. Я хочу рассматривать главы как разделы (без разрывов страниц, с простым заголовком)
  2. В заголовке я хочу указать название главы.

Мне удалось получить эти функции

НО

Я бы хотел получить также

  1. В заголовкестранныйстраницы Я хочупоследнийглава, появляющаяся на странице (кажется, это работает с использованием \lastrightmark)
  2. В заголовкедажестраницы, которые я не хочупервыйглава начинается на странице, но,текущийглава, т.е. глава, которую я читаю, переворачивая страницу.

В моем примере

  1. На странице 2 я хотел бы поставить «один», так как вторая глава начинается после разрыва страницы между страницей 1 и страницей 2;
  2. На странице 4 я хотел бы поставить цифру «четыре», поскольку пятая глава начинается после разрыва страницы между страницей 3 и 4.

Как я могу это получить?

решение1

Вы можете получить эти заголовки, установив \extramarksи используя их следующим образом:

\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}

\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}

Таким образом, в документе, подобном вашему образцу, вы получаете one' in the heading page 2 andчетыре` в заголовке страницы 4, как вы и просили.

Страница 1

Страница 2

Страница 3

Страница 4

\documentclass[a4paper,10pt]{book}

\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{extramarks}

\makeatletter
\renewcommand\chapter{\@startsection%
{chapter}{0}{0mm}%
{2.5\baselineskip}{1.5\baselineskip}%
{\centering\normalfont\large\scshape
}%
}
\makeatother

\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}

\pagestyle{fancy}
\fancyhf{}
\fancyhead{}

\fancyhead[LE]{\thepage}
\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}
\fancyhead[RO]{\thepage}

\begin{document}

\mychap{One}
\lipsum
\mychap{Two}
Two words.
\mychap{Two and a half}
\mychap{Three}
\lipsum
\mychap{Four}
\lipsum[5]
\mychap{Five}
A sentence of five words.
\end{document}

Обратите внимание, что оба\markboth и \extramarksнеобходимо получить правильные значения (которые могут зависеть от «ошибки» в extramarks). Также мне пришлось использовать \MakeLowercaseпринудительное приведение текста заголовка к желаемой форме, поскольку теперь мы больше не используем стандартные метки.

Связанный контент