With the following code,
\documentclass{standalone}
\newcommand{\@s}[1]{\hspace{#1pt}}
\begin{document}
text
\end{document}
I got the errors:
! LaTeX Error: Command \@ already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.2 \newcommand{\@s}[1]{\hspace{#1pt}}
Your command was ignored.
Type I <command> <return> to replace it with another command,
or <return> to continue without it.
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.2 \newcommand{\@s}[1]{\hspace{#1pt}}
You're in trouble here. Try typing <return> to proceed.
If that doesn't work, type X <return> to quit.
! Missing number, treated as zero.
<to be read again>
##
l.2 \newcommand{\@s}[1]{\hspace{#1pt}}
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
! Illegal unit of measure (pt inserted).
<to be read again>
##
l.2 \newcommand{\@s}[1]{\hspace{#1pt}}
Dimensions can be in units of em, ex, in, pt, pc,
cm, mm, dd, cc, nd, nc, bp, or sp; but yours is a new one!
I'll assume that you meant to say pt, for printer's points.
To recover gracefully from this error, it's best to
delete the erroneous units; e.g., type `2' to delete
two letters. (See Chapter 27 of The TeXbook.)
! You can't use `macro parameter character #' in horizontal mode.
<recently read> ##
l.2 \newcommand{\@s}[1]{\hspace{#1pt}}
Sorry, but I'm not programmed to handle this case;
I'll just pretend that you didn't ask for it.
If you're in the wrong mode, you might be able to
return to the right one by typing `I}' or `I$' or `I\par'.
What is wrong here? And how should I fix it?