# [texhax] "@" : vowel or glottal stop ? (was : Some puzzling TeX)

Reinhard Kotucha reinhard.kotucha at web.de
Thu Feb 24 02:15:40 CET 2011

On 2011-02-23 at 22:12:10 +0100, Arno Trautmann wrote:

> Reinhard Kotucha wrote:
> > On 2011-02-23 at 21:18:29 +0100, Arno Trautmann wrote:
> >
> >  > Hi all,
> >  >
> >  > would it be possible for one of you to turn this whole
> >  > @-discussion into a TUGboat article? I always wondered about
> >  > the meaning of all the @s in the code and it would be nice to
> >  > get an overview over the things discussed here. (I won't have
> >  > time to write until april, otherwise I would try it.)
> >
> > Hi Arno,
> > it seems that the @s lack a well defined meaning.  They are used
> > quite arbitrarily and different authors have different
> > conventions.  Or did you recognize any rules?
>
> No, I didn't. Therefore I hoped you did ;)
> Of course everyone can use it the way s/he wants, but I was
> thinking of only the plain or LaTeX kernel. Is it so arbitrarily in
> that code, too?

I think so, though AFAIK there are some conventions which are used
throughout the LaTeX kernel.  If I recall correctly, a control
sequence beginning with two at signs is a backup copy of a primitive
or another control sequence:

\let\@@input\input
\let\@@end\end
\let\@@par\par
...

But there are exceptions too:

\def\@@enc at update{.....

I'm not sure whether it's worthwhile to describe this in a TUGboat
article at all.  LaTeX macro programmers should be aware of those
things but they have to be aware of many other things too when using
\@ifundfined.

IMO it's not even worthwhile to waste a thought about \sixt@@n
vs. \@sixteen.  It's just one of Knuth's puns, no more, no less.
Hence such an article might be good enough for an April issue, at
least.

Regards,
Reinhard

--
----------------------------------------------------------------------------
Reinhard Kotucha                                      Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover                              mailto:reinhard.kotucha at web.de
----------------------------------------------------------------------------
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.
----------------------------------------------------------------------------