ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Left frame on a block of text
@ 2019-04-20 12:53 Gilles Waeber
  2019-04-20 13:46 ` Aditya Mahajan
  0 siblings, 1 reply; 4+ messages in thread
From: Gilles Waeber @ 2019-04-20 12:53 UTC (permalink / raw)
  To: ntg-context

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

Regards,
Gilles

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Left frame on a block of text
  2019-04-20 12:53 Left frame on a block of text Gilles Waeber
@ 2019-04-20 13:46 ` Aditya Mahajan
  2019-04-20 18:53   ` Gilles Waeber
  2019-04-21 10:13   ` Otared Kavian
  0 siblings, 2 replies; 4+ messages in thread
From: Aditya Mahajan @ 2019-04-20 13:46 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Left frame on a block of text
  2019-04-20 13:46 ` Aditya Mahajan
@ 2019-04-20 18:53   ` Gilles Waeber
  2019-04-21 10:13   ` Otared Kavian
  1 sibling, 0 replies; 4+ messages in thread
From: Gilles Waeber @ 2019-04-20 18:53 UTC (permalink / raw)
  To: 'mailing list for ConTeXt users'

Thanks, that's exactly what I needed.
I got inspired by your post at https://adityam.github.io/context-blog/post/frame-with-solid-left-line/ for my original code.

I just added linecap:=butt; at the beginning of the metapost code to get squared ends.

Gilles

> 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}
linecap:=butt;
   draw leftboundary OverlayBox
         xshifted -(LeftMarginDistance + 0.5OverlayLineWidth)
         withpen pencircle scaled OverlayLineWidth;
   setbounds currentpicture to OverlayBox; \stopuseMPgraphic
> 
> \starttext
> \startleftbartext
> \input knuth
> \stopleftbartext
> \stoptext
> 
> 
> Aditya


___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Left frame on a block of text
  2019-04-20 13:46 ` Aditya Mahajan
  2019-04-20 18:53   ` Gilles Waeber
@ 2019-04-21 10:13   ` Otared Kavian
  1 sibling, 0 replies; 4+ messages in thread
From: Otared Kavian @ 2019-04-21 10:13 UTC (permalink / raw)
  To: mailing list for ConTeXt users

[-- Attachment #1: Type: text/plain, Size: 1476 bytes --]

Hi Aditya and Gilles,

It seems to me that adding a bar in the margin either with framedtext or with MetaPost, lacks the ability to continue through a page break. Using the ConTeXt built-in sidebar mechanism has the advantage of continuing through a page break, but it is still not perfetct because in some occasions (but not always…) the sidebar plunges into the footnote area. I don't know if the issue can be solved (adding negative bottomoffset solves partly the problem but when there is no footnote then the sidebar appears to be too short…).

Here is an example of how I use the sidebar to enhance \proclaim like texts.

Best regards: OK
%%%% begin test-sidebar-proclaim.tex
%%%%%%%
\definesidebar[ProclaimSidebar]
\setupsidebar[ProclaimSidebar]
	[rulecolor=darkred,
	rulethickness=1pt,
	alternative=2,
	distance=5mm,
%	bottomoffset=-7mm,
%	topoffset=-2mm
	]

\defineenumeration[proclaim]
	[text=,
	before={\startsidebar[ProclaimSidebar]},
	after={\stopsidebar},
	style=slanted,
	title=yes,
	titleleft=,
	titleright={.},
%	alternative=serried,
	alternative=hanging,
%	hang=2,
	width=fit,
	right={~},
	way=bysection,
	prefix=yes,
	prefixsegments={chapter:section}]
%%%%%%%

\starttext

\dorecurse{2}{\input knuth.tex\par}

\input tufte.tex \footnote{The sidebar gets into the footnote\dots}

\startproclaim{Lemma}
\dorecurse{4}{\input ward.tex \par}
\stopproclaim

\stoptext
%%%%%%  end test-sidebar-proclaim.tex



[-- Attachment #2: test-sidebar-proclaim.pdf --]
[-- Type: application/pdf, Size: 25486 bytes --]

[-- Attachment #3: Type: text/plain, Size: 2074 bytes --]




> On 20 Apr 2019, at 15:46, Aditya Mahajan <adityam@umich.edu> wrote:
> 
> 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
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________


[-- Attachment #4: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-04-21 10:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-20 12:53 Left frame on a block of text Gilles Waeber
2019-04-20 13:46 ` Aditya Mahajan
2019-04-20 18:53   ` Gilles Waeber
2019-04-21 10:13   ` Otared Kavian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).