typing on keyboard [cropped]

Package Fancyhdr Warning: \fancyfoot’s `E’ option without twoside option is useless

Too long, not going to read: I got the LaTeX warning
Package Fancyhdr Warning: \fancyfoot’s `E’ option without twoside option is useless
in a LaTeX project and I solved it.

I have two similar LaTeX projects, both using more or less the same code as each other; both use the book document class and the fancyhdr package. Both projects built perfectly well and produced the output I expected – until I put page numbers in the footer.

\fancypagestyle{normalpages}{%
  \fancyhf{}% remove everything
  % Headers
  \fancyhead[L]{%
    <left header>%
  }
  \fancyhead[C]{%
    <central header>%
  }
  \fancyhead[R]{%
    <right header>%
  }
  % Footers
  \fancyfoot[C]{%
    \centering
    <central footer>%
  }
  \fancyfoot[LE,RO]{
    \thepage
  }

One of the projects, A, built as expected and put the page numbers in the footer on the left of odd-numbered (verso) pages and the right of even-numbered (recto) pages. Project B, however, put the page numbers on the right of both verso and recto pages and produced the following warning:

Package Fancyhdr Warning: \fancyfoot’s `E’ option without twoside option is useless on input line x.

Well, isn’t that terrific? I looked on the internet for help, but the only answers I could find implied that my copy of the fancyhdr package provided by TeX Live was out of date or that it doesn’t matter if all works well. The former could not be true if it worked for one project. It did not work well, so I ignored the latter solution. There was one other possibility: ‘unless you activate the twoside class option, E (for Even) won’t have any effect’.

Ah. I looked at the document class’s options: project A specified twoside whereas project B did not. I amended project B and rebuilt the document to find no difference in the output or the warnings. Hmm.

I searched the log file for twoside, and found a line in project B’s log file:
* \@twosidefalse.
This code was in a block of code to do with the geometry package. In project A, the same line had
* \@twosidetrue.
The whole block for project A, which is the one that worked, was:

*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
*geometry* verbose mode - [ preamble ] result:
* driver: pdftex
* paper: a4paper
* layout: <same size as paper>
* layoutoffset:(h,v)=(0.0pt,0.0pt)
* modes: twoside 
* h-part:(L,W,R)=(71.13188pt, 455.24411pt, 71.13188pt)
* v-part:(T,H,B)=(86.55685pt, 687.35811pt, 71.13188pt)
* \paperwidth=597.50787pt
* \paperheight=845.04684pt
* \textwidth=455.24411pt
* \textheight=687.35811pt
* \oddsidemargin=-1.1381pt
* \evensidemargin=-1.1381pt
* \topmargin=-70.71313pt
* \headheight=85.0pt
* \headsep=0.0pt
* \topskip=12.0pt
* \footskip=35.0pt
* \marginparwidth=0.0pt
* \marginparsep=0.0pt
* \columnsep=10.0pt
* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
* \hoffset=0.0pt
* \voffset=0.0pt
* \mag=1000
* \@twocolumnfalse
* \@twosidetrue
* \@mparswitchtrue
* \@reversemarginfalse
* (1in=72.27pt=25.4mm, 1cm=28.453pt)

Notice the line near the top that reads * modes: twoside in amongst the settings of the geometry package. I looked at the options of that package in both projects: project A specified twoside=true, whereas project B specified twoside=false. Changing the latter to false — and, indeed, removing the whole option from both — resulted in both projects producing page numbers on the correct sides of verso and recto pages. Hurray!

\geometry{%
  paper=a4paper,
  % twoside=true, % don't put twoside=false here
  left=2.5cm,
  right=2.5cm,
  top=86.55685pt,
  bottom=2.5cm,
  headsep=0cm,
  headheight=85pt,%84.29048pt,
  footskip=35pt,%14.49998pt,
  heightrounded=false,
  includehead=false,
  includefoot=false,
  includeheadfoot=false,
  includemp=false,
  nomarginpar,
}

In summary

The problem arose from having the geometry package set single-sided pages (i.e. it set all pages to recto), and the fancyhdr package being given a specification for verso pages, which, as far as the fancyhdr package was concerned, did not exist.

The solution is to ensure that all page specifications are consistent: if twoside is specified in one place, it must be specified everywhere. I have found, for the book document class, that it is simplest to omit all mentions of twoside, which produces a document that is indeed double-sided.

Do you want to reply?

This site uses Akismet to reduce spam. Learn how your comment data is processed.