我在让部分名称显示在页面顶部时遇到了问题。我知道\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}