toriver@lise.unit.no (Tor Iver Wilhelmsen) (04/03/91)
I have a problem using a macro (used in LaTeX) to create automatic
rule numberings for game rules (along the line of: "8.1.2.1: The
English officer counters are never used more than once, however.").
LaTeX says:
! Use of \csname doesn't match its definition.
\Rule ...\advance \cuindex by 1 \advance \csname R
uleno\number \cuindex \end...
\Rule ...rindent =-30pt\par \bf \theRule \ #1:} #2
\advance \nxindex by -1 \...
<argument> ...s'' sheet for that expansion set.}}}
\Rule []{The Volmit playe...
\Rule ...rindent =-30pt\par \bf \theRule \ #1:} #2
\advance \nxindex by -1 \...
l.16 ...\underline{one} of the INF-ORC~3 units.}}}
So, is there a way to "trick" csname to accept the contents??
The macro looks like this:
\newcount\cuindex % current index
\newcount\nxindex % next index
\newcount\countthis
\expandafter\newcount\csname Ruleno1\endcsname
\cuindex=0
\nxindex=1
\csname Ruleno1\endcsname = 0
% Parameters:
% #1 = initial text to the rule, set in boldface
% #2 = the rule itself
\def\Rule[#1]#2{\advance\cuindex by 1
\advance\csname Ruleno\number\cuindex\endcsname by 1
\advance\nxindex by 1
\expandafter\newcount\csname Ruleno\number\nxindex\endcsname
\csname Ruleno\number\nxindex\endcsname=0
\def\theRule{}
\countthis=1
\loop
\edef\theRule{\theRule\number\csname Ruleno\number\countthis\endcsname }
\ifnum\countthis < \cuindex
\advance\countthis by 1
\edef\theRule{\theRule .}
\repeat
{\parindent=-30pt\par\bf\theRule\ #1:} #2
\advance\nxindex by -1
\advance\cuindex by -1 }
The problem is that it _did_ compile without trouble on an older
version of TeX... can anyone shed any light on what the trouble might
be??
--
"When things are slow, don't introduce new technology, introduce new
terminology." - John C. Dvorak
"Keep it up, rock'n'roll, good music save your soul" - Motorhead: Ramones
toriver@{lise,solan,siri}.unit.no pumpkin@norunit.{sintef.no, bitnet}em@dce.ie (Eamonn McManus) (04/03/91)
toriver@lise.unit.no (Tor Iver Wilhelmsen) writes: >LaTeX says: > >! Use of \csname doesn't match its definition. It looks as if you have accidentally nuked the \csname primitive, e.g., by saying \def\csname something\endcsname{...} instead of \expandafter\def\csname something\endcsname{...} I didn't see anything wrong with the extracts you posted, so perhaps it has occurred earlier in the same file (or perhaps I missed it). , Eamonn