标题中上一节出现的子节名称

标题中上一节出现的子节名称

我正在使用article带有twoside选项的类来准备文档。在页眉中,我希望左页页眉包含section,而右页页眉包含subsection。我使用以下代码:

\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\let\Sectionmark\sectionmark
\def\sectionmark#1{\def\Sectionname{#1}\Sectionmark{#1}}
\let\Subsectionmark\subsectionmark
\def\subsectionmark#1{\def\Subsectionname{#1}\Subsectionmark{#1}}
\fancyhf{}
\fancyhead[CE]{\Sectionname}
\fancyhead[CO]{\Subsectionname}
\begin{document}
    \section{Section 1}
    \lipsum[1-2]
    \subsection{Subsection 1.1}
    \lipsum[1-4]
    \section{Section 2}
    \lipsum[1-10]
\end{document}

这种方法效果很好,直到出现没有子节的节。在这种情况下,右侧页眉将延续最后一节的最后一个子节。我希望右侧页眉变为空白。我该如何实现?

答案1

我认为接下来的代码可以在每种情况下解决您的问题:

\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage{fancyhdr,extramarks}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[EC]{\leftmark}
\fancyhead[OC]{\lastrightmark}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\begin{document}
\section{Section 1}
\lipsum[1-2]
\subsection{Subsection 1.1}
\lipsum[1-40]
\section{Section 2}
\lipsum[1-23]
\subsection{Subsection 2.1}
\lipsum[24-45]
\end{document}

相关内容