You can refer to invisible ASCII characters, but the TeXbook doesn't say you can, or should, use them just for fun.
For instance, ^^@
(the null byte) has category code 9, so
Hell^^@ w^^@rld
would result in “Hell wrld”. And indeed you obtain three characters in output and not four.
To the contrary, ^^A
(the 1 byte), has category code 8. Here's the table of category codes as set up in plain TeX:
Why the choice for ^^@
? Because some operating systems used the null byte in order to fill their fixed length records. There should be no surprise in seeing category code 5 assigned to ^^M
. Two cases remain, namely ^^A
and ^^K
.
The keyboard which Knuth used to work with could produce ↓
and ↑
when pressing CtrlA and CtrlK, respectively, and he liked these visual hints more than ^
and _
. A consequence of this is that
$x^^A0$
has the same effect as $x_0$
. And, of course, $^^A$
raises an error, because it would be like $_$
.
You find the symbols on Knuth's keyboard in the table on page 369. This table also explains why some of these bytes are assigned a mathcode.
For instance CtrlD would produce ∧
on Knuth's screen and indeed we find
\mathcode`\^^D="225E % \land
in plain.tex
.
Just for completeness, you can use ^^00
instead of ^^@
. This convention is also described in chapter 8 and was added in TeX version 3.
^^A
but neither with^^@
not^^B
,^^C
or^^D
.$^^A$
fails too.$x^^A{y}$
. (Note: In plainTeX (not in LaTeX)^^A
has catcode 8 and therefore is a math subscript.)\mathcode
works.