Using frames with metapost background in metapost
Hi, I want to use a frame with metapost background to highlight some text inside metapost. But, the best that I can do is get metapost to typeset the code for the background, rather than execute it! Any ideas on a work around (in MkIV). \startmode[error] \defineoverlay[MP:background] [\useMPgraphic{MP:backgound}] \startuseMPgraphic{MP:backgound} draw OverlayBox randomized 9pt withcolor blue; \stopuseMPgraphic \stopmode \defineframed[boxframed][frame=on,background=MP:background] % A frame defined with \defineframe does not work % inside Metapost, so I prevent expansion. \unexpanded\def\boxed#1{\boxframed{#1}} \starttext \boxed{Boxed in text} \startMPcode draw textext("\boxed{boxed in metapost}") ; %draw textext("\boxframed{boxed in metapost}") ; \stopMPcode \stoptext Thanks, Aditya
On 11-1-2010 3:07, Aditya Mahajan wrote:
\startmode[error] \defineoverlay[MP:background] [\useMPgraphic{MP:backgound}]
\startuseMPgraphic{MP:backgound} draw OverlayBox randomized 9pt withcolor blue; \stopuseMPgraphic \stopmode
\defineframed[boxframed][frame=on,background=MP:background]
% A frame defined with \defineframe does not work % inside Metapost, so I prevent expansion.
\unexpanded\def\boxed#1{\boxframed{#1}}
ok, i'll make 'm unexpandable in the core
\starttext
\boxed{Boxed in text}
\startMPcode draw textext("\boxed{boxed in metapost}") ; %draw textext("\boxframed{boxed in metapost}") ; \stopMPcode
\stoptext
\starttext \startMPcode picture p ; p := textext("boxed in metapost") ; draw p ; draw (boundingbox p) randomized 9pt withcolor blue; \stopMPcode \stoptext for more complex cases use image as in picture p ; p := image ( draw this; drae that; ) ; ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Mon, 11 Jan 2010, Hans Hagen wrote:
\starttext
\boxed{Boxed in text}
\startMPcode draw textext("\boxed{boxed in metapost}") ; %draw textext("\boxframed{boxed in metapost}") ; \stopMPcode
\stoptext
\starttext
\startMPcode picture p ; p := textext("boxed in metapost") ; draw p ; draw (boundingbox p) randomized 9pt withcolor blue; \stopMPcode
\stoptext
for more complex cases use image as in
picture p ; p := image ( draw this; drae that; ) ;
Thanks. I needed this for drawing fancy borders with boxes.mp. Using metapost to directly draw the frame is not as convinient as using \framed, but it does work. Aditya
participants (2)
-
Aditya Mahajan
-
Hans Hagen