As the title suggests, I am not sure why my file will not compile. Here is a MWE:

  \renewcommand{fnum@figure}{\textsc{Figure ~\thefigure}}

Here's an interesting part of the .log file:

 ! Missing control sequence inserted.
  <inserted text> 
 l.2 \renewcommand{fnum@figure}
                          {\textsc{Figure ~\thefigure}}
 Please don't say `\def cs{...}', say `\def\cs{...}'.
 I've inserted an inaccessible control sequence so that your
 definition will be completed without mixing me up too badly.
 You can recover graciously from this error, if you're
 careful; see exercise 27.2 in The TeXbook.
  • 2
    The reason is that @ has category code 12 ("other"); you need to make it of category code 11 ("letter"); \makeatletter simply changes the catcode of @ to 11 (so now @ behaves like a normal letter) and \makeatother changes the catcode of @ to 12. Aug 18, 2012 at 23:36
  • 1
    and the backslash \ is missing, i.e. fnum@figure vs \fnum@figure
    – Guido
    Aug 18, 2012 at 23:43
  • @GonzaloMedina Nice to know. I had to google to understand. Thanks for the input. :-)
    – kan
    Aug 18, 2012 at 23:45

1 Answer 1


It should read as

\renewcommand{\fnum@figure}{\textsc{Figure ~\thefigure}}

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.