(文章文档类) fancyhdr 标题中的部分和章节

(文章文档类) fancyhdr 标题中的部分和章节

我正在使用 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}

修改标题

相关内容