I'm sure that this is TeX basics and I'm just being a fool, but I can't figure out for what/how the @ symbol is used. All I can tell is that to make sure it works you have to put it between
\makeatletter...\makeatother. But I have no idea what it actually does. Thanks!
It is conventional in TeX and LaTeX to include
@ in private command names that shouldn't be used in documents. Normally a command name consists of either a single non-letter or one or more letters, e.g.,
\sigma. Inside of class and package files, however,
@ is treated as a letter so a command like
\@startsection will be available to a class programmer while keeping it (mostly) inaccessible to document writers. On rare occasions, a document writer may need to access these private commands, so the commands
\makeatother are available to turn on and off access to the private commands.
Newer LaTeX code uses the expl3 syntax which allows commands to have
: in the names and has conventions around naming that I won't get into here. Access to this naming convention is controlled using
\ExplSyntaxOff. Even in class and package files, this has to be turned on/off manually since it has other repercussions that may not be desired in most code (most notably all spaces are ignored).
The last naming convention is one that's inconsistently applied, but is to use CamelCase in command names for commands that are made available to document writers but that have some programming-level significance. The
\ExplSyntaxOff commands are examples of this. Arguably, it should also be
\MakeAtOther but those commands precede the adoption of the CamelCase convention.