TeX/catcode

From Wikibooks, open books for an open world
< TeX
Jump to navigation Jump to search

< TeX

Synopsis[edit | edit source]

\catcode`\[char]=[num]

Description[edit | edit source]

\catcode is the command that's used to change the category code of a character. The category code tells TeX what to do when it encounters that character later in the text. A general assignment looks something like

\catcode`\@=11

which defines the @ character to be a letter.

The category codes in TeX are as follows:

  • 0 = Escape character, normally \
  • 1 = Begin grouping, normally {
  • 2 = End grouping, normally }
  • 3 = Math shift, normally $
  • 4 = Alignment tab, normally &
  • 5 = End of line, normally <return>
  • 6 = Parameter, normally #
  • 7 = Superscript, normally ^
  • 8 = Subscript, normally _
  • 9 = Ignored character, normally <null>
  • 10 = Space, normally <space> and <tab>
  • 11 = Letter, normally only contains the letters a,...,z and A,...,Z. These characters can be used in command names
  • 12 = Other, normally everything else not listed in the other categories
  • 13 = Active character, for example ~
  • 14 = Comment character, normally %
  • 15 = Invalid character, normally <delete>

Using category codes, it is possible to completely reconfigure TeX and allows support for international users.

A character of code 13 is called active. In a sense it is treated as if it were a command sequence in of itself, and definitions can be given in the normal fashion. Hence to define ~, Plain TeX has

\def~{...}