[Tex/LaTex] Tikz footer and page numbering issues

header-footerpage-numberingtikz-pgf

I put a footer on all my pages using:

\newcommand\Footer{
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south, inner sep=0pt, outer sep=0pt] (footer) 
at (current page.south) {\includegraphics[width=\paperwidth]{footer.png}};
\draw [fill=nicedarkblue, draw=none] (footer.north west) rectangle 
($(footer.north east)+(0,0.1cm)$);
\node[anchor=east, inner sep=0pt, outer sep=0pt] (footerpage) 
at ($(footer.east)-(1cm,0)$) {\textcolor{white}{{\sffamily\bfseries\thepage}}};
\end{tikzpicture}
}

\pagestyle{plain}
\AtBeginShipoutFirst{\Footer}
\AtBeginShipout{\Footer}

But it fails for 3 aspects:

  • the page number appears two times (the "normal" one and the footer one)
  • the numbering in the footer is wrong: I got 1, 1, 2, 3, 4 (instead of 1, 2, 3, 4)
  • I got an extra empty page at the end for no reason

How to solve these problems?

EDIT: here is the whole document

\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[margin=10pt,font=footnotesize,labelfont=bf]{caption}
\usepackage{lipsum}
\usepackage{soul}
\usepackage{ulem}
\usepackage{fancyhdr}
\usepackage{fancybox}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{array}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{icomma}
\usepackage{floatrow}
\usepackage{subfigure}
\usepackage{enumerate}
\usepackage{appendix}
\usepackage{pdfpages}
\usepackage{multicol}
\usepackage{sistyle}
\usepackage{wasysym}
\usepackage{textcomp}
\usepackage{cellspace}
\usepackage{color}
\usepackage{xcolor}
\usepackage{cancel}
\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{tikzpagenodes} 
\usepackage{lmodern}
\usepackage{epigraph}
\usepackage{xpatch}
\usepackage{calc}
\usetikzlibrary{calc} 
\definecolor{nicedarkblue}{RGB}{0, 0, 102}
\definecolor{otherdarkblue}{RGB}{0, 32, 96}
\def\headergraphics{\includegraphics[width=\paperwidth]{header.png}}
\newlength\headerheight
\setlength\headerheight{\heightof{\headergraphics}}
\newlength\headerleftshift
\setlength\headerleftshift{2cm}
\newcommand\Header{
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=north, inner sep=0pt, outer sep=0pt] (header) at (current page.north) {\headergraphics};
\node[anchor=north west, inner sep=0pt, outer sep=0pt] (headerleft) at ($(current page.north west)+(\headerleftshift,0cm)$) {\includegraphics[height=\headerheight]{headerleft.png}};
\draw [fill=white, draw=none] (header.north west) rectangle ($(header.south west)+(\headerleftshift,0cm)$);
\draw [fill=nicedarkblue, draw=none] (header.south west) rectangle ($(header.south east)-(0cm,0.1cm)$);
\end{tikzpicture}
}
\newcommand\Footer{
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south, inner sep=0pt, outer sep=0pt] (footer) at (current page.south) {\includegraphics[width=\paperwidth]{footer.png}};
\draw [fill=nicedarkblue, draw=none] (footer.north west) rectangle ($(footer.north east)+(0cm,0.1cm)$);
\node[anchor=east, inner sep=0pt, outer sep=0pt] (footerpage) at ($(footer.east)-(1cm,0cm)$) {\textcolor{white}{{\sffamily\bfseries\thepage}}};
\end{tikzpicture}
}

\pagestyle{empty}
\AtBeginShipoutFirst{\Header\Footer}
\AtBeginShipout{\Header\Footer}

\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{hyperref}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\captionsetup{figurewithin=none}  
\captionsetup{tablewithin=none}
\renewcommand{\subfigbottomskip}{-10pt}
\let\oldcite\cite
\renewcommand\cite[1]{\textsuperscript{\oldcite{#1}}}
\hypersetup{
    colorlinks,%
    citecolor=blue,%
    filecolor=blue,%
    linkcolor=blue,%
    urlcolor=blue
}

\makeatletter
\long\def\@makefntextFB#1{%
    \ifx\thefootnote\ftnISsymbol
        \@makefntextORI{#1}%
    \else
        \rule\z@\footnotesep
        \setbox\@tempboxa\hbox{\@thefnmark}%
            \ifdim\wd\@tempboxa>\z@
                \kern2em\llap{\@thefnmark.\kern0.5em}%
            \fi
        \hangindent2em\hangafter\@ne#1
    \fi}
\makeatother

\newcommand*\eqbox[1]{
\definecolor{shadowcolor}{RGB}{0, 0, 102}\setlength\shadowsize{2pt}\shadowbox*{#1}
}

\begin{document}
\chapter*{First chapter}
Test

\chapter{Second chapter}
Test

\end{document}

and the problem remains with \pagestyle{empty}

Best Answer

For first, remove \pagestyle{plain} and put \pagestyle{empty}

For other two, use eso-pic and use the following:

\newcommand\Header{%                  %%%<---- % added at end
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=north, inner sep=0pt, outer sep=0pt] (header) at (current page.north) {\headergraphics};
\node[anchor=north west, inner sep=0pt, outer sep=0pt] (headerleft) at ($(current page.north west)+(\headerleftshift,0cm)$) {\includegraphics[height=\headerheight]{headerleft.png}};
\draw [fill=white, draw=none] (header.north west) rectangle ($(header.south west)+(\headerleftshift,0cm)$);
\draw [fill=nicedarkblue, draw=none] (header.south west) rectangle ($(header.south east)-(0cm,0.1cm)$);
\end{tikzpicture}%                  %%%<---- % added at end
}
\newcommand\Footer{%                  %%%<---- % added at end
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south, inner sep=0pt, outer sep=0pt] (footer) at (current page.south) {\includegraphics[width=\paperwidth]{footer.png}};
\draw [fill=nicedarkblue, draw=none] (footer.north west) rectangle ($(footer.north east)+(0cm,0.1cm)$);
\node[anchor=east, inner sep=0pt, outer sep=0pt] (footerpage) at ($(footer.east)-(1cm,0cm)$) {\textcolor{white}{{\sffamily\bfseries\thepage}}};
\end{tikzpicture}%                  %%%<---- % added at end
}

\pagestyle{empty}                                       %%%<---- changed
\usepackage{eso-pic}                                    %%%<---- % new
\AddToShipoutPictureBG{\Header\Footer}                  %%%<---- % new

Please not that I removed

\AtBeginShipoutFirst{\Header\Footer}
\AtBeginShipout{\Header\Footer}

which was problematic and added

\usepackage{eso-pic}                                    %%%<---- % new
\AddToShipoutPictureBG{\Header\Footer}                  %%%<---- % new

instead.

Full code (not a MWE)

\documentclass[12pt,a4paper,demo]{report}    %%% remove demo in your file
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[margin=10pt,font=footnotesize,labelfont=bf]{caption}
\usepackage{lipsum}
\usepackage{soul}
\usepackage{ulem}
\usepackage{fancyhdr}
\usepackage{fancybox}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{array}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{icomma}
\usepackage{floatrow}
\usepackage{subfigure}
\usepackage{enumerate}
\usepackage{appendix}
\usepackage{pdfpages}
\usepackage{multicol}
\usepackage{sistyle}
\usepackage{wasysym}
\usepackage{textcomp}
\usepackage{cellspace}
\usepackage{color}
\usepackage{xcolor}
\usepackage{cancel}
\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{tikzpagenodes}
\usepackage{lmodern}
\usepackage{epigraph}
\usepackage{xpatch}
\usepackage{calc}
\usetikzlibrary{calc}
\definecolor{nicedarkblue}{RGB}{0, 0, 102}
\definecolor{otherdarkblue}{RGB}{0, 32, 96}
\def\headergraphics{\includegraphics[width=\paperwidth,height=1cm]{header.png}}
\newlength\headerheight
\setlength\headerheight{\heightof{\headergraphics}}
\newlength\headerleftshift
\setlength\headerleftshift{2cm}
\newcommand\Header{%
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=north, inner sep=0pt, outer sep=0pt] (header) at (current page.north) {\headergraphics};
\node[anchor=north west, inner sep=0pt, outer sep=0pt] (headerleft) at ($(current page.north west)+(\headerleftshift,0cm)$) {\includegraphics[height=\headerheight]{headerleft.png}};
\draw [fill=white, draw=none] (header.north west) rectangle ($(header.south west)+(\headerleftshift,0cm)$);
\draw [fill=nicedarkblue, draw=none] (header.south west) rectangle ($(header.south east)-(0cm,0.1cm)$);
\end{tikzpicture}%
}
\newcommand\Footer{%
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=south, inner sep=0pt, outer sep=0pt] (footer) at (current page.south) {\includegraphics[width=\paperwidth]{footer.png}};
\draw [fill=nicedarkblue, draw=none] (footer.north west) rectangle ($(footer.north east)+(0cm,0.1cm)$);
\node[anchor=east, inner sep=0pt, outer sep=0pt] (footerpage) at ($(footer.east)-(1cm,0cm)$) {\textcolor{white}{{\sffamily\bfseries\thepage}}};
\end{tikzpicture}%
}

\pagestyle{empty}
\usepackage{eso-pic}
\AddToShipoutPictureBG{\Header\Footer}

\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{hyperref}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\captionsetup{figurewithin=none}
\captionsetup{tablewithin=none}
\renewcommand{\subfigbottomskip}{-10pt}
\let\oldcite\cite
\renewcommand\cite[1]{\textsuperscript{\oldcite{#1}}}
\hypersetup{
    colorlinks,%
    citecolor=blue,%
    filecolor=blue,%
    linkcolor=blue,%
    urlcolor=blue
}

\makeatletter
\long\def\@makefntextFB#1{%
    \ifx\thefootnote\ftnISsymbol
        \@makefntextORI{#1}%
    \else
        \rule\z@\footnotesep
        \setbox\@tempboxa\hbox{\@thefnmark}%
            \ifdim\wd\@tempboxa>\z@
                \kern2em\llap{\@thefnmark.\kern0.5em}%
            \fi
        \hangindent2em\hangafter\@ne#1
    \fi}
\makeatother

\newcommand*\eqbox[1]{
\definecolor{shadowcolor}{RGB}{0, 0, 102}\setlength\shadowsize{2pt}\shadowbox*{#1}
}

\begin{document}
\chapter*{First chapter}
Test

\chapter{Second chapter}
Test

\end{document}

enter image description here