fancyhdr: 将部分内容放入 fancyhdr

fancyhdr: 将部分内容放入 fancyhdr

对于我的论文,我重新定义\thechapter为,\thepart因为我只使用部分、节和小节。使用下面的代码,我将节作为右侧标题,但左侧没有任何内容。如何让部分出现在左侧?

\renewcommand{\thechapter}{\thepart}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{\parttitle.\ #1}{}}}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}{}}
\fancyhead{} 
\fancyhead[L]{\textit{\leftmark}} 
\fancyhead[R]{\textit{\rightmark}}
\renewcommand{\cfoot}{\thepage} 

答案1

此代码可完成此任务。它重新定义了 LaTeX 内部命令\@part以调用\markboth。包lipsum用于提供一些虚拟文本。

另外,我清理了代码:

  • 您不需要重新\sectionmark定义\chaptermark
  • 没有命令\parttitle,它是\partname
  • 您应该使用\fancyfoot而不要重新定义\cfoot

代码:

\documentclass{book}

\renewcommand{\thechapter}{\thepart}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{} 
\fancyhead[L]{\textit{\leftmark}} 
\fancyhead[R]{\textit{\rightmark}}
\fancyfoot{}
\fancyfoot[C]{\thepage}
\makeatletter
\let\old@part\@part
\def\@part[#1]#2{\old@part[#1]{#2\markboth{\MakeUppercase{\partname.\ #1}}{}}}
\makeatother

\usepackage{lipsum}

\begin{document}

\part{PP}

\section{SS}

\lipsum[1-10]

\end{document}

相关内容