working on page refs with MP
Hello everyone, I'm having page references and want to calc / draw 'Page x of y' for some subsections in MP. How can I pass 'em down so I end up with numbers to do calculations with? \setuplayout[header=15mm] \def\myHeader[#1]#2{ \ignorespaces \getdummyparameters[ref=,next=,#1] \pagebreak[yes] \pagereference[\dummyparameter{ref}] \doassign[header][first=\dummyparameter{ref}] \doassign[header][next=\dummyparameter{next}] {\tfc\bf{#2}}\par \vskip3mm } \def\fillWithText[#1]{ \dorecurse{#1}{ \input tufte \input knuth } } \setupheadertexts[\setups{page:header}]% \startsetups page:header \setupMPvariables[hdrPgs] [curr=\pagenumber, first={\ref[page][\headerfirst]}, next={\ref[page][\headernext]}] \framed[ frame=off, background={hdrPgs} ]{}% all to be done in MP \stopsetups \defineoverlay[hdrPgs][\useMPgraphic{hdrPgs}] \startuseMPgraphic{hdrPgs} StartPage; % calc and draw 'Page x of y'.... numeric numCurr; numCurr := \MPvar{curr}; string strFirst; strFirst := "\MPvar{first}"; string strNext; strNext := "\MPvar{next}"; message("======================="); message("MP_hdrPageNrs: curr="& tostring numCurr & ", sFirst="& strFirst & ", sNext="& strNext); % fails: numeric numFirst; numFirst := \MPvar{first}; StopPage; \stopuseMPgraphic \starttext \myHeader[ref=a,next=b]{AAAA aaaa AaAaAaAa} \fillWithText[10] \myHeader[ref=b,next=c]{BBBB bbbb BbBbBbBbBb} \fillWithText[3] \myHeader[ref=c,next=d]{CCCC ccccc CcCcCcCc} \fillWithText[8] \myHeader[ref=c,next=last]{DDDD ddddd DdDdDdDdDd} \fillWithText[8] \pagebreak[yes] \pagereference[last] This is the last page, goodby \stoptext metapost > message : MP_hdrPageNrs: curr=1, sFirst=\ref [page][a], sNext=\ref [page][b] metafun > log > metafun > log > error: Improper subscript has been replaced by zero metapost > log > <*> ... numeric numFirst; numFirst := \ref [page] metafun > log > metafun > log > A bracketed subscript must have a known numeric value; So MP gets the macro and tries array access... I tried \expanded, \numeric, and resolving the page numbers via \ref[page][id] at the various code levels - unsuccessfully so far - and out of wit now. TIA, Werner
On 3/18/2021 6:14 PM, Werner Hennrich wrote:
metafun > log > metafun > log > error: Improper subscript has been replaced by zero metapost > log > <*> ... numeric numFirst; numFirst := \ref [page] watch closely to the previous log line ... you're missing quotes so mp sees \ref [page] and as it ignores a \ it sees ref[page] which unless you defined 'ref' and 'page' triggers an error
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
yes I had realized this already but I still don't know how to get those page numbers down into MP - they keep being strings with macro code instead is there a way the I can get \setupMPvariables[hdrPgs] in \setupheadertexts[\setups{page:header}] to be fully evaluated and stored as the page number in the MPvariables first= and next= ?? \startsetups page:header \setupMPvariables[hdrPgs] [curr=\pagenumber, first={\ref[page][\headerfirst]}, next={\ref[page][\headernext]}] I've tried \expanded and \numeric without success or alternatively in MP how would I call TeX (from MP) with a string like "\ref[page][a]" and have the page number stored in a numeric var? Thanks in advance, Werner Am 18.03.21 um 19:55 schrieb Hans Hagen:
On 3/18/2021 6:14 PM, Werner Hennrich wrote:
metafun > log > metafun > log > error: Improper subscript has been replaced by zero metapost > log > <*> ... numeric numFirst; numFirst := \ref [page] watch closely to the previous log line ... you're missing quotes so mp sees \ref [page] and as it ignores a \ it sees ref[page] which unless you defined 'ref' and 'page' triggers an error
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
Werner Hennrich