%D \module
%D   [     file=math-run,
%D      version=2001.23.04,
%D        title=\CONTEXT\ Math Macros,
%D     subtitle=Runtime Macros,
%D       author=Hans Hagen,
%D         date=\currentdate,
%D    copyright=Hans Hagen \& Ton Otten]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

\unprotect

\ifx\showmathmodern\undefined \global\chardef\showmathmodern\zerocount \fi

\gdef\showmathcharacters% nearly \showcharacters
  {\par
   \bgroup
   \ifcase\showmathmodern\or\ifx\modern\undefined\chardef\showmathmodern\zerocount\fi\fi
   \setuptextrules[\c!bodyfont=,\c!style=]
   \starttextrule{math characters -- \currentmathcollection}
   \whitespace
   \dontcomplain
   \forgetall
   \def\startmathcollection[##1]{}
   \let\stopmathcollection\relax
   \dimen0\zeropoint
   \dimen2\zeropoint
   \def\definemathsymbol   {\dosixtupleempty\dodefinemathsymbol}
   \def\definemathcharacter{\dosixtupleempty\dodefinemathcharacter}
   \def\definemathcommand  {\dotripleempty  \dodefinemathcommand}
   %\newcounter\mathcolor
   \def\dodefinemathsymbol[##1][##2][##3][##4][##5][##6]%
     {%\doifcolorelse{math \purefamilyhex{##3}}{}
      %  {\increment\mathcolor
      %   \definecolor[math \purefamilyhex{##3}][\mathcolor]}%
      \setbox0\hbox spread 1em{\mathematics{\getvalue{##1}{}{}{}}}%
      \ifdim\wd0>\dimen0 \dimen0=\wd0 \fi
      \setbox2\hbox spread 1em{\hbox to 1em{\tttf\purefamilyhex{##3}\hss}\box0 ##1}%
      \ifdim\wd2>\dimen2 \dimen2=\wd2 \fi}
   \def\dodefinemathcharacter[##1][##2][##3][##4][##5][##6]{}
   \def\dodefinemathcommand  [##1][##2][##3]##4{}
   \readsysfile{\f!mathprefix tex}\donothing\donothing
   \readsysfile{\f!mathprefix ams}\donothing\donothing
   \edef\encwidth{\the\dimen0}
   \dimen0=\hsize
   \advance\dimen0 2em
   \advance\dimen2 2em
   \ifcase\showmathmodern\or\advance\dimen2 4em\fi
   \divide \dimen0 by \dimen2 \advance\dimen0 1sp
   \edef\enccols{\number\dimen0}
   \startcolumns[\c!n=\enccols,\c!distance=2em]
   \def\dodefinemathsymbol[##1][##2][##3][##4][##5][##6]%
     {%\localcolortrue
      %\color
      %  [math \purefamilyhex{##3}]
         {\hbox
            {\ifcase\showmathmodern\or
               \hbox to \encwidth{\modern\let\mathcollection\nomathcollection\mathematics{\getvalue{##1}{}{}{}}\hss}%
             \fi
             \hbox to \encwidth{\mathematics{\getvalue{##1}{}{}{}}\hss}%
             \hbox to 1em{\tttf\purefamilyhex{##3}\hss}##1}\par}}
   \readsysfile{\f!mathprefix tex}\donothing\donothing
   \readsysfile{\f!mathprefix ams}\donothing\donothing
   \stopcolumns
   \stoptextrule
   \egroup}

% \definecolor[math \purefamilyhex{mr}] [darkred]
% \definecolor[math \purefamilyhex{mi}] [darkgreen]
% \definecolor[math \purefamilyhex{sy}] [darkblue]
% \definecolor[math \purefamilyhex{ex}] [darkmagenta]
% \definecolor[math \purefamilyhex{nn}] [darkyellow]
% \definecolor[math \purefamilyhex{ma}] [lightred]
% \definecolor[math \purefamilyhex{mb}] [lightgreen]
% \definecolor[math \purefamilyhex{mc}] [lightblue]
% \definecolor[math \purefamilyhex{md}] [lightmagenta]

\gdef\showmathtoken#1%
  {\starttabulate[|lT|lT|lT|l|]
   \NC token         \NC #1 \NC \NR
   \NC collection    \NC \ifcsname\@mt@\mathcollection#1\endcsname
                           \mathcollection
                         \else\ifcsname\@mt@\nomathcollection#1\endcsname
                           \nomathcollection
                         \else
                           ?%
                         \fi\fi \NC \NR
   \NC visualization \NC \mathematics{\getvalue{#1}} \NC \NR
   \NC definition    \NC \tttf \@EA \convertcommand
                           \csname\@mt@\mathcollection#1\endcsname
                         \to \ascii \ascii \NC \NR
   \stoptabulate}

\protect \endinput
