但

为了解释我的问题,让我从我的 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强制标题文本为所需格式,因为我们现在不再使用标准标记。

相关内容