# Broken footnotes in psp.cls

When I write an article using the psp class for the journal Mathematical Proceedings of the Cambridge Mathematical Society, there's something broken with the footnote markers in the text. The footnote markers appear, but no extra space is inserted before the next word; in other words, the superscript number just appears plonked in the space one would have without a footnote marker.

I've had a skim through psp.cls for the word 'footnote', and I can't see, with my completely inexperienced eye, anything that would scream "I'm breaking footnotes!", though there is some redefinition and redefining back going on involving \thefootnote.

MWE:

\NeedsTeXFormat{LaTeX2e}  %still breaks without this
\documentclass{psp}
\begin{document}
\title{Title}
\author{A.N.AUTHOR}
\maketitle

A bunch\footnote{blah} of text.\footnote{foo} Another sentence.

\end{document}

• Look at the definition to \@makefnmark. – jon Jan 16 '14 at 5:26
• @jon Did I mention my completely inexperienced eye? I couldn't tell what that bit of code did, I just guess by your comment that it is somehow wrong. – David Roberts Jan 16 '14 at 5:36
• Sorry, I shouldn't even be awake still, let alone finding new problems to work on. Anyway, a quick and dirty workaround would be to use LaTeX' original definition for \@makefnmark -- which can be done by adding \makeatletter \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}} \makeatother to your .tex file -- but that might not interact nicely with their goal of centering short footnotes based on the longest short footnote (see in the definition of \makefntext). – jon Jan 16 '14 at 5:53

psp.cls redefines \@makefnmark to set the footnote marker in a zero-width box:

The above was set using:

A bunch\footnote{blah} of text.\footnote{foo} Another sentence.

A bunch of text. Another sentence.

Here is the redefinition of \@makefnmark:

\renewcommand\@makefnmark{\hb@xt@ \z@{%
\ifnumfootnotes $^{\@thefnmark}$\else $\@thefnmark$\fi\hss}%
}

compared to the original in latex.ltx:

\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}

You can store and restore the original \@makefnmark:

\makeatletter
\let\old@makefnmark\@makefnmark% Store original \@makefnmark
\makeatother
\documentclass{psp}
\makeatletter
\let\@makefnmark\old@makefnmark% Restore original \@makefnmark
\makeatother
\begin{document}
\title{Title}
\author{A.N.AUTHOR}