Text with background (overlay with a line by MP)
Hello, I'm trying to create an overlay - text with a line drawn bellow. The following code: --- \defineoverlay[Label][\useMPgraphic{Label}] \startuniqueMPgraphic{Label} path p; p := (0,0) -- (OverlayWidth,0); draw p yshifted -1cm withpen pencircle scaled 1mm withcolor .667red; \stopuniqueMPgraphic \def\Text#1{\inframed[background=Label,frame=off]{#1}} \starttext AAA \Text{BBB} CCC \stoptext --- results in a horizontal line going exactly through the middle of the text. And I'd like to draw it bellow; thus "yshifted -1cm". How to do it? Best regards, Lukas
Procházka Lukáš
draw p yshifted -1cm withpen pencircle scaled 1mm withcolor .667red;
draw p withpen pencircle scaled 0mm withcolor white; draw p yshifted -OverlayHeight withpen pencircle scaled 1mm withcolor .667red; (quick and dirty, there is certainly a cleaner solution...) -- Peter
... Thanks, so a "dirty" trick must be done anyway? A trick which would cause MP to evaluate a higher bounding box?
draw p withpen pencircle scaled 0mm withcolor white;
--- draw (0,0); --- instead works as well.
draw p yshifted -OverlayHeight withpen pencircle scaled 1mm withcolor .667red;
(quick and dirty, there is certainly a cleaner solution...)
(I guess so as well.) (BTW: I don't want to just \underbar the text - this is a simplified task/sample; drawing should be more complicated in reality.) Lukas
pmlists@free.fr (Peter Münster) writes:
Procházka Lukáš
writes: \def\Text#1{\inframed[background=Label,frame=off]{#1}}
Or like this (less quick and perhaps less dirty):
\def\Text#1{\inframed[location=top, background=Label, boffset=\lineheight, frame=off]{#1}}
Oh, no, please forget that! -- Peter
On Sat, 19 Mar 2011, Procházka Lukáš wrote:
Hello,
I'm trying to create an overlay - text with a line drawn bellow.
The following code:
---
\defineoverlay[Label][\useMPgraphic{Label}]
\startuniqueMPgraphic{Label} path p; p := (0,0) -- (OverlayWidth,0); draw p yshifted -1cm withpen pencircle scaled 1mm withcolor .667red; \stopuniqueMPgraphic
\def\Text#1{\inframed[background=Label,frame=off]{#1}}
\starttext AAA \Text{BBB} CCC \stoptext
---
results in a horizontal line going exactly through the middle of the text.
And I'd like to draw it bellow; thus "yshifted -1cm".
How to do it?
You do not need yshifted. But you need to set the bounding box of the resulting image correctly. \startuniqueMPgraphic{Label} path p; p := (0,0) -- (OverlayWidth,0); draw p withpen pencircle scaled 1mm withcolor .667red; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic Aditya
On Sat, 19 Mar 2011 23:13:46 +0100, Aditya Mahajan
You do not need yshifted. But you need to set the bounding box of the resulting image correctly.
\startuniqueMPgraphic{Label} path p; p := (0,0) -- (OverlayWidth,0); draw p withpen pencircle scaled 1mm withcolor .667red; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic
Aditya
Perfect, thank you. Lukas
Am 19.03.2011 um 23:13 schrieb Aditya Mahajan:
On Sat, 19 Mar 2011, Procházka Lukáš wrote:
Hello,
I'm trying to create an overlay - text with a line drawn bellow.
[...]
How to do it?
You do not need yshifted. But you need to set the bounding box of the resulting image correctly.
\startuniqueMPgraphic{Label} path p; p := (0,0) -- (OverlayWidth,0); draw p withpen pencircle scaled 1mm withcolor .667red; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic
You can also use the \framed-parameters: \startuniqueMPgraphic{Label} path p; p := (0,0) -- (OverlayWidth,0); draw p withpen pencircle scaled \frameddimension{rulethickness} withcolor \MPcolor{\framedparameter{framecolor}}; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic \defineoverlay[Label][\useMPgraphic{Label}] \defineframed[Text][background=Label,frame=off,location=low,framecolor=darkred,rulethickness=1mm] \starttext AAA \Text{BBB} CCC \Text[framecolor=blue]{DDD} EEE \stoptext Wolfgang
participants (4)
-
Aditya Mahajan
-
pmlists@free.fr
-
Procházka Lukáš
-
Wolfgang Schuster