currentreferencerealpage wrong (how to detect even/odd pages?)
bildpage=35 eo=o currentreferencerealpage=35 << bildpage=35 eo=o currentreferencerealpage=35 <<
bildpage=35 eo=o currentreferencerealpage=35 << bildpage=36 eo=e currentreferencerealpage=36 <<
Hi, right now I use \currentreferencerealpage to detect if I'm on an even or odd page (because my picture placement rules depend on it) like this: \newcount\bildpage \bildpage=1 % ... \def\bild#1...{% {\global\bildpage=\realpageno}% \ifodd\bildpage \def\eo{o}\else \def\eo{e}\fi % ... \if o\eo odd...\else even...\fi \message{>> bildpage=\the\bildpage \space eo=\eo \space currentreferencerealpage=\currentreferencerealpage \space << }% } but now I notice that for some pages/pictures the value of \currentreferencerealpage is not correct (only for the first picture on a new page?):-( I'm writing some ">> ... <<" data to the log file: pages > flushing realpage 34, userpage 34 pages > flushing realpage 35, userpage 35 pages > flushing realpage 36, userpage 36
bildpage=37 eo=o currentreferencerealpage=0 << bildpage=37 eo=o currentreferencerealpage=0 << bildpage=37 eo=o currentreferencerealpage=0 <<
bildpage=11 eo=o currentreferencerealpage=11 << bildpage=12 eo=e currentreferencerealpage=12 <<
bildpage=15 eo=o currentreferencerealpage=15 << bildpage=15 eo=o currentreferencerealpage=15 << bildpage=16 eo=e currentreferencerealpage=16 <<
typically after that "flushing realpage XX, userpage XX" messages (not from me;) the currentreferencerealpage is set to the new page number. but NOT for page 36: here after "flushing realpage 35" it's still currentreferencerealpage=35 for the first picture on this page:-( any idea how this can go wrong ? what can I test, which debug info can I provide ? is there a possible the attached zip file contains a "minimal" example with only 2 pages and 4 images: on the 2nd page (#36) the first image should bleed to the left like all other pictures... so far this seems to happen 3 times according to the log file: pages > flushing realpage 10, userpage 10 pages > flushing realpage 11, userpage 11 pages > flushing realpage 14, userpage 14 pages > flushing realpage 15, userpage 15 thanks for any help, Harald -- "I hope to die ___ _____ before I *have* to use Microsoft Word.", 0--,| /OOOOOOO\ Donald E. Knuth, 02-Oct-2001 in Tuebingen. <_/ / /OOOOOOOOOOO\ \ \/OOOOOOOOOOOOOOO\ \ OOOOOOOOOOOOOOOOO|// \/\/\/\/\/\/\/\/\/ Harald Koenig // / \\ \ koenig@tat.physik.uni-tuebingen.de ^^^^^ ^^^^^
On Mar 15, Harald Koenig wrote:
the attached zip file contains a "minimal" example with only 2 pages and 4 images: on the 2nd page (#36) the first image should bleed to the left like all other pictures...
2nd try for the attachment -- sorry! Harald -- "I hope to die ___ _____ before I *have* to use Microsoft Word.", 0--,| /OOOOOOO\ Donald E. Knuth, 02-Oct-2001 in Tuebingen. <_/ / /OOOOOOOOOOO\ \ \/OOOOOOOOOOOOOOO\ \ OOOOOOOOOOOOOOOOO|// \/\/\/\/\/\/\/\/\/ Harald Koenig // / \\ \ koenig@tat.physik.uni-tuebingen.de ^^^^^ ^^^^^
Am 15.03.2015 um 16:40 schrieb Harald Koenig
: Hi,
right now I use \currentreferencerealpage to detect if I'm on an even or odd page (because my picture placement rules depend on it) like this:
\newcount\bildpage \bildpage=1 % ... \def\bild#1...{% {\global\bildpage=\realpageno}% \ifodd\bildpage \def\eo{o}\else \def\eo{e}\fi % ... \if o\eo odd...\else even...\fi \message{>> bildpage=\the\bildpage \space eo=\eo \space currentreferencerealpage=\currentreferencerealpage \space << }% }
but now I notice that for some pages/pictures the value of \currentreferencerealpage is not correct (only for the first picture on a new page?):-(
To test whether you’re on a left or right page you can use the \signalrightpage and \doifrightpageelse commands. \setuppagenumbering[alternative=doublesided] %\setuppagenumbering[alternative={singlesided,doublesided}] \starttext \dorecurse{100} {\dontleavehmode\signalrightpage \doifrightpageelse{Right page}{Left page} \blank[line]} \stoptext Wolfgang
On Mar 15, Wolfgang Schuster wrote:
Am 15.03.2015 um 16:40 schrieb Harald Koenig
: Hi,
right now I use \currentreferencerealpage to detect if I'm on an even or odd page (because my picture placement rules depend on it) like this:
\newcount\bildpage \bildpage=1 % ... \def\bild#1...{% {\global\bildpage=\realpageno}% \ifodd\bildpage \def\eo{o}\else \def\eo{e}\fi % ... \if o\eo odd...\else even...\fi \message{>> bildpage=\the\bildpage \space eo=\eo \space currentreferencerealpage=\currentreferencerealpage \space << }% }
but now I notice that for some pages/pictures the value of \currentreferencerealpage is not correct (only for the first picture on a new page?):-(
To test whether you’re on a left or right page you can use the \signalrightpage and \doifrightpageelse commands
this doesn't seem to work well -- at least not within \placefigure I've tried this replacement in my \bild macro which should be equivalent (or better?) % \ifodd\bildpage \def\eo{o}\else \def\eo{e}\fi % \ifodd\bildpage \def\lr{r}\else \def\lr{l}\fi \dontleavehmode\signalrightpage \doifrightpageelse{\def\eo{o}}{\def\eo{e}}% \doifrightpageelse{\def\lr{r}}{\def\lr{r}}% (with and without \dontleavehmode\signalrightpage) and now I get more wrong picture placements for the first picture on some pages... I vaguely remember that {\global\bildpage=\currentreferencerealpage}% {\global\bildpage=\realpageno}% was a hack from Hans to work arround "issues" to get the real page number within those floats ?! Harald -- "I hope to die ___ _____ before I *have* to use Microsoft Word.", 0--,| /OOOOOOO\ Donald E. Knuth, 02-Oct-2001 in Tuebingen. <_/ / /OOOOOOOOOOO\ \ \/OOOOOOOOOOOOOOO\ \ OOOOOOOOOOOOOOOOO|// \/\/\/\/\/\/\/\/\/ Harald Koenig // / \\ \ koenig@tat.physik.uni-tuebingen.de ^^^^^ ^^^^^
On 3/15/2015 8:13 PM, Harald Koenig wrote:
On Mar 15, Wolfgang Schuster wrote:
Am 15.03.2015 um 16:40 schrieb Harald Koenig
: Hi,
right now I use \currentreferencerealpage to detect if I'm on an even or odd page (because my picture placement rules depend on it) like this:
\newcount\bildpage \bildpage=1 % ... \def\bild#1...{% {\global\bildpage=\realpageno}% \ifodd\bildpage \def\eo{o}\else \def\eo{e}\fi % ... \if o\eo odd...\else even...\fi \message{>> bildpage=\the\bildpage \space eo=\eo \space currentreferencerealpage=\currentreferencerealpage \space << }% }
but now I notice that for some pages/pictures the value of \currentreferencerealpage is not correct (only for the first picture on a new page?):-(
To test whether you’re on a left or right page you can use the \signalrightpage and \doifrightpageelse commands
this doesn't seem to work well -- at least not within \placefigure
I've tried this replacement in my \bild macro which should be equivalent (or better?)
% \ifodd\bildpage \def\eo{o}\else \def\eo{e}\fi % \ifodd\bildpage \def\lr{r}\else \def\lr{l}\fi \dontleavehmode\signalrightpage \doifrightpageelse{\def\eo{o}}{\def\eo{e}}% \doifrightpageelse{\def\lr{r}}{\def\lr{r}}%
(with and without \dontleavehmode\signalrightpage) and now I get more wrong picture placements for the first picture on some pages...
you need to make sure that the signal travels with the stuff you're checking btw, if you use side floats, the inner/outer variants do this auto left/right stuff ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
Harald Koenig
-
Wolfgang Schuster