I found a way to define a math symbol as follow:
\documentclass{article}
\makeatletter
\begingroup\lccode`~=`*
\lowercase{\endgroup\def~}{\times}
\mathcode`*="8000
\makeatother
\begin{document}
$a*b$
\end{document}
Theh problem is that I have to assign a letter which appears on keyboard "*" to replace "\times" (that means the ASCII code is in range 0-255). Because function \lccode just accept value in that range.
How can I define an arbitrary math symbol and assign it to the same character? Something like:
\begingroup\lccode`~=`\times % it doesn't work in this way
\lowercase{\endgroup\def~}{new\ \times}
\mathcode`\times="8000
In other words, we redefine a math symbol which has value of mathcode is out of ASCII range. Because we can do as follow:
\lccode`~=`0
\lccode`~=`\_
\lccode`~=`\=
...
but cannot with
\lccode`~=`\times
\lccode`~=`\star
...
\times
? Like for example\let\normaltimes\times \renewcommand*\times{new\ \normaltimes}
>>
in front of the@
sign.