[Tex/LaTex] fancyhdr: putting part in fancyhdr

fancyhdrheader-footerparts

For my dissertation I've redefined \thechapter as \thepart because I'm only using parts, sections and subsections. With the code below I get the section as the right header but nothing on the left. How do I get the part to appear on the left?

\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} 

Best Answer

This code does the job. It redefines LaTeX internal command \@part to call \markboth. Package lipsum is there to provide some dummy text.

As well, I cleaned the code:

  • You don't need to redefine \sectionmark nor \chaptermark.
  • There is no command \parttitle, it's \partname.
  • You should use \fancyfoot and don't redefine \cfoot.

The code:

\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}