[Tuglist] Printing c@\@captype.

David Kastrup tuglist@tug.org.in
13 Jun 2002 13:06:07 +0200

Manoj K N <knm@india.ti.com> writes:

> I was trying to print the value of the counter referred to by \@captype,
> and I used the following line, which gave me correct results.
> \@arabic\csname c@\@captype\endcsname
> Is this a good way of doing this?

No.  It only works by accident.  \@arabic is a macro taking one
argument which in this case is \csname.  It is only because the
definition \@arabic happens to end with #1 that not everything is
going up in flames.

What is wrong with using \arabic{\@captype} ?

> In other words, whenever we want to access the counter pointed to by
> a macro, is this how we do it?

No.  If you want the numbers output, use \arabic.  If you want to
access the value of a counter (for example, when assigning to another
counter), use \value{\@captype}.  If you are on a token saving spree,
\value\@captype will do fine, also.  LaTeX provides you with an
interface for accessing and printing counters.  There is no reason not
to use it.

In the case where instead of \@captype (a single token) you have an
actual name, such as "page", you can save tokens by writing \c@page
instead of \value{page}, and \@arabic\c@page instead of
\arabic{page}, since "{page}" are 6 separate character tokens while
\c@page is a single token.

David Kastrup, Kriemhildstr. 15, 44793 Bochum
Email: David.Kastrup@t-online.de