尽管这个问题询问如何从默认的“显示最后部分页眉中的页面”以“显示第一部分在标题中”我遇到了相反的问题:自定义文档类用于fancyhdr
设置标题,并且似乎可以神奇地从默认标题切换。现在需求发生了变化,我需要恢复 fancyhdr 默认行为。
我该怎么做才能最后部分奇数页的页眉中存在双页吗?
我没有发现自定义类中的代码有任何错误,所以我想知道他们在哪里改变了行为?
这将启动一个自定义部分称为“Abschnitt”或“Ueberschrift 2”:
\def\my@Abschnitt#1*[#2]#3{% % ( Ueberschrift 2 )
...
\markright{% %
{% %
\protect\my@markit\theMyAbschnitt\relax{#2}%
}% %
}% %
...
为my@markit
:
\def\my@markone{}% %
\def\my@marktwo{}% %
\def\my@markit#1\relax#2{% %
\gdef\my@markone{#1}% %
\gdef\my@marktwo{#2}% %
} %
和fancyhdr
配置:
\newcommand\my@rightmark{%
...
\relax %
\rightmark\relax % contains \my@markit
...
\my@markone% number
\kern1em% sep
...
\my@marktwo% text
...
}%
我在这里只跳过了格式化命令但跳过了神奇的逻辑。
因此,我真的看不到任何改变(所谓的)默认行为的fancyhdr
证据最后部分到第一部分。但事实上,它就在那里。我怎样才能撤消该更改?
答案1
默认情况下\rightmark
打印第一个右标记,而\leftmark
打印最后一个左标记。因此,您将获得默认行为。加载 extramarks 包,它定义了一个\lastrightmark
命令:
\documentclass[]{book}
\usepackage{fancyhdr}
\usepackage{extramarks}
\pagestyle{fancy}
\lhead{Rightmark: first: \rightmark, last: \lastrightmark}
\begin{document}
abc
\markright{first}
\markright{second}
\markright{last}
\end{document}