[NTG-context] Left frame on a block of text

Aditya Mahajan adityam at umich.edu
Sat Apr 20 15:46:00 CEST 2019


On Sat, 20 Apr 2019, Gilles Waeber wrote:

> Hi,
> I'm trying to create a style with a left border in the margin.
>
> I want the border to start and stop with the text. For the bottom I used
> framedepth but the bar still goes too far on the top?
>
> \showframe
> \showboxes
> \defineframedtext[leftbartext][
> 	width=broad,
> 	frame=off,
> 	leftframe=on,
> 	rulethickness=.5ex,
> 	offset=-\framedparameter{rulethickness},
> 	frameoffset=\dimexpr\leftmargindistance +
> \framedparameter{rulethickness}\relax,
> 	framedepth=-\framedparameter{frameoffset},
> ]
> \starttext
> \startleftbartext
> \input knuth
> \stopleftbartext
> \stoptext

Framed does not provide enough hooks to control the spaces. For something 
like this, you can also use metapost to draw the background:

\showframe
\showboxes
\defineframedtext[leftbartext][
         width=broad,
         frame=off,
         rulethickness=.5ex,
         background=mp:offsetframe,
         offset=overlay,
]

\defineoverlay[mp:offsetframe][\useMPgraphic{mp:offsetframe}]

\startuseMPgraphic{mp:offsetframe}
   draw leftboundary OverlayBox
         xshifted -(LeftMarginDistance + 0.5OverlayLineWidth)
         withpen pencircle scaled OverlayLineWidth;
   setbounds currentpicture to OverlayBox;
\stopuseMPgraphic

\starttext
\startleftbartext
\input knuth
\stopleftbartext
\stoptext


Aditya


More information about the ntg-context mailing list