Hi all, I'd like to position some text in a corner of a natural table cell. I got as far as being able to put the same text on every cell (a "p" in the example). Now my problem is, how do I specify the contents of the overlay/layer on a per cell basis? Best for me would be if I could define the text directly within the cell. I'm surely open to a completely different solution that has the same outcome. Here's the minimal example of what I currently have. \starttext \definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}] \startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {p} \stopsetups \bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD multiline \par text \eTD \bTD some cell \par with even \par more \par text \eTD \eTR \eTABLE \stoptext Cheers, Volker
On 2/15/2016 10:32 AM, Volker Mische wrote:
Hi all,
I'd like to position some text in a corner of a natural table cell. I got as far as being able to put the same text on every cell (a "p" in the example). Now my problem is, how do I specify the contents of the overlay/layer on a per cell basis?
Best for me would be if I could define the text directly within the cell. I'm surely open to a completely different solution that has the same outcome.
Here's the minimal example of what I currently have.
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {p} \stopsetups
\bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD multiline \par text \eTD \bTD some cell \par with even \par more \par text \eTD \eTR \eTABLE
\stoptext
\bTABLE \bTR \bTD multiline \par text \eTD \bTD[background=pagenumber] some cell \par with even \par more \par text \eTD \eTR \eTABLE ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 02/15/2016 10:58 AM, Hans Hagen wrote:
On 2/15/2016 10:32 AM, Volker Mische wrote:
Hi all,
I'd like to position some text in a corner of a natural table cell. I got as far as being able to put the same text on every cell (a "p" in the example). Now my problem is, how do I specify the contents of the overlay/layer on a per cell basis?
Best for me would be if I could define the text directly within the cell. I'm surely open to a completely different solution that has the same outcome.
Here's the minimal example of what I currently have.
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {p} \stopsetups
\bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD multiline \par text \eTD \bTD some cell \par with even \par more \par text \eTD \eTR \eTABLE
\stoptext
\bTABLE \bTR \bTD multiline \par text \eTD \bTD[background=pagenumber] some cell \par with even \par more \par text \eTD \eTR \eTABLE
I wasn't clear enough. I still want to have `pagenumber` on every cell, but I'd like to be able to define its contents within the cell (instead of having something like "p" hard-coded). So I'm looking for something like \bTD multiline \par text \setlayercontents[pagenumber]{newval}\eTD \bTD some cell \par with even \par more \par text \setlayercontents[pagenumber]{differentval}\eTD Cheers, Volker
On 2/15/2016 11:10 AM, Volker Mische wrote:
On 02/15/2016 10:58 AM, Hans Hagen wrote:
On 2/15/2016 10:32 AM, Volker Mische wrote:
Hi all,
I'd like to position some text in a corner of a natural table cell. I got as far as being able to put the same text on every cell (a "p" in the example). Now my problem is, how do I specify the contents of the overlay/layer on a per cell basis?
Best for me would be if I could define the text directly within the cell. I'm surely open to a completely different solution that has the same outcome.
Here's the minimal example of what I currently have.
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {p} \stopsetups
\bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD multiline \par text \eTD \bTD some cell \par with even \par more \par text \eTD \eTR \eTABLE
\stoptext
\bTABLE \bTR \bTD multiline \par text \eTD \bTD[background=pagenumber] some cell \par with even \par more \par text \eTD \eTR \eTABLE
I wasn't clear enough. I still want to have `pagenumber` on every cell, but I'd like to be able to define its contents within the cell (instead of having something like "p" hard-coded).
So I'm looking for something like
\bTD multiline \par text \setlayercontents[pagenumber]{newval}\eTD \bTD some cell \par with even \par more \par text \setlayercontents[pagenumber]{differentval}\eTD \startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups
\bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD \setgvariable{table}{p}{b} multiline \par text \eTD \bTD \setgvariable{table}{p}{p} some cell \par with even \par more \par text \eTD \eTR \eTABLE ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 02/15/2016 11:45 AM, Hans Hagen wrote:
On 2/15/2016 11:10 AM, Volker Mische wrote:
On 02/15/2016 10:58 AM, Hans Hagen wrote:
On 2/15/2016 10:32 AM, Volker Mische wrote:
Hi all,
I'd like to position some text in a corner of a natural table cell. I got as far as being able to put the same text on every cell (a "p" in the example). Now my problem is, how do I specify the contents of the overlay/layer on a per cell basis?
Best for me would be if I could define the text directly within the cell. I'm surely open to a completely different solution that has the same outcome.
Here's the minimal example of what I currently have.
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {p} \stopsetups
\bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD multiline \par text \eTD \bTD some cell \par with even \par more \par text \eTD \eTR \eTABLE
\stoptext
\bTABLE \bTR \bTD multiline \par text \eTD \bTD[background=pagenumber] some cell \par with even \par more \par text \eTD \eTR \eTABLE
I wasn't clear enough. I still want to have `pagenumber` on every cell, but I'd like to be able to define its contents within the cell (instead of having something like "p" hard-coded).
So I'm looking for something like
\bTD multiline \par text \setlayercontents[pagenumber]{newval}\eTD \bTD some cell \par with even \par more \par text \setlayercontents[pagenumber]{differentval}\eTD \startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups
\bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD \setgvariable{table}{p}{b} multiline \par text \eTD \bTD \setgvariable{table}{p}{p} some cell \par with even \par more \par text \eTD \eTR \eTABLE
Thanks a lot that works. I've a follow up question. I'd like to wrap the `\setgvariable` in a a paragraph like thing. I found out about annotations, which look like what I've after. Though sadly I get an error message (! Undefined control sequence) when I use annotations. It works when I hard-code a value within the annotation, but it doesn't if I use the contents of the annotation. I've also tried it the `\placeannotationcontent` way, but there I get the same error. Here's the full example: \starttext \definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}] \startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups \define[2]\PageWrapper{\setgvariable{table}{p}{#2}} \usemodule[annotation] \defineannotation [pn] [alternative=command, command=\PageWrapper] \bTABLE \setupTABLE[each][each][background=pagenumber] \bTR \bTD \startpn b \stoppn multiline \par text \eTD \bTD \startpn p \stoppn some cell \par with even \par more \par text \eTD \eTR \eTABLE \stoptext Cheers, Volker
Volker Mische mailto:volker.mische@gmail.com 16. Februar 2016 um 17:21
Thanks a lot that works.
I've a follow up question. I'd like to wrap the `\setgvariable` in a a paragraph like thing. I found out about annotations, which look like what I've after.
Though sadly I get an error message (! Undefined control sequence) when I use annotations. It works when I hard-code a value within the annotation, but it doesn't if I use the contents of the annotation. I've also tried it the `\placeannotationcontent` way, but there I get the same error. Here's the full example:
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups
\define[2]\PageWrapper{\setgvariable{table}{p}{#2}}
\usemodule[annotation] \defineannotation [pn] [alternative=command, command=\PageWrapper] Use this defintion for your \startpn … \stoppn command:
\define\startpn {\grabuntil{stoppn}{\setgvariable{table}{p}}} Wolfgang
On 02/16/2016 05:40 PM, Wolfgang Schuster wrote:
Volker Mische mailto:volker.mische@gmail.com 16. Februar 2016 um 17:21
Thanks a lot that works.
I've a follow up question. I'd like to wrap the `\setgvariable` in a a paragraph like thing. I found out about annotations, which look like what I've after.
Though sadly I get an error message (! Undefined control sequence) when I use annotations. It works when I hard-code a value within the annotation, but it doesn't if I use the contents of the annotation. I've also tried it the `\placeannotationcontent` way, but there I get the same error. Here's the full example:
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups
\define[2]\PageWrapper{\setgvariable{table}{p}{#2}}
\usemodule[annotation] \defineannotation [pn] [alternative=command, command=\PageWrapper] Use this defintion for your \startpn … \stoppn command:
\define\startpn {\grabuntil{stoppn}{\setgvariable{table}{p}}}
Thanks for you help. Sadly I can't get it working, even if I hard-code the value of \setgvariable as e.g. \setgvariable{table}{p}{q}. I start to wonder if my whole approach is flawed and if there's a better way to display something absolutely positioned in (the corner of) a table cell that gets defined in the normal flow (just like another paragraph within the cell). Any pointers are welcome, I'm happy to dig deeper myself. Cheers, Volker
On 2/16/2016 10:29 PM, Volker Mische wrote:
On 02/16/2016 05:40 PM, Wolfgang Schuster wrote:
Volker Mische mailto:volker.mische@gmail.com 16. Februar 2016 um 17:21
Thanks a lot that works.
I've a follow up question. I'd like to wrap the `\setgvariable` in a a paragraph like thing. I found out about annotations, which look like what I've after.
Though sadly I get an error message (! Undefined control sequence) when I use annotations. It works when I hard-code a value within the annotation, but it doesn't if I use the contents of the annotation. I've also tried it the `\placeannotationcontent` way, but there I get the same error. Here's the full example:
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups
\define[2]\PageWrapper{\setgvariable{table}{p}{#2}}
\usemodule[annotation] \defineannotation [pn] [alternative=command, command=\PageWrapper] Use this defintion for your \startpn … \stoppn command:
\define\startpn {\grabuntil{stoppn}{\setgvariable{table}{p}}}
Thanks for you help. Sadly I can't get it working, even if I hard-code the value of \setgvariable as e.g. \setgvariable{table}{p}{q}.
I start to wonder if my whole approach is flawed and if there's a better way to display something absolutely positioned in (the corner of) a table cell that gets defined in the normal flow (just like another paragraph within the cell).
Any pointers are welcome, I'm happy to dig deeper myself.
test \wordright{p} ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 02/16/2016 10:49 PM, Hans Hagen wrote:
On 2/16/2016 10:29 PM, Volker Mische wrote:
On 02/16/2016 05:40 PM, Wolfgang Schuster wrote:
Volker Mische mailto:volker.mische@gmail.com 16. Februar 2016 um 17:21
Thanks a lot that works.
I've a follow up question. I'd like to wrap the `\setgvariable` in a a paragraph like thing. I found out about annotations, which look like what I've after.
Though sadly I get an error message (! Undefined control sequence) when I use annotations. It works when I hard-code a value within the annotation, but it doesn't if I use the contents of the annotation. I've also tried it the `\placeannotationcontent` way, but there I get the same error. Here's the full example:
\starttext
\definelayer [pagenumber][width=\overlaywidth,height=\overlayheight] \defineoverlay[pagenumber][{\directsetup{pagenumber}\tightlayer[pagenumber]}]
\startsetups pagenumber \setlayerframed [pagenumber] [preset=rightbottom] {\getvariable{table}{p}} \stopsetups
\define[2]\PageWrapper{\setgvariable{table}{p}{#2}}
\usemodule[annotation] \defineannotation [pn] [alternative=command, command=\PageWrapper] Use this defintion for your \startpn … \stoppn command:
\define\startpn {\grabuntil{stoppn}{\setgvariable{table}{p}}}
Thanks for you help. Sadly I can't get it working, even if I hard-code the value of \setgvariable as e.g. \setgvariable{table}{p}{q}.
I start to wonder if my whole approach is flawed and if there's a better way to display something absolutely positioned in (the corner of) a table cell that gets defined in the normal flow (just like another paragraph within the cell).
Any pointers are welcome, I'm happy to dig deeper myself.
test \wordright{p}
Thanks again. It's not quite what I'm after as it would be on the same line as the last in the paragraph (or one after), but another cell might be higher. So it might not always end up at the absolute bottom. Anyway, you all provided already so much help. As I'm a Context newbie I'll just take the to play around with the stuff and see if I can come up with something that suits my needs. I'll start a new thread in case I've a more more specific question. Cheers, Volker
participants (3)
-
Hans Hagen
-
Volker Mische
-
Wolfgang Schuster