![](https://secure.gravatar.com/avatar/29c7bbff49b1599eddb2ec73fd9ffa6e.jpg?s=120&d=mm&r=g)
Defining \pagereference[xyz] en calling this some pages later with \atpage[xyz] I get as reference "at a previous page" (perhaps not exactly, the typesetting is done in dutch). This an unwanted result, that previous page is 7 pages before. How can I restrict this to either "on this page" or to the exact number of the page in question? Hans van der Meer
![](https://secure.gravatar.com/avatar/b79687264c3e06cba13b54d05b12a9f5.jpg?s=120&d=mm&r=g)
Meer, Hans van der mailto:H.vanderMeer@uva.nl 17. Januar 2016 um 16:58 Defining \pagereference[xyz] en calling this some pages later with \atpage[xyz] I get as reference "at a previous page" (perhaps not exactly, the typesetting is done in dutch). The english text is “on a preceding page”. This an unwanted result, that previous page is 7 pages before. The test is still true before “on *a* preceding page” is not the same as “on *the* preceding page”. How can I restrict this to either "on this page" or to the exact number of the page in question? You can print the number with \at[<LABEL>].
Wolfgang
![](https://secure.gravatar.com/avatar/29c7bbff49b1599eddb2ec73fd9ffa6e.jpg?s=120&d=mm&r=g)
Thanks Wolfgang. I am afraid, however, your answer inspires me to a subsequent question.
In order to customize the reference myself my idea is something along the line of:
\def\myatpage[#1]{ \scratchcounter=\at[#1]\relax\ifnum=\pagenumber etcetera.
But this gives an error, as dus \expanded{\at[#1]}, as does \expandafter\scratchcounter=
The error is Missing number, treated as zero..
Do you have a hint how to proceed?
Hans van der Meer
On 17 Jan 2016, at 17:42, Wolfgang Schuster
![](https://secure.gravatar.com/avatar/b79687264c3e06cba13b54d05b12a9f5.jpg?s=120&d=mm&r=g)
Meer, Hans van der mailto:H.vanderMeer@uva.nl 17. Januar 2016 um 19:03 Thanks Wolfgang. I am afraid, however, your answer inspires me to a subsequent question.
In order to customize the reference myself my idea is something along the line of: \def\myatpage[#1]{ \scratchcounter=\at[#1]\relax\ifnum=\pagenumber etcetera. But this gives an error, as dus \expanded{\at[#1]}, as does \expandafter\scratchcounter= The error is Missing number, treated as zero..
Do you have a hint how to proceed? \definepagestate[hans]
\starttext One\setpagestate[hans][one] \page[+2] Two\setpagestate[hans][two] Three\setpagestate[hans][three] \blank \ifnum0\pagestaterealpage{hans}{two}=0\pagestaterealpage{hans}{one} The references are on the same page. \else The references are on different pages. \fi \blank \ifnum0\pagestaterealpage{hans}{two}=0\pagestaterealpage{hans}{three} The references are on the same page. \else The references are on different pages. \fi \stoptext Wolfgang
![](https://secure.gravatar.com/avatar/29c7bbff49b1599eddb2ec73fd9ffa6e.jpg?s=120&d=mm&r=g)
Thanks Wolfgang. I am experimenting with your code and there has arisen a problem. The book I am typesetting has some pages before the text on page-1 starts (cover and so on). Therefore the code
\def\mypageref[#1]{\setpagestate[hvdm][#1]\color[red]{page=\pagenumber\ and pageref=\pagestaterealpage{hvdm}{#1}}}
produces "page=29 and pageref=31". Not as intended. Do I change the macro \pagestaterealpage into what macro? I tried \pagestatepage, but that wasn't the right idea.
Now what further to change?
Hans van der Meer
On 17 Jan 2016, at 19:37, Wolfgang Schuster
![](https://secure.gravatar.com/avatar/b79687264c3e06cba13b54d05b12a9f5.jpg?s=120&d=mm&r=g)
Meer, Hans van der mailto:H.vanderMeer@uva.nl 17. Januar 2016 um 20:43 Thanks Wolfgang. I am experimenting with your code and there has arisen a problem. The book I am typesetting has some pages before the text on page-1 starts (cover and so on). Therefore the code
\def\mypageref[#1]{\setpagestate[hvdm][#1]\color[red]{page=\pagenumber\ and pageref=\pagestaterealpage{hvdm}{#1}}} produces "page=29 and pageref=31". Not as intended. Do I change the macro \pagestaterealpage into what macro? I tried \pagestatepage, but that wasn't the right idea.
Now what further to change? You can use the dataset command which lets you store other information, e.g. the current value of the visible pagenumber.
\definedataset[hans][delay=yes] \setupuserpagenumber[number=3] \starttext One\setdataset[hans][one][pagenumber=\userpagenumber] \page[+2] Two\setdataset[hans][two][pagenumber=\userpagenumber] Three\setdataset[hans][three][pagenumber=\userpagenumber] \blank \ifnum0\datasetvariable{hans}{two}{realpage}=0\datasetvariable{hans}{one}{realpage} The references are on the same page. \else The references are on different pages. \fi \blank \ifnum0\datasetvariable{hans}{two}{realpage}=0\datasetvariable{hans}{three}{realpage} The references are on the same page. \else The references are on different pages. \fi \page \starttabulate \NC One \NC \datasetvariable{hans}{one}{pagenumber} \NC\NR \NC Two \NC \datasetvariable{hans}{two}{pagenumber} \NC\NR \NC Three \NC \datasetvariable{hans}{three}{pagenumber} \NC\NR \stoptabulate \stoptext Wolfgang
participants (2)
-
Meer, Hans van der
-
Wolfgang Schuster