On 2017-01-20 11:42, Otared Kavian wrote:
Hi Hans,
Unfortunately your workaround with \getbuffer does not produce the correct page: it gives only a blank page.
Thanks for your attention: OK
On 20 Jan 2017, at 10:08, Hans Hagen
wrote: On 1/20/2017 8:59 AM, Aditya Mahajan wrote:
On Thu, 19 Jan 2017, Rik Kabel wrote:
ConTeXters,
When \dorecurse is active in the following MWE, the lines of text are overprinted. At least, this is the case for me, please confirm it for yourself. When \dorecurse is disabled, the lines print as they should, separately. Please tell me what I am doing wrong with this, if anything, and how to fix it. (Running ConTeXt ver: 2017.01.17 17:37 MKIV beta fmt: 2017.1.19 on Win10 x64. There are no errors in the log.) This has nothing to do with \dorecurse, but due to the fact that the argument of \dorecurse or any macro is parsed before the catcode changes introduced by \startlines come into effect. Here is a simpler example demonstrating similar behavior:
\def\test#1{#1}
\starttext \test{Something \startlines Line one Line two \stoplines} \stoptext
Depending on what you want to do, it should be possible to come up with a workaround. \startbuffer \startstandardmakeup \setlayerframed [blocks] [preset=lefttop, frame=off, align=right]{ \startlines Line one on the left Line two on the left \stoplines } \setlayerframed [blocks] [preset=righttop, frame=off, align=flushright]{ \startlines thgir eht no eno eniL thgir eht no owt eniL \stoplines } \stopstandardmakeup \stopbuffer
\dorecurse{1}{ \getbuffer }
___________________________________________________________________________________
Hans and Aditya, Thank you for the explanation and the workaround. Otared, I am not sure what you are doing, but if you are using only the code snippet that Hans posted, you will get a blank page. You have to define the layer and page background in addition to Hans' snippet. --- Rik