我正在使用 fancyhdr 包,其中article
包含以下代码
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[LO]{\textit{\nouppercase{\rightmark}}}
目前,\leftmark
并\rightmark
给出章节和子章节标题。我的子章节非常短,在跨页中,子章节标题很可能实际上在页面上,因此我不需要将其放在页眉中来引用它。但part*
我的文档中确实有几个 s。
我想使用部分名称(在偶数页上)和章节名称(在奇数页上),如下所示:
| 15 Third part* title | §2 2nd section title 16 |
| | |
| Content of the 15th page, | Content of the 16th page, |
| continuing to the next | continuing to the next |
| line. | line. |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
我粘贴了一个 MWE 用于测试目的
\documentclass[twoside]{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setlength{\headheight}{16pt}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[LO]{\textit{\nouppercase{\rightmark}}}
\begin{document}
\part*{First part title}
\section{First section title}
Abc
\newpage
\subsection{First subsection title}
Def
\newpage
\subsection{Second subsection title}
Ghi
\newpage
\part*{Second part title}
\section{Second section title}
Jkl
\newpage
Mno
\end{document}
答案1
通常,带星号的分段命令在任何情况下都不会自动设置标题。但是,从您的 MWE 来看,我假设您希望它们这样做。此代码用于修补未加星号和加星号的命令以标记标题。使用来自文档的etoolbox
修改后的代码重新定义了节和子节命令。fancyhdr
\documentclass[twoside]{article}
\usepackage{fancyhdr,etoolbox}
\pagestyle{fancy}
\setlength{\headheight}{16pt}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[LO]{\textit{\nouppercase{\rightmark}}}
\renewcommand\sectionmark[1]{\markright{#1}}
\renewcommand\subsectionmark[1]{\relax}
\makeatletter
\patchcmd{\@part}{\markboth{}{}}{\markboth{#1}{}}{\typeout{done patching part!}}{\typeout{oh dear! could not patch part command...}}
\patchcmd{\@spart}{\nobreak}{\nobreak\markboth{#1}{}}{\typeout{done patching starred part!}}{\typeout{oh dear! could not patch starred part command...}}
\makeatother
\begin{document}
\part*{First part title}
\section{First section title}
Abc
\newpage
\subsection{First subsection title}
Def
\newpage
\subsection{Second subsection title}
Ghi
\newpage
\part*{Second part title}
\section{Second section title}
Jkl
\newpage
Mno
\end{document}