\catcode\csname \romannumeral\parshape \endcsname\month |
| ---Michael Downes |
\csname\endcsname, the no-name control sequence. What I
meant by "defined in an obvious way" was that
\csname\endcsname should be defined to have an integer
value in the proper range for the first argument of a catcode
statement---an <8-bit number> in the syntax rules of TeXbook
Chapter 24. This could be accomplished in many different ways, but here
are some of the more likely ones:
\expandafter \def\csname\endcsname{0}
\expandafter \let\csname\endcsname=\day
\expandafter \chardef\csname\endcsname=`\*
\expandafter \newcount\csname\endcsname
|
\expandafter\def\csname\endcsname#1{#1#1}
^^J to 'space'.
By the way, it seems to be a minor deficiency of plain TeX that
\csname\endcsname
is not initialized with the same
definition as for
\^^M,
because if you try to enter '
\ ' (control-space) at the end
of an error-recovery insertion, the final space gets silently discarded
following TeX's normal practice of discarding whitespace at the end of a
line, and the unsuspecting user gets an error message:
! Undefined control sequence.
l.1 Foo car \Tex
and then
? i\TeX\
[In the above line I entered '
\ ' as the last thing on the line.]
! Undefined control sequence.\TeX\ l.1 Foo car \Tex and then ?