\doifelseoddpage not working as expected
Dear all, I need something like \doifelseoddpage, but this does not work as expected. See below example. You will notice that on page two you still get the ODD text, with page number 1. What's going on? Is there a proper way to detect what page I'm on? Example: \starttext \dorecurse{70}{\doifelseoddpage{ODD \currentpage\par}{EVEN \currentpage\par}} \stoptext My system: context --version mtx-context | ConTeXt Process Management 1.04 mtx-context | mtx-context | main context file: /home/berend/context/tex/texmf-context/tex/context/base/mkiv/context.mkiv mtx-context | current version: 2023.05.08 17:39 mtx-context | main context file: /home/berend/context/tex/texmf-context/tex/context/base/mkxl/context.mkxl mtx-context | current version: 2023.05.08 17:39 -- All the best, Berend de Boer
On 5/27/2023 6:00 AM, Berend de Boer via ntg-context wrote:
Dear all,
I need something like \doifelseoddpage, but this does not work as expected. See below example. You will notice that on page two you still get the ODD text, with page number 1.
What's going on? Is there a proper way to detect what page I'm on?
Example:
\starttext
\dorecurse{70}{\doifelseoddpage{ODD \currentpage\par}{EVEN \currentpage\par}}
\stoptext
My system:
context --version mtx-context | ConTeXt Process Management 1.04 mtx-context | mtx-context | main context file: /home/berend/context/tex/texmf-context/tex/context/base/mkiv/context.mkiv mtx-context | current version: 2023.05.08 17:39 mtx-context | main context file: /home/berend/context/tex/texmf-context/tex/context/base/mkxl/context.mkxl mtx-context | current version: 2023.05.08 17:39 You never know when tex will break a page unless you are explicit so you typeset the status too soon.
\setuppagenumbering[alternative=doublesided] % \setuppagenumbering[alternative={singlesided,doublesided}] \starttext \dorecurse{200}{ \dontleavehmode\signalrightpage \doifelserightpage{RIGHT}{LEFT} \doifelseoddpage {ODD }{EVEN} \par } \stoptext The rightpage check combined with putting a signal at the spot where you test will work ok. The odd/even test works as expected when you're in the page builder (wrapping up the page). Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Am 27.05.23 um 23:54 schrieb Hans Hagen via ntg-context:
You never know when tex will break a page unless you are explicit so you typeset the status too soon.
\setuppagenumbering[alternative=doublesided] % \setuppagenumbering[alternative={singlesided,doublesided}]
\starttext \dorecurse{200}{ \dontleavehmode\signalrightpage \doifelserightpage{RIGHT}{LEFT} \doifelseoddpage {ODD }{EVEN} \par } \stoptext
The rightpage check combined with putting a signal at the spot where you test will work ok.
The odd/even test works as expected when you're in the page builder (wrapping up the page).
Is this also the right approach to check for the current page within a float placement? Like \startplacefigure[] \dontleavehmode\signalrightpage % necessary? \doifelserightpage{RIGHT}{LEFT} \doifelseoddpage {ODD }{EVEN} \stopplacefigure ? In my macros from 2015 I’m still using manual right/left page versions, and I’d like to enhance them. I need e.g. different \offset values for \externalfigure depending on right/left page. Hraban
On 5/29/2023 4:10 PM, Henning Hraban Ramm via ntg-context wrote:
Am 27.05.23 um 23:54 schrieb Hans Hagen via ntg-context:
You never know when tex will break a page unless you are explicit so you typeset the status too soon.
\setuppagenumbering[alternative=doublesided] % \setuppagenumbering[alternative={singlesided,doublesided}]
\starttext \dorecurse{200}{ \dontleavehmode\signalrightpage \doifelserightpage{RIGHT}{LEFT} \doifelseoddpage {ODD }{EVEN} \par } \stoptext
The rightpage check combined with putting a signal at the spot where you test will work ok.
The odd/even test works as expected when you're in the page builder (wrapping up the page).
Is this also the right approach to check for the current page within a float placement? Like \startplacefigure[] \dontleavehmode\signalrightpage % necessary? \doifelserightpage{RIGHT}{LEFT} \doifelseoddpage {ODD }{EVEN} \stopplacefigure ?
In my macros from 2015 I’m still using manual right/left page versions, and I’d like to enhance them. I need e.g. different \offset values for \externalfigure depending on right/left page. normally you will use "inner*" and "outer*" placement there as in other cases (which uses the same tricks)
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Am 29.05.23 um 16:47 schrieb Hans Hagen via ntg-context:
Is this also the right approach to check for the current page within a float placement? Like \startplacefigure[] \dontleavehmode\signalrightpage % necessary? \doifelserightpage{RIGHT}{LEFT} \doifelseoddpage {ODD }{EVEN} \stopplacefigure ?
In my macros from 2015 I’m still using manual right/left page versions, and I’d like to enhance them. I need e.g. different \offset values for \externalfigure depending on right/left page. normally you will use "inner*" and "outer*" placement there as in other cases (which uses the same tricks)
I have one macro to place an page-width image with bleed, it uses \placefigure[top] and then \offset to move the image, so that it starts with bleed on the top side and with/without on the left side depending on a parameter that I change manually if the page breaking changes. The caption must stay within the type area – that works so far. But it shouldn’t be necessary to define left/right manually, and that’s my question: if these \doifs work correctly within a float placement. Hraban
participants (3)
-
Berend de Boer
-
Hans Hagen
-
Henning Hraban Ramm