On Sat, 3 Feb 2007, Taco Hoekwater wrote:
It is cleaner when renamed a little:
So the following macros can go into the core
\def\binrel@#1% \def\preparebinrel#1% {\begingroup \setbox0=\hbox {\thinmuskip 0mu \medmuskip -1mu \thickmuskip -1mu \setbox2=\hbox{$#1\mathsurround0pt$}% \kern -wd2 ${}#1{}\mathsurround0pt$}% \edef\@tempa {\endgroup \let\noexpand\binrel@@ \let\noexpand\currentbinrel \ifdim\wd0<0pt \mathbin \else \ifdim\wd0>\z@ \mathrel \else \relax \fi\fi }% \@tempa }
And:
\unexpanded\def\overset#1#2% {\preparebinrel{#2}% \currentbinrel{\mathop{\kern\z@#2}\limits^{#1}}}
\unexpanded\def\underset#1#2% {\preparebinrel{#2}% \currentbinrel{\mathop{\kern\z@#2}\limits_{#1}}} \unexpanded\def\stackrel#1#2% {\mathrel{\mathop{#2}\limits^{#1}}} or \unexpanded\def\stackrel#1#2% {\buildrel#1\over#2} And the following definitions in math-pln can be defined as unexpanded \def\doteq \def\cong \def\notin And the following in math-ini should change \rm to \mfunction \definemathcommand [unic@eulerconstant] {{\rm e}} \definemathcommand [unic@eqbydef] {\buildrel \rm def \over =} \definemathcommand [unic@measuredby] {\buildrel \rm m \over =} \definemathcommand [unic@questionedeq] {\buildrel \rm ? \over =} Aditya