Am 20.11.2011 um 21:26 schrieb Meer, H. van der:

> Thanks Wolfgang for the code. 
> 
> Just in case it is of use I concocted my variation on this theme. Now this 
> simply replaces the \in, \at and \about macro's with one that does not show 
> on the page where the link originates, but behaves as of old everywhere else. 
> I introduced the unskip in order to remove the space that ruins the end of a 
> line when there is nothing to display. For example from \in{see there}[ref]. 
> <--this period would otherwise acquire a space before it.

Instead of \unskip you should use \removeunwantedspaces which does a check 
before it calls \unskip.

> \def\SamePageDo#1[#2]%
> {\doifreferencefoundelse{#2}
>    {\ifnum\referencepagestate=1
>       \unskip%\unknown % reference is on the same page
>      \else
>        #1[#2]%
>     \fi}
>    {\unskip}} % reference not found
> \let\oldin=\in
> \let\oldat=\at
> \let\oldabout=\about
> \def\in{\SamePageDo\oldin}
> \def\at{\SamePageDo\oldat}
> \def\about{\SamePageDo\oldabout}

Don’t redefine \in, at and \about because all three commands can also be used 
in math mode where they have a different meaning but with your redefinition 
they can’t be used anymore for math.

Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to