如何更改默认行为以\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}