Some questions about an environment (Metafun)

Hi, How to have Definition 1, Definition 2, Definition 3 ... ? Is it possible to translate the image p until the left edge of the text area ? Thank you, Fabrice \showframe \setupcolors[state=start,cmyk=yes] \definecolor[MyColor][c=0.00, m=0.10, y=0.20, k=0.00] \definecolor[myColor][c=0.00, m=0.62, y=1.00, k=0.00] \setupbodyfont[11pt] \defineoverlay[MyFrame][\useMPgraphic{MyFrame}] \defineframedtext [MyText] [frame=off, background=MyFrame, width=0.9\textwidth, location=right] \defineoverlay[MyFrame][\useMPgraphic{MyFrame}] \def\StartFrame{\startMyText} \def\StopFrame{\startMyText} \setMPtext{MyFrame}{\hbox spread 1em {\hss\strut {\bf\feature[+][f:smallcaps] Définition 1 }\hss}}} \startuseMPgraphic{MyFrame} path a ; path b ; picture p ; o := BodyFontSize ; p :=textext.rt(\MPstring{MyFrame}) ; p := p shifted (0,OverlayHeight-ypart center p) ; a := unitsquare xyscaled(OverlayWidth,OverlayHeight) ; fill a withcolor \MPcolor{MyColor} ; b := boundingbox p ; fill b withcolor \MPcolor{myColor} ; draw p withcolor white ; \stopuseMPgraphic \starttext \startlinecorrection[blank] \startMyText \input knuth \stopMyText \stoplinecorrection \startlinecorrection[blank] \startMyText \input knuth \stopMyText \stoplinecorrection \stoptext

Hi,
The following code (Metafun documentation, thanks again Hans !) is fully
understood and works very well. Sorry if I insist, but can we create a
counter to avoid writing \FrameTitle{Définition 1},
\FrameTitle{Définition 2}... ?
Thus, the only invocation \startMyText ... \stopMyText, \startMyText ... \
stopMyText ... this return Définition 1, Définition 2 ...
Thank you,
Fabrice
\setupbodyfont [palatino,11pt]
\setupcolors[state=start,cmyk=yes]
\definecolor[MyColor][c=0.00, m=0.10, y=0.20, k=0.00]
\definecolor[myColor][c=0.00, m=0.62, y=1.00, k=0.00]
\defineoverlay[MyFrame][\useMPgraphic{MyFrame}]
\defineframedtext
[MyText]
[frame=off,
background=MyFrame,
width=\textwidth,
location=right]
\defineoverlay[MyFrame][\useMPgraphic{MyFrame}]
\def\StartFrame{\startMyText}
\def\StopFrame{\startMyText}
\def\FrameTitle#1{\setMPtext{MyFrame}{\hbox spread
1em{\hss\strut{\bf\feature[+][f:smallcaps]}#1\hss}}}
\setMPtext{MyFrame}{}
\startuseMPgraphic{MyFrame}
path a ;
path b ;
picture p ;
o := BodyFontSize ;
p :=textext.rt(\MPstring{MyFrame}) ;
p := p shifted (2o,OverlayHeight-ypart center p) ;
a := unitsquare xyscaled (OverlayWidth,OverlayHeight) ;
fill a withcolor \MPcolor{MyColor} ;
b := boundingbox p ;
fill b withcolor \MPcolor{myColor} ;
draw p withcolor white ;
\stopuseMPgraphic
\starttext
\FrameTitle{Définition 1}
\startMyText
\input knuth
\stopMyText
\FrameTitle{Définition 2}
\startMyText
\input knuth
\stopMyText
\stoptext
2015-08-04 21:30 GMT+02:00 Fabrice Couvreur

On 8/6/2015 11:38 PM, Fabrice Couvreur wrote:
\setupbodyfont [palatino,11pt] \definecolor[MyColorB][c=0.00, m=0.62, y=1.00, k=0.00] \definecolor[MyColorA][.75(MyColorB,white)] %c=0.00, m=0.10, y=0.20, k=0.00] \defineframedtext [MyText] [frame=off, background=MyFrame, width=\textwidth, location=right] \defineoverlay [MyFrame] [\useMPgraphic{MyFrame}] \definelabel [Définition] [headstyle=\bf\smallcaps] \startuseMPgraphic{MyFrame} path b ; picture p ; p := textext.rt("\white\Définition") ; % some day textext might handle it okay p := p shifted (2BodyFontSize,OverlayHeight-ypart center p+.25ExHeight) ; b := boundingbox p leftenlarged .5EmWidth rightenlarged .5EmWidth ; fill OverlayBox withcolor \MPcolor{MyColorA} ; fill b withcolor \MPcolor{MyColorB} ; draw p ; \stopuseMPgraphic \starttext \startMyText \input knuth \stopMyText \startMyText \input knuth \stopMyText \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 8/4/2015 5:04 PM, Fabrice Couvreur wrote:
\startuseMPgraphic{MyFrame} picture p ; p := textext.rt(\MPstring{MyFrame}) ; p := p shifted (0,OverlayHeight-ypart center p) ; fill OverlayBox leftenlarged .1TextWidth withcolor \MPcolor{MyColor} ; fill boundingbox p withcolor \MPcolor{myColor} ; draw p withcolor white ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic
-- ----------------------------------------------------------------- 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 -----------------------------------------------------------------

Hi Hans,
Thank you for your suggestion, but it's not what I want, but I probably
misstated my request. For me, the image p contains the text "Définition 1", and
this is what I want orange rectangle translate to the left edge of the text
area.
Am I more clearly ?
Fabrice
2015-08-04 20:08 GMT+02:00 Hans Hagen
participants (3)
-
Aditya Mahajan
-
Fabrice Couvreur
-
Hans Hagen