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.

\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}

Hans van der Meer

On 20 nov. 2011, at 19:42, Wolfgang Schuster wrote:

> 
> Am 20.11.2011 um 18:46 schrieb Hans van der Meer:
> 
>> I have the following question about references.
>> 
>> Using for example \at one can say somehting like "see on \at{page}[ref] for 
>> the figure..
>> But when the figure is one the same page it seems a bit superfluous to 
>> reference to it. In the same manner it is a bit of an overkill to put a 
>> hyperlink to the page where this link resides itself.
>> 
>> It is clear that ConTeXt knows if it is on the same page as is referenced, 
>> because then a link is coloured with contrastcolor instead of color.
>> 
>> Now the question: how easy/difficult is it to either suppress such an 
>> \at-reference or switch between chosen alternate texts for links on or off 
>> the same page as the referenced item?
> 
> \def\SamePage[#1]%
>  {\doifreferencefoundelse{#1}
>     {\ifnum\referencepagestate=1
>        \unknown % reference is on the same page
>       \else
>         \at[#1]%
>      \fi}
>     {\donothing}}
> 
> \starttext
> 
> \pagereference[one]
> \pagereference[two]
> 
> One: \SamePage[one]
> 
> \page
> 
> Two: \SamePage[one]
> 
> \stoptext
> 
> 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