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 ___________________________________________________________________________________