[texhax] controlling table locations

Susan Dittmar Susan.Dittmar at gmx.de
Thu May 15 11:54:27 CEST 2014

Thomas Schneider schrieb:
>    \makeatletter
>      \def\fps at table{h}
>    \makeatother
> \makeatletter - switches to something about cat codes for reasons
> I don't know.

To add to Ulrike's answer:
\makeatletter changes TeX's take on the @ sign. After \makeatletter @ can be 
used as part of a macro (command) name. \makeatother changes back to @ being 
something other than a letter.

The whole \makeatletter ... \makeatother stuff was introduced to add to the 
number of possible macro names (all those that contain @), and to reduce the 
risk of a user accidentally redefining some important internal command. This is 
most important when using \def, which, as you wrote, can redefine something 
without warning the user. So commands meant to be used mainly by the package 
programmers often contain the @ sign in their names. In this case, one of those 
macros is to be redefined, thus making it necessary to 'circumvent' the 
precaution of not allowing @ in a macro outside of style files.

Hope that helps,


More information about the texhax mailing list