On Tue, Mar 24, 2020 at 07:29:26PM +0100, Wolfgang Schuster wrote:
> 
> When you need the height for the layer offset you can use \dowithnextbox
> because it hides \setbox etc.
> 
> \definelayer[TextBox]
> 
> \showframe[text][text]
> 
> \starttext
> 
> \dowithnextbox
>   {\setlayer
>      [TextBox]
>      [x=\the\dimexpr(\textwidth -\nextboxwd)/3\relax,
>       y=\the\dimexpr(\textheight-\nextboxht)/3\relax]
>      {\flushnextbox}}
>   \hbox{\framed[width=300pt,align=normal]{\samplefile{ward}}}
> 
> \flushlayer[TextBox]
> 
> \stoptext


Thank you! I played with the example a bit, all works well with one exception:
When I replace "align=normal" by "align=left" the frame gets too wide at it's
left edge. I append this pdf-file. But "align=right" works well and that's what
I'm using most. Your Example is well suited to be used in page design!


> > > 
> > > \starttexdefinition NextboxDimension
> > >    \starttabulate
> > >    \NC Width  \EQ \the\nextboxwd \NC\NR
> > >    \NC Height \NC \the\nextboxht \NC\NR
> > >    \stoptabulate
> > > \stoptexdefinition
> > > 
> > > \starttext
> > > 
> > > \dowithnextboxcs
> > >    \NextboxDimension
> > >    \vbox
> > >      {\samplefile{ward}}
> > > 
> > > \dowithnextboxcs
> > >    \NextboxDimension
> > >    \vbox
> > >      {\setupalign[flushright]
> > >       \samplefile{ward}}
> > > 
> > > \dowithnextboxcs
> > >    \NextboxDimension
> > >    \vbox
> > >      {\hsize=200pt
> > >       \samplefile{ward}}
> > > 
> > > \dowithnextboxcs
> > >    \NextboxDimension
> > >    \vbox
> > >      {\hsize=200pt
> > >       \setupalign[flushright]
> > >       \samplefile{ward}}
> > > 
> > > \stoptext
> >

> The \dowithnextbox command stores the passed argument in the named box
> \nextbox and performs the content of the first argument (or the command when
> you use \dowithnextbox*cs*).
> 
> The get the width and height of the box you can use \wd\nextbox or the
> wrapper \nextboxwd. The content of the box can be flushed with \flushnextbox
> but when you need only a copy of it you have to use \copy\nextbox.
> 
> Wolfgang
> 

Thank you very much for the example and the explanation therefore! It should
be well suitable to evaluate width and height of boxes and to pass them to
luacode programs by 'tokens.getters.macro("...")' for instance.
Thank you again!

Rudolf

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to