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
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-context