更改 \rightmark 以显示最后定义的标题

更改 \rightmark 以显示最后定义的标题

如何更改默认行为以\rightmark显示当前页面之前的最后一个定义部分。默认行为似乎是当前页面之前的最后一个定义部分如果当前页面上没有新的部分。

例如,下面生成具有默认行为的示例文档\rightmark

\documentclass[a4paper,oneside]{book}
\usepackage{lipsum}
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0pt}

\begin{document}
\chapter{Lorem Ipsum :)}
\section{Paragraphs 1 - 5}
\lipsum[1-5]
\section{Paragraphs 6 - 10}
\lipsum[1-5]
\section{Paragraphs 11 - 15}
\lipsum[1-5]
\end{document}

看起来有点像这样

在此处输入图片描述

我想让它看起来更像这样。请注意,标题现在引用了最后定义的部分

在此处输入图片描述

答案1

致谢大卫·卡莱尔感谢你向我指出\topmark


如前所述,这可以通过使用 来实现\topmark。但是,\topmark将章节作为值的一部分返回。因此,可以通过“静音” 来解决这个问题\chaptermark

就我而言,我使用了

%Header / Footer info
\pagestyle{fancy}

%Change commands so when `topmark` is used, the last defined section before the current page is used
\renewcommand{\chaptermark}[1]{\markright{#1}}
%\renewcommand{\sectionmark}[1]{\markright{#1}} %Uncomment this line if you don't like numbers

%Define the header / footer
\fancyhf{}
\fancyhead[L]{\topmark}
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0pt}

相关内容