Bug with rule between columns in columnset
Hi, this seems like a bug in the MetaFun or column set code. Printing a vertical rule between columns fails with ! terminal: >> NOfTextColumns-1 ! Improper final value has been replaced by 0. <to be read again> The code also fails, when the column set code is commented out, but then the NOfTextColumns doesn't make sense any longer. Older betas work perfectly. \startuseMPgraphic{verticalline} for i=1 upto NOfTextColumns-1 : draw (rightboundary TextColumns[i]) shifted (2.5mm,0) shifted -\MPxy\textanchor; endfor ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic \defineoverlay [verticalline] [\useMPgraphic{verticalline}] \setupbackgrounds [text] [background=verticalline] \definecolumnset [example] [n=2] \starttext \startcolumnset [example] \input knuth \stopcolumnset \stoptext Marco
On 24-7-2012 12:52, Marco wrote:
Hi,
this seems like a bug in the MetaFun or column set code. Printing a vertical rule between columns fails with
! terminal: >> NOfTextColumns-1 ! Improper final value has been replaced by 0. <to be read again>
The code also fails, when the column set code is commented out, but then the NOfTextColumns doesn't make sense any longer. Older betas work perfectly.
\startuseMPgraphic{verticalline} for i=1 upto NOfTextColumns-1 : draw (rightboundary TextColumns[i]) shifted (2.5mm,0) shifted -\MPxy\textanchor; endfor ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic
that (experimental) mechanism has been removed (maybe something else get in place, like regions we have already elsewhere)
\defineoverlay [verticalline] [\useMPgraphic{verticalline}] \setupbackgrounds [text] [background=verticalline] \definecolumnset [example] [n=2]
\starttext \startcolumnset [example] \input knuth \stopcolumnset \stoptext
I've added two column state variables to mp: \startuseMPgraphic{verticalline} if CurrentColumn < NOfColumns : draw rightboundary OverlayBox shifted (2.5mm,0) ; setbounds currentpicture to OverlayBox enlarged 2.5mm; fi ; \stopuseMPgraphic \definecolumnset [example] [n=3,background=verticalline,distance=5mm] \defineoverlay [verticalline] [\useMPgraphic{verticalline}] \starttext \startcolumnset [example] \input knuth \input knuth \input knuth \input knuth \stopcolumnset \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 2012-07-24 Hans Hagen
I've added two column state variables to mp:
\startuseMPgraphic{verticalline} if CurrentColumn < NOfColumns : draw rightboundary OverlayBox shifted (2.5mm,0) ; setbounds currentpicture to OverlayBox enlarged 2.5mm; fi ; \stopuseMPgraphic
Thanks Hans for this quick solution. I like the new approach, no fiddling with test backgrounds. However, the old mechanism did not draw the rule through where the graphics are inserted. I don't know why, but that was exactly what I needed. The new mechanism draws a rule regardless of the presence of a graphic. See the attached examples. With the dummy pictures it looks quite okay with the line drawn through. But in the document several graphics already have a frame, which then visually interferes with the column separator rule. Is there a way to get the old behaviour? Marco
participants (2)
-
Hans Hagen
-
Marco