[Tex/LaTex] How to remove header from frontmatter

fancyhdrheader-footer

I have a header created with fancyhdr. It repeats on all the pages including Table of Contents and Preface sections. I tried to use \thispagestyle{empty} but it only works on the first page while I need to clear it in the frontmatter

\documentclass[11pt]{book}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\nouppercase{\leftmark}}
\fancyhead[LO]{\nouppercase{\rightmark}}

\renewcommand\headrulewidth{1.5pt}
\makeatletter
\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
        \hrule\@height\headrulewidth\@width\headwidth
        \vskip 2pt% 2pt between lines
        \hrule\@height.5pt\@width\headwidth% lower line with .5pt line width
        \vskip-\headrulewidth
        \vskip-1.5pt}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\thispagestyle{empty}
\frontmatter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Table of contents

\tableofcontents
\chapter{Preface}
\lipsum
\lipsum
\mainmatter
\chapter{Ch1}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\lipsum
\section{test}
\chapter{ch2}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}
\section{test}

\end {document}

Best Answer

change this one

\thispagestyle{empty}

to

\pagestyle{empty}

and insert \pagestyle{fancy} here

\mainmatter
\chapter{Ch1}

It will looks now like

\mainmatter
\pagestyle{fancy}
\chapter{Ch1}