我正在使用此代码
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
\lhead{\textit{\leftmark}}
\rhead{\textit{\rightmark}}
\rfoot{\textit{Page \thepage}}
\renewcommand{\sectionmark}[1]{\xdef\leftmark{\thesection\quad#1}\xdef\rightmark{}}
\renewcommand{\subsectionmark}[1]{\xdef\rightmark{\thesubsection\quad#1}}
在页眉中打印子节标题。但是,我遇到的问题是,如果将子节打印在页面顶部,则它会显示在上一页的页眉中。如下所示。
这是第 1.1 节,但标题显示第 1.2 节。我该如何修复此问题?我当前的解决方案是执行以下操作。
\begin{Def}
Let $\{M_i:i \in \{1,\ldots ,k\} \}$ be a family of submodules of an $R$-module $M$. Then $M$ is the \textit{direct sum} of $M_1,\ldots ,M_k$ if\\
\indent i) $M=M_1\oplus \ldots \oplus M_k\coloneqq \{ m_1+\ldots +m_k: m_i \in M_i\}$; \\
\indent ii) $M_i \cap M_j = \emptyset $ for all $i \neq j$.
\end{Def}
\newpage
所以我只需\newpage
在页面末尾添加一个命令即可解决问题。
答案1
在您的代码中,\xdef\leftmark
用\markboth
和\xdef\rightmark
替换\markright
,以便重新定义\sectionmark
和的两行将\subsectionmark
如下所示:
\renewcommand{\sectionmark}[1]{\markboth{\thesection\quad#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{\thesubsection\quad#1}}