I've been trying to use layers for a simple logo that repeats on all pages. Something along the lines of the code below: \definelayer[mybg][x=0mm, y=0mm,width=\paperwidth, height=\paperheight,repeat=yes] \setlayer [mybg] [hoffset=1cm, voffset=1cm] {\framed[frame=on, width=3cm, height=2cm]{\externalfigure[cow][width=1cm] }} \setupbackgrounds[page][background=mybg] \starttext \dorecurse{6}{\input tufte\par} \stoptext It works as expected using Mk II but does not work under Mk IV: The layer appears only on the first page. Please Help, Derek
Am 04.08.2009 um 18:52 schrieb Derek CORDEIRO:
I've been trying to use layers for a simple logo that repeats on all pages. Something along the lines of the code below:
\definelayer[mybg][x=0mm, y=0mm,width=\paperwidth, height= \paperheight,repeat=yes]
\definelayer[mybg][width=\paperwidth,height=\paperheight,state=repeat] Wolfgang
On Wed, Aug 5, 2009 at 2:43 AM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
\definelayer[mybg][width=\paperwidth,height=\paperheight,state=repeat]
My file now contains: -------------------------------------------------------------------------------------------------------------- \definelayer[mybg][width=\paperwidth,height=\paperheight,state=repeat] \setlayer [mybg] [hoffset=1cm, voffset=1cm] {\framed[frame=on, width=3cm, height=2cm]{\externalfigure[cow][width=1cm] }} \setupbackgrounds[page][background=mybg] \starttext \dorecurse{6}{\input tufte\par} \stoptext It still does not work(still layer only on first page in Mk IV). What am I doing wrong? ConTeXt log at http://pastebin.com/m3d676b5a With Thanks, Derek
Am 05.08.2009 um 10:47 schrieb Derek CORDEIRO:
\definelayer[mybg][width=\paperwidth,height=\paperheight,state=repeat] \setlayer [mybg] [hoffset=1cm, voffset=1cm] {\framed[frame=on, width=3cm, height=2cm] {\externalfigure[cow][width=1cm] }} \setupbackgrounds[page][background=mybg]
\starttext \dorecurse{6}{\input tufte\par} \stoptext
It still does not work(still layer only on first page in Mk IV). What am I doing wrong?
A typo in pack-lyr.mkiv for the \dodoflushlayer macro. In MkII a line of the macro is \doifnotvalue{\??ll#2\c!position}\v!yes {\doifvalue{\??ll#2\c!repeat}\v!yes\!!donecfalse \doifvalue{\??ll#2\c!state}\v!repeat\!!donecfalse}% while in MkIV it's \ifx\@@currentlayerposition\v!yes \edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat \endcsname}% % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state \endcsname}% actually this is already set \ifx\@@currentlayerrepeat\v!yes \!!donecfalse \else\ifx\@@currentlayerstate\v!repeat \!!donecfalse \fi\fi \fi MkII expects position ≠ yes while MkIV continues only when position = yes what's wrong, you can add \unless before the \ifx and the layer mechanism works. \unless\ifx\@@currentlayerposition\v!yes \edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat \endcsname}% % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state \endcsname}% actually this is already set \ifx\@@currentlayerrepeat\v!yes \!!donecfalse \else\ifx\@@currentlayerstate\v!repeat \!!donecfalse \fi\fi \fi \fi Wolfgang
On Wed, Aug 5, 2009 at 2:45 PM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
Am 05.08.2009 um 10:47 schrieb Derek CORDEIRO:
\definelayer[mybg][width=\paperwidth,height=\paperheight,state=repeat]
\setlayer [mybg] [hoffset=1cm, voffset=1cm] {\framed[frame=on, width=3cm, height=2cm]{\externalfigure[cow][width=1cm] }} \setupbackgrounds[page][background=mybg]
\starttext \dorecurse{6}{\input tufte\par} \stoptext
It still does not work(still layer only on first page in Mk IV). What am I doing wrong?
A typo in pack-lyr.mkiv for the \dodoflushlayer macro.
In MkII a line of the macro is
\doifnotvalue{\??ll#2\c!position}\v!yes {\doifvalue{\??ll#2\c!repeat}\v!yes\!!donecfalse \doifvalue{\??ll#2\c!state}\v!repeat\!!donecfalse}%
while in MkIV it's
\ifx\@@currentlayerposition\v!yes
\edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat\endcsname}% % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state\endcsname}% actually this is already set \ifx\@@currentlayerrepeat\v!yes \!!donecfalse \else\ifx\@@currentlayerstate\v!repeat \!!donecfalse \fi\fi \fi
MkII expects position ≠ yes while MkIV continues only when position = yes what's wrong, you can add \unless before the \ifx and the layer mechanism works.
\unless\ifx\@@currentlayerposition\v!yes
\edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat\endcsname}% % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state\endcsname}% actually this is already set \ifx\@@currentlayerrepeat\v!yes \!!donecfalse \else\ifx\@@currentlayerstate\v!repeat \!!donecfalse \fi\fi \fi \fi
Thanks a lot, works great. Regards, Derek
Wolfgang Schuster wrote:
A typo in pack-lyr.mkiv for the \dodoflushlayer macro.
ok, fixed in next release ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Derek CORDEIRO
-
Hans Hagen
-
Wolfgang Schuster