使用 rightmark 在第一页显示章节名称

使用 rightmark 在第一页显示章节名称

我在让部分名称显示在页面顶部时遇到了问题。我知道\leftmark这是正确的做法,但我希望只有当没有子部分名称时才显示部分名称,并且不大写。

换种方式解释:这是一份 3 页的文档。第一页的页眉中没有任何内容,我希望页眉中有“1 A 部分”,但接下来的页面应保持不变:

\documentclass[twoside]{article}
\usepackage{fancyhdr}

%Header defined
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO]{\rightmark}
\fancyhead[LE]{\rightmark}

\begin{document}
\section{A section}

\newpage

\subsection{A subsection}

\newpage

\subsection{Another subsection}

\end{document}

提前致谢。

答案1

您必须重新定义 \sectionmark 来填充标记的正确部分。 \rightmark 总是使用第一个标记,因此如果您在一页上有章节或小节,您将得到第一个。

\documentclass[twoside]{article}
\usepackage{fancyhdr}

\renewcommand*\subsectionmark[1]{}

%Header defined
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO]{\rightmark}
\fancyhead[LE]{\rightmark}

\renewcommand*\sectionmark[1]{%
 \markboth{\thesection\hskip 1em\relax#1}{\thesection\hskip 1em\relax#1}}

 \begin{document}
\section{A section}
\section{B section}
\newpage

\subsection{A subsection}
\subsection{B subsection}
\newpage

\subsection{Another subsection}

\end{document}

相关内容