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