%
%       Pointing at things
%
%       Each macro points in a different direction. The arrow is at the
%       logical corner, e.g. if I \pointUpRight, the arrow is in the upper
%       right corner.
%
%       \pointRight{..text..}
%       \pointLeft{..text..}
%       \pointDown{..text..}
%       \pointUp{..text..}
%
%       \pointUpRight{..text..}
%       \pointUpLeft{..text..}
%       \pointDownRight{..text..}
%       \pointDownLeft{..text..}
%
%       No global boxes are used. Each macro is grouped and uses box0.
%
%       Dirk Grunwald Apr 20 1988
%
\def\pointRight#1{{#1$\rightarrow$}}
\def\pointLeft#1{{$\leftarrow$#1}}
%
\def\pointUpRight#1{%
\begingroup\offinterlineskip%
\setbox0=\hbox{#1}%
\vbox{\hbox{\hskip\wd0$\nearrow$}\copy0}\endgroup}
%
\def\pointUpLeft#1{%
\begingroup\offinterlineskip%
\setbox0=\hbox{$\nwarrow$}%
\vbox{\copy0\hbox{\hskip\wd0{}#1}}\endgroup}
%
\def\pointDownRight#1{%
\begingroup\offinterlineskip%
\setbox0=\hbox{#1}%
\vbox{\copy0\hbox{\hskip\wd0$\searrow$}}\endgroup}
%
\def\pointDownLeft#1{%
\begingroup\offinterlineskip%
\setbox0=\hbox{$\swarrow$}%
\vbox{\hbox{\hskip\wd0{}#1}\copy0}\endgroup}
%
\def\pointDown#1{%
\begingroup\offinterlineskip%
\setbox0=\hbox{#1}%
\vbox{\copy0\hbox to \wd0{\hfill$\downarrow$\hfill}}\endgroup}
%
\def\pointUp#1{%
\begingroup\offinterlineskip%
\setbox0=\hbox{#1}%
\vbox{\hbox to \wd0{\hfill$\uparrow$\hfill}\copy0}\endgroup}