> \chardef\newCYRA=128 > \chardef\newCYRB=129 > \chardef\newCYRV=130 > > $\cyrmathit{\newCYRA\newCYRB\newCYRV}$ % this works well Are you sure that works? \chardef'ed tokens always pick up the current *text* font, they do not follow the \mathgroup (ie \fam) settings, unlike explicit or implicit character tokens. \documentclass{article} \begin{document} \mathchardef\xx`\e \let\yy=f $ \mathsf{abc d \xx\yy} abcd\xx\yy$ \end{document} See \xx always makes a roman d, unlike \yy which makes an e in the current math group (sans serif, or math italic in the example) A further complication for Cyrillic is that in order to reliably work with math alphabets having different encodings, the LaTeX math alphabet switches ought to leave more information about the current encoding. Unlike the text font changes that do this, the \mathxxx switches essentially just do a primitive \fam switch (after possibly loading the font on demand) and do not leave any record of the current alphabet and encoding in a form that may be easily tested. In other words you want $\cyrmathit{\newCYRA\newCYRB\newCYRV}$ to work, but $\newCYRA\newCYRB\newCYRV$ to generate a sensible error rather than just putting primitive Missing character: There is no ^^a4 in font cmr10! messages in the log file. Supporting encoding-specific commands in math mode *is* a reasonable request, but it is something that latex does not currently do, and adding it would likely need extensions to the basic math font handling in the format, it is not something that can simply be added with a few lines of package code, as far as I can see. David