You guessed right that the "2201
is a number in hexadecimal representation, but this number is not connected to Unicode (which was born years after Knuth invented mathcodes).
The four hexadecimal digits tell TeX that \cdot
is an operation symbol (the first digit 2
), which must be taken from the font in math family 2 (the second digit), choosing the glyph at slot "01
.
TeX knows about at most 16 math families, each can define three fonts for the normal size, first level subscripts and superscripts, and second level sub(super)scripts.
Family 0 fonts contain the upright letters, family 1 the math italic ones; family 2 fonts contain the most common math symbols; finally family 3 fonts contain the "big" symbols such as extensible parentheses.
These four families are compulsory if one wants to typeset math formulas, as TeX relies on parameters from these fonts to do its job. Other families can be (and are) defined by the LaTeX kernel (for \mathbf
, \mathsf
and so on) or by additional packages (for example stmaryrd).
There's no connection whatsoever between math codes and Unicode.
The XeTeX and LuaTeX engines define new primitives for dealing with Unicode math fonts, but that's another story.
TeX fonts contain at most 256 glyphs, the standard math fonts only 128. Their tables are laid out in the TeXbook or in TeX by Topic (on TeX Live this one is available with texdoc texbytopic
). You can produce yourself the font tables by typesetting the following document:
\documentclass{article}
\usepackage[a4paper,margin=3cm]{geometry}
\usepackage{fonttable}
\setcounter{secnumdepth}{0}
\pagestyle{empty}
\begin{document}
\section{Family 0}
\xfonttable{OT1}{cmr}{m}{n}
\newpage
\section{Family 1}
\xfonttable{OML}{cmr}{m}{n}
\newpage
\section{Family 2}
\xfonttable{OMS}{cmr}{m}{n}
\newpage
\section{Family 3}
\xfonttable{OMX}{cmex}{m}{n}
\end{document}