我正在使用 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}