On Tue, 20 Feb 2007, Hans Hagen wrote: > Aditya Mahajan wrote: >> On Sat, 3 Feb 2007, Taco Hoekwater wrote: >> >> >>> It is cleaner when renamed a little: >>> >>> Taco Hoekwater wrote: >>> >>>> [EMAIL PROTECTED] >>>> >>> \def\preparebinrel#1% >>> >>>> {\begingroup >>>> \setbox0=\hbox >>>> {\thinmuskip 0mu >>>> \medmuskip -1mu >>>> \thickmuskip -1mu >>>> \setbox2=\hbox{$#1\mathsurround0pt$}% >>>> \kern -wd2 >>>> ${}#1{}\mathsurround0pt$}% >>>> [EMAIL PROTECTED] >>>> {\endgroup >>>> \let\noexpand\binrel@@ >>>> >>> \let\noexpand\currentbinrel >>> >>>> \ifdim\wd0<0pt >>>> \mathbin >>>> \else \ifdim\wd0>\z@ >>>> \mathrel >>>> \else >>>> \relax >>>> \fi\fi }% >>>> [EMAIL PROTECTED] } >>>> >>> And: >>> >>> \unexpanded\def\overset#1#2% >>> {\preparebinrel{#2}% >>> [EMAIL PROTECTED] >>> >>> >> >> There was another request (although misguided) for overset in the mailing >> list today. I think that the following macros can go into the core: (Taco's >> version, with a typo corrected). >> >> %D \macros{overset, underset} >> %D >> %D The macros \type{\overset} and \type{\underset} are provided by >> %D \AMS\ packages in \LATEX. These macro allows you to place a symbol >> %D above or below another symbol, irrespective of whether the other >> %D symbol is a relation or something else, and without influencing the >> %D spacing. For most cases there is a better way to do such things >> %D (declaring a math command with limop option, or using accents), but >> %D occasionally these macros can be useful, for example >> %D >> %D \startbuffer >> %D \startformula >> %D \overset{*}{X} \underset{*}{X} >> %D \stopformula >> %D \stopbuffer >> %D \typebuffer \getbuffer >> %D >> %D Use these macros sparingly. Remember, \TEX\ was designed for >> %D mathematics, so there is usually a proper method for typesetting >> %D common math notation. >> >> %D These macros are a clearer version of [EMAIL PROTECTED] and >> %D \type{\binrel@@} macros in \AMSTEX\ packages. >> >> \def\preparebinrel#1% >> {\begingroup >> \setbox0=\hbox >> {\thinmuskip 0mu >> \medmuskip -1mu >> \thickmuskip -1mu >> \setbox2=\hbox{$#1\mathsurround0pt$}% >> \kern-\wd2 >> ${}#1{}\mathsurround0pt$}% >> [EMAIL PROTECTED] >> {\endgroup >> \let\noexpand\currentbinrel >> \ifdim\wd0<0pt >> \mathbin >> \else \ifdim\wd0>\z@ >> \mathrel >> \else >> \relax >> \fi\fi}% >> [EMAIL PROTECTED] >> > ok, added in the following disguise: > > \def\preparebinrel#1% > {\begingroup > \setbox\scratchbox\hbox > {\thinmuskip 0mu > \medmuskip -1mu > \thickmuskip -1mu > \setbox\scratchbox\hbox{$#1\mathsurround\zeropoint$}% > \kern-\wd\scratchbox > ${}#1{}\mathsurround\zeropoint$}% > \expanded > {\endgroup > \let\noexpand\currentbinrel > \ifdim\wd\scratchbox<\zeropoint > \mathbin > \else\ifdim\wd\scratchbox>\zeropoint > \mathrel > \else > \relax > \fi\fi}}
Ah! So that is why \expanded is useful. Thanks, Aditya _______________________________________________ dev-context mailing list dev-context@ntg.nl http://www.ntg.nl/mailman/listinfo/dev-context