Hi all, I use an overlay to implement a navigation bar in the left margin of a document. It seems to me that the processing of the overlay is done only once and not for every page again. In addition, the \lastpage is not available. Does anyone know a solution? Maybe headers/footers are a solution. But how is absolute positioning accomplished with them? Thanks for your attention, --Stefan PS: Here is my current implementation: \definelayer[navbar] \setupbackgrounds[text][leftmargin][background=navbar] \setlayer[navbar][x=0cm,y=10cm]{\the\pageno}
Stefan Wachter wrote:
Hi all,
I use an overlay to implement a navigation bar in the left margin of a document. It seems to me that the processing of the overlay is done only once and not for every page again. In addition, the \lastpage is not available.
Does anyone know a solution? Maybe headers/footers are a solution. But how is absolute positioning accomplished with them?
Hi Stefan, header/footer is a solution but I use another \def\PageNavig{\setlayer[navbar][x=0cm,y=10cm]{\the\pageno}} \appendtoks \PageNavig \to \everypagebody for this task. Vit Zyka
Hi Vit, thanks for the quick help. It works! --Stefan PS: Is there some documentation about \appendtoks around?
Vit Zyka wrote:
Stefan Wachter wrote:
Hi all,
I use an overlay to implement a navigation bar in the left margin of a document. It seems to me that the processing of the overlay is done only once and not for every page again. In addition, the \lastpage is not available.
Does anyone know a solution? Maybe headers/footers are a solution. But how is absolute positioning accomplished with them?
Hi Stefan, header/footer is a solution but I use another
\def\PageNavig{\setlayer[navbar][x=0cm,y=10cm]{\the\pageno}}
\appendtoks \PageNavig \to \everypagebody
for this task.
hm, dirty tricks -) beware of interference, also, be careful not to introduce funny spaces then. (sometimes \prependtoks is better) Hans ----------------------------------------------------------------- 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 -----------------------------------------------------------------
Stefan Wachter wrote:
Hi all,
I use an overlay to implement a navigation bar in the left margin of a document. It seems to me that the processing of the overlay is done only once and not for every page again. In addition, the \lastpage is not available.
page, paper and text backgrounda are calculated each page, unless you say \setupbackgrounds[state=repeat], in which case all are recalculated; if you put something in a layer it happens directly (but the layer may be flushed later)
Does anyone know a solution? Maybe headers/footers are a solution. But how is absolute positioning accomplished with them?
you can put a layer in the background of the header area and that do something: \startsetups whatever \setlayer[thatlayer][....positioning...]{\the\pageno} \stopsetups \setupheadertexts[\setups{whatever}]
PS: Here is my current implementation:
\definelayer[navbar] \setupbackgrounds[text][leftmargin][background=navbar] \setlayer[navbar][x=0cm,y=10cm]{\the\pageno}
lastpage etc only make sense in the output routine (during page building) since one does not know where tex will break the page. H ----------------------------------------------------------------- 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 -----------------------------------------------------------------
Hi Hans, I implemented my changing navigation bar like you proposed, i.e. using a layer that is "refreshed" by the footer text: \definelayer[navbar] \setupbackgrounds[text][leftmargin][background=navbar] \startsetups NavBar ... some quite complicated code setting up the navigation bar layer ... \stopsetups \setupfootertexts[\setups{NavBar}] Everything works now, but I was not able to use the \goto makro inside the navigation layer setup code. It seems that the \goto makro somehow interferes with the output routine. Therefore I had to replace the \goto makro in the setup code with my self written \PrevOrNextPage makro. This makro writes a "raw" pdftex link. (Sometime ago you hinted me to replace my \PrevOrNextPage makro by the \goto makro.) Using the \goto makro I get the following error message: ! Missing } inserted. <inserted text> } <to be read again> \endgroup \dosingletexts ...atetexts {#1#2#5}{#6{}{}{}}}}}}} \egroup <argument> ...tk \v!voet \v!tekst \c!middentekst } \hss }\hskip -\zetbreedte ... \dododoplacelayouttextline ...#2 #3}\hbox to #1{#4 }\stoplayoutcomponent \get... \dodoplacelayouttextline ... \c!kantlijntekst }}}} \fi \ifdim \rechtermargebr... ... l.211 ...t\crlf{} Die Landesregierung\blank[small] Can you please have a look on the example? I attach a file that when it is texexecuted produces the above error. When you comment out line 150 in the file and use line 148 instead, then the example works fine. Thanks, --Stefan Hans Hagen wrote:
Stefan Wachter wrote:
Hi all,
I use an overlay to implement a navigation bar in the left margin of a document. It seems to me that the processing of the overlay is done only once and not for every page again. In addition, the \lastpage is not available.
page, paper and text backgrounda are calculated each page, unless you say \setupbackgrounds[state=repeat], in which case all are recalculated; if you put something in a layer it happens directly (but the layer may be flushed later)
Does anyone know a solution? Maybe headers/footers are a solution. But how is absolute positioning accomplished with them?
you can put a layer in the background of the header area and that do something:
\startsetups whatever
\setlayer[thatlayer][....positioning...]{\the\pageno}
\stopsetups
\setupheadertexts[\setups{whatever}]
PS: Here is my current implementation:
\definelayer[navbar] \setupbackgrounds[text][leftmargin][background=navbar] \setlayer[navbar][x=0cm,y=10cm]{\the\pageno}
lastpage etc only make sense in the output routine (during page building) since one does not know where tex will break the page. H ----------------------------------------------------------------- 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 (4)
-
Hans Hagen
-
Stefan Wachter
-
Stefan Wachter
-
Vit Zyka