将页面的第一部分设置为标题中的部分

将页面的第一部分设置为标题中的部分

我正在使用 fancyhdr 包作为标题,并且我希望标题中的部分名称显示当前页面中出现的第一个部分。例如,如果我在一个页面中有三个部分,如下所示:

开始

中间

结尾

我希望标题显示“开始”而不是“结束”。目前,我的标题显示最后一个。

这是我的标题代码:

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[R]{\today}
\fancyhead[L]{\leftmark}
\setlength{\headheight}{20pt}
\setlength{\headsep}{0.2in}

答案1

您可以定义并使用\leftfirstmark

\makeatletter
\newcommand*{\leftfirstmark}{%
  \expandafter\@leftmark\firstmark\@empty\@empty
}
\makeatother

例子:

\documentclass{article}
\usepackage{lipsum}% only for dummy text

\makeatletter
\newcommand*{\leftfirstmark}{%
  \expandafter\@leftmark\firstmark\@empty\@empty
}
\makeatother

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[R]{\today}
\fancyhead[L]{\leftfirstmark}
\setlength{\headheight}{20pt}
\setlength{\headsep}{0.2in}


\begin{document}
\section{Beginning}
\lipsum[1]
\section{Middle}
\lipsum[2]
\section{End}
\lipsum[3]
\end{document}

在此处输入图片描述

相关内容