Fancyhdr – Warning ‘Command \@makecol Has Changed’

fancyhdrfootmiscwarnings

When I compile my document I get the following warning Command \@makecol has changed.

TexStudio points to the file footmisc.sty. Of course I've tried to install its latest version (2011/06/06 v5.5b) but still have the problem šŸ™

MWE:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}

\usepackage{fancyhdr}
\usepackage[bottom,hang]{footmisc}
\usepackage[T1]{fontenc}

\begin{document}
mediante DHCP\footnote{Se puede obtener mĆ”s informaciĆ³n sobre esta utilidad en el documento anexo GuĆ­a de usuario de Xen: InstalaciĆ³n, configuraciĆ³n y primeros pasos}

\end{document}

I've seen that by reordering the fancyhdr and footmisc sentences the warning doesn't occur, but still not sure if with that there's no error or it's just that fancyhdr doesn't check well.

Best Answer

footmisc performs a patch on \@makecol. However, before doing so, it checks to make sure that its definition conforms to what it looked like at the time of writing footmisc. The package implementation (section 5.1 The output routine, p 12) mentions:

First, we ensure that \@makecol is as expected from the time at which these macros were written: since we're going to patch it, we had better be sure that we're patching the right thing. (There was a minuscule change to the definition 1999, but this doesn't as far as I can tell make any difference to the semantics of the definition we base our patch on.)

And indeed, fancyhdr updates the definition:

\let\latex@makecol\@makecol
\def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi
\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol}

to prepend it with some information. So, switch the load order and you'll be fine, allowing footmisc to perform the necessary patches before fancyhdr updates its definition again:

\usepackage[..]{footmisc}% http://ctan.org/pkg/footmisc
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
Related Question