Hans Hagen schrieb am 11.04.2020 um 19:41:
On 4/11/2020 4:15 PM, mf wrote:
Hello list, this MWE is a simplified version of a real case:
\startuseMPgraphic{cell:triangle} path p ; p := unittriangle rotated 90 xscaled 2.5 OverlayWidth yscaled 2.5 OverlayHeight ; draw p withcolor red ; \stopuseMPgraphic \defineoverlay[triangle][{\uniqueMPgraphic{cell:triangle}}] \starttext \bTABLE[frame=off] \bTR \bTD[nx=2,background=triangle,align=middle] \dontleavehmode a\crlf text \eTD \eTR \bTR[toffset=1mm] \bTD left \eTD \bTD right \eTD \eTR \eTABLE \stoptext here's a very ugly solution
\startuseMPgraphic{cell:triangle} fill llcorner OverlayBox -- lrcorner OverlayBox -- (center bottomboundary OverlayBox shifted (0,\MPy{foo:2}-\MPh{foo:2}+\MPd{foo:2}-\MPy{foo:1})) -- cycle withcolor red ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic
\defineoverlay[triangle][{\uniqueMPgraphic{cell:triangle}}]
\starttext
\bTABLE[frame=off] \bTR
\bTD[nx=2,align=middle,height=0pt,background=triangle]\xypos{foo:1}\eTD \eTR \bTR \bTD[nx=2,align=middle] \dontleavehmode a\crlf text \eTD \eTR \bTR[toffset=1mm] \bTD \hpos{foo:2}{\strut} left \eTD \bTD right \eTD \eTR \eTABLE
\stoptext
it is probably possible to get some info otherwise (more efficient) if really needed (if we add some helpers)
Simpler, put the table in a frame. \startuseMPgraphic{cell:triangle} draw llcorner OverlayBox -- lrcorner OverlayBox -- center topboundary OverlayBox -- cycle withcolor red ; \stopuseMPgraphic \defineoverlay[triangle][{\uniqueMPgraphic{cell:triangle}}] \starttext \startframed[frame=off,offset=1ex,loffset=2ex,roffset=2ex,toffset=2ex,background=triangle] \bTABLE[frame=off] \bTR \bTD[nx=2,align=middle] a\crlf text \eTD \eTR \bTR[toffset=1mm] \bTD left \eTD \bTD right \eTD \eTR \eTABLE \stopframed \stoptext Wolfgang