* Position of MetaPost graphics @ 2011-04-01 9:39 Tim Steenvoorden 2011-04-03 15:33 ` Peter Rolf ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Tim Steenvoorden @ 2011-04-01 9:39 UTC (permalink / raw) To: ntg-context Dear list, I'm trying to make some fancy chapter headers. With MetaPost I drew a wave, which I'd like to place in the margin. I've read details.pdf and metafun.pdf, but I don't manage to get the positioning right. The wave should begin where the bottomframe ends and move on to the page border. Also, the graphic is placed in the page background layer, but nevertheless the text after the the graphic is shifted down. \startuniqueMPgraphic{wave} numeric periods, width; path wave; periods := 3 + 1/4; width := periods * 2*pi; wave := origin for x=0 step 0.1 until width: -- (x,x*sin(x)) endfor; pickup pencircle scaled 1pt; draw wave xscaled (OverlayWidth/width) yscaled (OverlayHeight/(2*width)); \stopuniqueMPgraphic \definelayer[decorations][position=yes,option=test,location=r] \setupbackgrounds[page][background=decorations] \defineoverlay[wave][\uniqueMPgraphic{wave}] \starttext {\ss\bfc A chapter title} \blank[small] \framed[frame=off,bottomframe=on,width=broad,rulethickness=1pt] {\ss\bfx \date \hfill Author Name} \setlayer[decorations]{\framed[background=wave,frame=off,width=\cutspace,height=2\lineheight]{}} \input knuth \stoptext What am I doing wrong? Is it a better idea to draw the bottomframe in MetaPost too? How do I take care of positioning in that case? Absolute positioning is not an option, because the length of the chapterheads can be two lines. It should also work on other paper sizes (A5 in particular). Kind regards, Tim Steenvoorden ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Position of MetaPost graphics 2011-04-01 9:39 Position of MetaPost graphics Tim Steenvoorden @ 2011-04-03 15:33 ` Peter Rolf 2011-04-03 16:42 ` Aditya Mahajan [not found] ` <4D9859C6.9040200@wxs.nl> 2 siblings, 0 replies; 6+ messages in thread From: Peter Rolf @ 2011-04-03 15:33 UTC (permalink / raw) To: mailing list for ConTeXt users [-- Attachment #1: Type: text/plain, Size: 2489 bytes --] Am 01.04.2011 11:39, schrieb Tim Steenvoorden: > Dear list, > > I'm trying to make some fancy chapter headers. With MetaPost I drew a > wave, which I'd like to place in the margin. I've read details.pdf and > metafun.pdf, but I don't manage to get the positioning right. The wave > should begin where the bottomframe ends and move on to the page > border. Also, the graphic is placed in the page background layer, but > nevertheless the text after the the graphic is shifted down. > > \startuniqueMPgraphic{wave} > numeric periods, width; > path wave; > periods := 3 + 1/4; > width := periods * 2*pi; > wave := origin for x=0 step 0.1 until width: > -- (x,x*sin(x)) > endfor; > pickup pencircle scaled 1pt; > draw wave xscaled (OverlayWidth/width) yscaled (OverlayHeight/(2*width)); > \stopuniqueMPgraphic > > \definelayer[decorations][position=yes,option=test,location=r] > \setupbackgrounds[page][background=decorations] > \defineoverlay[wave][\uniqueMPgraphic{wave}] > > \starttext > > {\ss\bfc A chapter title} > \blank[small] > \framed[frame=off,bottomframe=on,width=broad,rulethickness=1pt] > {\ss\bfx \date \hfill Author Name} > \setlayer[decorations]{\framed[background=wave,frame=off,width=\cutspace,height=2\lineheight]{}} > > \input knuth > > \stoptext > > What am I doing wrong? Is it a better idea to draw the bottomframe in > MetaPost too? How do I take care of positioning in that case? Absolute > positioning is not an option, because the length of the chapterheads > can be two lines. It should also work on other paper sizes (A5 in > particular). > Don't ask me. I have no experience with layers in combination with 'position=yes'. Anyhow, IMO it's much easier to draw all in one graphic than try to attach the MP graphic with the frame(d) border. Also: I have no idea how to do it :-) I attached a working example, but it's more a starting point than a final solution. Best wishes, Peter > Kind regards, > Tim Steenvoorden > ___________________________________________________________________________________ > 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://tex.aanhet.net > archive : http://foundry.supelec.fr/projects/contextrev/ > wiki : http://contextgarden.net > ___________________________________________________________________________________ > [-- Attachment #2: position.tex --] [-- Type: text/x-tex, Size: 950 bytes --] %\setuppapersize[A5][A5] \startuniqueMPgraphic{wave}{wl} numeric periods, width; path wave; periods := 3 + 1/4; width := periods * 2*pi; wl := \MPvar{wl}; ll := OverlayWidth-wl; wave := (origin for x=0 step 0.1 until width: .. (x,x*sin(x)) endfor) xscaled -1; % mirror (no shift correction needed) pickup pencircle scaled 1pt; draw reverse(wave xscaled (wl/width) yscaled (OverlayHeight/2width))--(ll,0); \stopuniqueMPgraphic \definelayer[decorations][position=yes,option=test,location=r,dx=-\cutspace] \setupbackgrounds[page][background=decorations] \defineoverlay[wave][\uniqueMPgraphic{wave}{wl=\cutspace}] \starttext \showframe[text] {\ss\bfc A chapter title} \blank[small] \framed[frame=off,width=broad] {\ss\bfx \date \hfill Author Name}% \setlayer[decorations]{\framed[background=wave,frame=off,width=\dimexpr\cutspace+\makeupwidth,height=2\lineheight,offset=overlay]{}} \input knuth \stoptext [-- Attachment #3: Type: text/plain, Size: 485 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Position of MetaPost graphics 2011-04-01 9:39 Position of MetaPost graphics Tim Steenvoorden 2011-04-03 15:33 ` Peter Rolf @ 2011-04-03 16:42 ` Aditya Mahajan [not found] ` <4D9859C6.9040200@wxs.nl> 2 siblings, 0 replies; 6+ messages in thread From: Aditya Mahajan @ 2011-04-03 16:42 UTC (permalink / raw) To: mailing list for ConTeXt users On Fri, 1 Apr 2011, Tim Steenvoorden wrote: (Untested). > \startuniqueMPgraphic{wave} > numeric periods, width; > path wave; > periods := 3 + 1/4; > width := periods * 2*pi; > wave := origin for x=0 step 0.1 until width: > -- (x,x*sin(x)) > endfor; > pickup pencircle scaled 1pt; > draw wave xscaled (OverlayWidth/width) yscaled (OverlayHeight/(2*width)); setbounds currentpicture to boundingbox OverlayBox ; > \stopuniqueMPgraphic Does setting the bounds of the current picture help? 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <4D9859C6.9040200@wxs.nl>]
* Re: Position of MetaPost graphics [not found] ` <4D9859C6.9040200@wxs.nl> @ 2011-04-03 23:22 ` Tim Steenvoorden 2011-04-04 7:33 ` Wolfgang Schuster 0 siblings, 1 reply; 6+ messages in thread From: Tim Steenvoorden @ 2011-04-03 23:22 UTC (permalink / raw) To: mailing list for ConTeXt users Thanks Peter! You are right it is easier to draw both the wave and the line in Metapost. And the dx=-\cutspace is just what I needed for left pages! I striped the frames out of the code and placed just the graphics in the layer with a reuseMPgraphic. Also, I pulled out the definition of the wave into a MPinclusions. I have to do LoadPageState in each graphic though. %\showframe \setuppapersize[A5][A5] \setuppagenumbering[alternative=doublesided] \startMPinclusions numeric periods, width; path wave; periods := 3 + 1/4; width := periods * 2*pi; wave := origin for x=0 step 0.1 until width: .. (x,x*sin(x)) endfor; \stopMPinclusions \startreusableMPgraphic{rightwave} LoadPageState; pickup pencircle scaled 1pt; draw origin -- (TextWidth,0) -- wave xscaled (CutSpace/width) yscaled (LineHeight/width) shifted (TextWidth,0); %setbounds currentpicture to unitsquare xscaled (TextWidth+CutSpace); \stopreusableMPgraphic \startreusableMPgraphic{leftwave} LoadPageState; pickup pencircle scaled 1pt; draw reverse wave xscaled (-1*CutSpace/width) yscaled (LineHeight/width) -- (TextWidth,0); \stopreusableMPgraphic \definelayer[decorations][position=yes,option=test] \setupbackgrounds[page][background=decorations] \starttext {\ss\bfc A chapter title} \blank[small] {\ss\bfx \date \hfill Author Name} \setlayer[decorations][location=r]{\reuseMPgraphic{rightwave}} \input knuth \page {\ss\bfc A very long chapter title on two or more lines} \blank[small] {\ss\bfx \date \hfill Author Name} \setlayer[decorations][location=r,dx=-\cutspace]{\reuseMPgraphic{leftwave}} \input knuth \stoptext Just one problem is left. The graphic occupies space in the text layer as if the location was set to rb. If you place it with the position=no option, it is properly placed in the background and it doesn't disturb the text. Is this a bug or a feature? I tried to play a bit with the bounding boxes, but I think I don't understand them that well. Regards, Tim 2011/4/3 Hans Hagen <pragma@wxs.nl>: > On 1-4-2011 11:39, Tim Steenvoorden wrote: >> >> Dear list, >> >> I'm trying to make some fancy chapter headers. With MetaPost I drew a >> wave, which I'd like to place in the margin. I've read details.pdf and >> metafun.pdf, but I don't manage to get the positioning right. The wave >> should begin where the bottomframe ends and move on to the page >> border. Also, the graphic is placed in the page background layer, but >> nevertheless the text after the the graphic is shifted down. >> >> \startuniqueMPgraphic{wave} >> numeric periods, width; >> path wave; >> periods := 3 + 1/4; >> width := periods * 2*pi; >> wave := origin for x=0 step 0.1 until width: >> -- (x,x*sin(x)) >> endfor; >> pickup pencircle scaled 1pt; >> draw wave xscaled (OverlayWidth/width) yscaled (OverlayHeight/(2*width)); >> \stopuniqueMPgraphic >> >> \definelayer[decorations][position=yes,option=test,location=r] >> \setupbackgrounds[page][background=decorations] >> \defineoverlay[wave][\uniqueMPgraphic{wave}] >> >> \starttext >> >> {\ss\bfc A chapter title} >> \blank[small] >> \framed[frame=off,bottomframe=on,width=broad,rulethickness=1pt] >> {\ss\bfx \date \hfill Author Name} >> >> \setlayer[decorations]{\framed[background=wave,frame=off,width=\cutspace,height=2\lineheight]{}} >> >> \input knuth >> >> \stoptext >> >> What am I doing wrong? Is it a better idea to draw the bottomframe in >> MetaPost too? How do I take care of positioning in that case? Absolute >> positioning is not an option, because the length of the chapterheads >> can be two lines. It should also work on other paper sizes (A5 in >> particular). > > you probably need to set the boundingbopx of your picture to something > reasonable (you can use the OverlayWidth and OverlayHeight variables) > > ----------------------------------------------------------------- > 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 > ----------------------------------------------------------------- > ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Position of MetaPost graphics 2011-04-03 23:22 ` Tim Steenvoorden @ 2011-04-04 7:33 ` Wolfgang Schuster 2011-04-06 14:04 ` Tim Steenvoorden 0 siblings, 1 reply; 6+ messages in thread From: Wolfgang Schuster @ 2011-04-04 7:33 UTC (permalink / raw) To: mailing list for ConTeXt users Am 04.04.2011 um 01:22 schrieb Tim Steenvoorden: > Thanks Peter! You are right it is easier to draw both the wave and the > line in Metapost. And the dx=-\cutspace is just what I needed for left > pages! > > I striped the frames out of the code and placed just the graphics in > the layer with a reuseMPgraphic. Also, I pulled out the definition of > the wave into a MPinclusions. I have to do LoadPageState in each > graphic though. > > %\showframe > \setuppapersize[A5][A5] > \setuppagenumbering[alternative=doublesided] > > \startMPinclusions > numeric periods, width; > path wave; > periods := 3 + 1/4; > width := periods * 2*pi; > wave := origin for x=0 step 0.1 until width: > .. (x,x*sin(x)) > endfor; > \stopMPinclusions > > \startreusableMPgraphic{rightwave} > LoadPageState; > pickup pencircle scaled 1pt; > draw origin -- (TextWidth,0) -- wave xscaled (CutSpace/width) yscaled > (LineHeight/width) shifted (TextWidth,0); > %setbounds currentpicture to unitsquare xscaled (TextWidth+CutSpace); > \stopreusableMPgraphic > > \startreusableMPgraphic{leftwave} > LoadPageState; > pickup pencircle scaled 1pt; > draw reverse wave xscaled (-1*CutSpace/width) yscaled > (LineHeight/width) -- (TextWidth,0); > \stopreusableMPgraphic > > \definelayer[decorations][position=yes,option=test] > \setupbackgrounds[page][background=decorations] > > \starttext > > {\ss\bfc A chapter title} > \blank[small] > {\ss\bfx \date \hfill Author Name} > \setlayer[decorations][location=r]{\reuseMPgraphic{rightwave}} > > \input knuth > > \page > > {\ss\bfc A very long chapter title on two or more lines} > \blank[small] > {\ss\bfx \date \hfill Author Name} > \setlayer[decorations][location=r,dx=-\cutspace]{\reuseMPgraphic{leftwave}} > > \input knuth > > \stoptext > > Just one problem is left. The graphic occupies space in the text layer > as if the location was set to rb. If you place it with the position=no > option, it is properly placed in the background and it doesn't disturb > the text. Is this a bug or a feature? > > I tried to play a bit with the bounding boxes, but I think I don't > understand them that well. Your problem is that you use {\ss\bfc …} etc. to place the title rather than contexts \title command where you can define your own command. With such a command you can put all text in a frame with your graphic a background. - http://wiki.contextgarden.net/Generate_Authorlist_from_Head_Content - http://wiki.contextgarden.net/Titles#A_complex_graphical_element_under_the_chapter_title Wolfgang ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Position of MetaPost graphics 2011-04-04 7:33 ` Wolfgang Schuster @ 2011-04-06 14:04 ` Tim Steenvoorden 0 siblings, 0 replies; 6+ messages in thread From: Tim Steenvoorden @ 2011-04-06 14:04 UTC (permalink / raw) To: mailing list for ConTeXt users Thanks for your tips Wolfgang! I switched to a solution as on the wiki, using overlays and frames in place of layers. After setting the boudingboxes right it works! I have to increase the \objectoffset though, because otherwise the graphic is chopped of: \setuppapersize[A5][A5] \setuppagenumbering[alternative=doublesided] \def\objectoffset{\cutspace} \startMPinclusions numeric CutSpace, wavePeriods, waveWidth; path unitwave; CutSpace := \the\cutspace; wavePeriods := 3 + 1/4; waveSize := wavePeriods * 2*pi; unitwave := (origin for x=0 step 0.1 until waveSize: .. (x,x*sin(x)) endfor) scaled (1/waveSize); \stopMPinclusions \startuniqueMPgraphic{rightwave} pickup pencircle scaled 1pt; draw origin -- (OverlayWidth,0) -- unitwave xscaled CutSpace yscaled (LineHeight/2) shifted (OverlayWidth,0); setbounds currentpicture to boundingbox OverlayBox; \stopuniqueMPgraphic \startuniqueMPgraphic{leftwave} pickup pencircle scaled 1pt; draw reverse unitwave xscaled (-1*CutSpace) yscaled (LineHeight/2) -- (OverlayWidth,0); setbounds currentpicture to boundingbox OverlayBox; \stopuniqueMPgraphic \defineoverlay[rightwave] [\uniqueMPgraphic{rightwave}] \defineoverlay[leftwave] [\uniqueMPgraphic{leftwave}] \setuphead[chapter] [style=\ss\bfc, page=yes, after={\PlaceDecoration\blank[big]}] \define\PlaceDecoration {\framed [width=broad, frame=off, offset=0pt, background=\doifoddpageelse{rightwave}{leftwave}] {\ss\bfx \date \hfill Author Name}} \starttext \chapter{A very long chapter title on two or more lines} \input knuth \chapter{A very long chapter title on two or more lines} \input knuth \stoptext The \startchapter[] solution on the wiki is very neat, but it doesn't work with MKII. Get errors with MKIV to... (Using TeXLive 2010) But I'll use \setvariables. Thanks for all your help! Tim 2011/4/4 Wolfgang Schuster <schuster.wolfgang@googlemail.com>: > Your problem is that you use {\ss\bfc …} etc. to place the title > rather than contexts \title command where you can define your own > command. With such a command you can put all text in a frame with > your graphic a background. > > - http://wiki.contextgarden.net/Generate_Authorlist_from_Head_Content > - http://wiki.contextgarden.net/Titles#A_complex_graphical_element_under_the_chapter_title > > Wolfgang ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-04-06 14:04 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-04-01 9:39 Position of MetaPost graphics Tim Steenvoorden 2011-04-03 15:33 ` Peter Rolf 2011-04-03 16:42 ` Aditya Mahajan [not found] ` <4D9859C6.9040200@wxs.nl> 2011-04-03 23:22 ` Tim Steenvoorden 2011-04-04 7:33 ` Wolfgang Schuster 2011-04-06 14:04 ` Tim Steenvoorden
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).