73

I'm using the package fancyhdr to format my footers and headers, with my name in the header and a n of m pages format for the footer. Like so:

\pagestyle{fancy}
\fancyhf{} % clear all header and footer fields
\fancyhead[C]{Name}
\fancyfoot[C]{\footnotesize Page \thepage\ of \pageref{LastPage}}

By default, the fancy page style only affects the pages after the first page. I know I can set the first page to the fancy page style using \thispagestyle, but I only want the first page to use the footer, not the header. Is there a way to create a custom style that just the first page will use?

migrated from stackoverflow.com Oct 2 '11 at 10:44

This question came from our site for professional and enthusiast programmers.

  • Welcome to TeX.sx! Your question was migrated here from Stack Overflow. Please register on this site, too, and make sure that both accounts are associated with each other, otherwise you won't be able to comment on or accept answers or edit your question. – N.N. Oct 3 '11 at 8:38
72

The \fancypagestyle command can be used to create custom styles:

\fancypagestyle{firststyle}
{
   \fancyhf{}
   \fancyfoot[C]{\footnotesize Page \thepage\ of \pageref{LastPage}}
}

Then just use \thispagestyle{firststyle} on the first page.

  • how to remove the horizontal bar that is still appearing on the first page ? – The Beast Jun 3 '16 at 2:02
  • 1
    The horizontal bar can be removed using the code \renewcommand{\headrulewidth}{0pt} – Jiangwei Xue Jan 24 '17 at 10:07
22

The best strategy is probably to redefine the plain page style that LaTeX applies automatically with \maketitle in the article class or with \chapter in the report and book classes:

\fancypagestyle{plain}{%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyhf{}%
  \fancyfoot[C]{\footnotesize Page \thepage\ of \pageref{LastPage}}%
}
  • Do I need to explicitly put a \label{LastPage} on the last page? – Matsmath Nov 19 '17 at 23:10
  • 2
    @Matsmath No, that's done automatically by the lastpage package, which you should load. – egreg Nov 19 '17 at 23:26
  • Does not work for me in IEEE paper. Ony starts from second page. Had to add – dorien Dec 6 '17 at 10:19
8

A solution not constrained to cases where \maketitle is used and hence is perhaps more flexible:

\usepackage{ifthen}
...
\rhead{\ifthenelse{\value{page}=1}{\bfseries p1-title}{p2-and-following-title}}

MWE:

\documentclass{article}

\usepackage{lipsum}

\usepackage{ifthen}

% \usepackage[top=10mm, bottom=10mm, left=10mm, right=10mm,includehead,includefoot]{geometry}

\usepackage{fancyhdr}
\pagestyle{fancy}

\lhead{}
\chead{}

\rhead{\ifthenelse{\value{page}=1}{\bfseries The performance of Black Swans}{second page}}

\lfoot{From: K. Smith}
\cfoot{To: Jean A. Cory}
\rfoot{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}

\lipsum

\end{document}
  • The second of these pieces of code does not work, even when one corrects the obvious typos. \renewcommand is not approriate here, and you should just use the command \rhead as in you first snippet. There are formatting problems with you answer, and you should not just post a duplicate of another of your answers. A comment with a link would be more appropriate in this case. – Andrew Swann Jul 4 '13 at 11:09
  • @AndrewSwann Marked the other Q&A as duplicate (and also deleted my answer there), and got rid of the "alternative" :-) – nutty about natty Jul 4 '13 at 11:48
  • That's an improvement. The first sentence of your answer still looks strange though and answers are better with a complete working document rather than code snippets. – Andrew Swann Jul 4 '13 at 15:12
  • @AndrewSwann added an MWE, changed the first sentence ;) – nutty about natty Jul 4 '13 at 15:36
5

It might be the case that the first page is not showing the desired fancy style because you are using \maketitle in it. \maketitle automatically resets the pagestyle to plain.

In that case, simply adding \pagestyle{fancy} after the \maketitle command should solve the problem:

\maketitle
\pagestyle{fancy}   % add this after maketitle
  • Did you test this? – cfr Nov 4 '16 at 3:21
  • @cfr, yes, I did test it. Note that different classes or packages my override \maketitle making it behave differently. – Rudy Matela Dec 20 '16 at 19:53
  • 1
    For \documentclass{article} this worked for me: \maketitle \\ \thispagestyle{fancy} – alfC Nov 2 '17 at 9:45
1

Another possibility: Instead of hard-coding something into the header or footer, use something like this:

\fancyhead[<where>]{\myCurrentHead}
\fancyfoot[<where>]{\myCurrentFoot}

Then dynamically re-define \myCurrentHead and \myCurrentFoot content on the fly. The headers and footers will apply the most recently seen values, at the time the end of the page is reached. The values can be styled. And, the values can be empty, equivalent to an omitted header or footer (without changing the page style).

I have used this for a collection of short stories, where the author's name appears in verso header, and the story title in recto header. Change the current content at each new story start.

Might be problems if the size of content (such as line count) changes, but I have not tested that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy