Some questions about an environment (Metafun)
![](https://secure.gravatar.com/avatar/d7c3317235884569312c31f786d43bbc.jpg?s=120&d=mm&r=g)
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
![](https://secure.gravatar.com/avatar/d7c3317235884569312c31f786d43bbc.jpg?s=120&d=mm&r=g)
Hi Aditya,
Thank you, I have already thought of this solution, but I do not know
to use with
the environment that I created.
Fabrice
2015-08-04 18:02 GMT+02:00 Aditya Mahajan
On Tue, 4 Aug 2015, Fabrice Couvreur wrote:
How to have Definition 1, Definition 2, Definition 3 ... ?
\defineenumeration[definition][text=Definition]
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
___________________________________________________________________________________
![](https://secure.gravatar.com/avatar/d7c3317235884569312c31f786d43bbc.jpg?s=120&d=mm&r=g)
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
Hi Aditya, Thank you, I have already thought of this solution, but I do not know to use with the environment that I created. Fabrice
2015-08-04 18:02 GMT+02:00 Aditya Mahajan
: On Tue, 4 Aug 2015, Fabrice Couvreur wrote:
How to have Definition 1, Definition 2, Definition 3 ... ?
\defineenumeration[definition][text=Definition]
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
___________________________________________________________________________________
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 8/6/2015 11:38 PM, Fabrice Couvreur wrote:
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
\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
2015-08-04 21:30 GMT+02:00 Fabrice Couvreur
mailto:fabrice1.couvreur@gmail.com>: Hi Aditya, Thank you, I have already thought of this solution, but I do not know to use with the environment that I created. Fabrice
2015-08-04 18:02 GMT+02:00 Aditya Mahajan
mailto:adityam@umich.edu>: On Tue, 4 Aug 2015, Fabrice Couvreur wrote:
How to have Definition 1, Definition 2, Definition 3 ... ?
\defineenumeration[definition][text=Definition]
Aditya ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl mailto: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 ___________________________________________________________________________________
___________________________________________________________________________________ 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 ___________________________________________________________________________________
-- ----------------------------------------------------------------- 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 -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/d7c3317235884569312c31f786d43bbc.jpg?s=120&d=mm&r=g)
Hi Hans,
Thank you for responding to my request, it's really nice. By cons I do not
understand what you mean "
some day textext might handle it okay"
Fabrice
2015-08-07 14:26 GMT+02:00 Hans Hagen
On 8/6/2015 11:38 PM, Fabrice Couvreur wrote:
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
\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
2015-08-04 21:30 GMT+02:00 Fabrice Couvreur
mailto:fabrice1.couvreur@gmail.com>:
Hi Aditya, Thank you, I have already thought of this solution, but I do not know to use with the environment that I created. Fabrice
2015-08-04 18:02 GMT+02:00 Aditya Mahajan
mailto:adityam@umich.edu>: On Tue, 4 Aug 2015, Fabrice Couvreur wrote:
How to have Definition 1, Definition 2, Definition 3 ... ?
\defineenumeration[definition][text=Definition]
Aditya
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl mailto: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
___________________________________________________________________________________
___________________________________________________________________________________ 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
___________________________________________________________________________________
--
----------------------------------------------------------------- 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
___________________________________________________________________________________
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 8/4/2015 5:04 PM, Fabrice Couvreur wrote:
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 ?
\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
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
___________________________________________________________________________________ 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 ___________________________________________________________________________________
-- ----------------------------------------------------------------- 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 -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/d7c3317235884569312c31f786d43bbc.jpg?s=120&d=mm&r=g)
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
On 8/4/2015 5:04 PM, Fabrice Couvreur wrote:
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 ?
\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
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
___________________________________________________________________________________ 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
___________________________________________________________________________________
--
----------------------------------------------------------------- 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
___________________________________________________________________________________
participants (3)
-
Aditya Mahajan
-
Fabrice Couvreur
-
Hans Hagen