Every time I have a good idea, I eventually realise why it will not work.
Sigh...
So I think the way forward may be to understand and build on the general point
label definition....
vardef p_label@#(expr txt,pos,rot,mode) =
if (mode=1) or (mode=7): interim labeloffset:=(u/8) fi;
lab:=thelabel@#(txt, pos);
if mode>1: pickup PenD fi;
if mode=1:
pickup pencircle scaled (u/6);
drawdot(pos);
process_label(pos,0);
elseif mode=2: process_uplabel;
elseif mode=3: process_downlabel;
elseif mode=4: process_updownlabel;
elseif mode=5: process_circledlabel;
elseif mode=6: process_boxedlabel;
elseif mode=7: process_label(pos,rot); % station name
elseif mode=8: process_filledlabel(pos, rot);
else: process_label(pos,rot); fi;
enddef;
Thomas Holder modified it to get custom ‘point altitude’ here
https://therion.speleo.sk/wiki/metapost#label_and_text_examples
It is interesting as I don’t think there is a ‘point altitude’ definition
present in the Therion distribution, but Thomas has created one to use in
conjunction with a modification of the p_label definition above. The situation
may be similar for ‘point height’.
And Stacho Mudrak once proposed another modification to enable any text label
to be hidden, based on a user specified attribute.
http://article.gmane.org/gmane.comp.gis.therion/933/match=importance+scaling+text+orientation
In principle this approach would allow us to add a box or some other
characteristic to any text label.
It might be helpful to figure out what the mode settings refer to. Here are my
deductions so far.
mode = -1 % symbol does not or cannot have a text property
mode = 0 % point label
mode = 1 % point altitude
mode = 2 % point passage-height +ve
mode = 3 % point passage-height -ve
mode = 4 % point passage-height both +ve and -ve
mode = 5 % point passage-height unsigned
mode = 6 % ?? (this is the so-called ‘boxed_label’)
mode = 7 % point station-name, point height
mode = 8 % ?? (this is the so-called ‘filled_label’)
Missing entities include ‘remark’
If anyone knows better, please let me know.
This bit of code that puts continuation text inside a coloured text box might
also provide insight for a one-off solution as well.
code metapost
def p_continuation(expr pos,theta,sc,al) =
%# draw default continuation symbol ie ?
p_continuation_UIS(pos,theta,sc,al);
%# if text attribute is set
if known(ATTR__text) and picture(ATTR__text):
%# set labeling color to light orange
push_label_fill_color(1.0, 0.9, 0.8);
%# draw filled label with text next to symbol ?
p_label.urt(ATTR__text,(.5u,-.25u) transformed T,0.0,8);
%# restore original labeling color
pop_label_fill_color;
fi;
enddef;
endcode
Bruce
-----Original Message-----
From: Therion <[email protected]> On Behalf Of Bruce Mutton via Therion
Sent: Sunday, 23 September 2018 10:25
To: 'List for Therion users' <[email protected]>
Cc: Bruce Mutton <[email protected]>
Subject: Re: [Therion] Height numbers in square boxes
Maybe we can use an approach that Thomas Holder demonstrated here
<https://therion.speleo.sk/wiki/metapost#scale_dependant_visualization_of_symbols>
https://therion.speleo.sk/wiki/metapost#scale_dependant_visualization_of_symbols
def l_rockborder (expr p) =
if abs(llcorner p - urcorner p) > u:
l_rockborder_UIS(p);
fi;
enddef;
Simply enclosing an existing metapost definition within a user customised
metapost wrapper.
In the case above, it is "if the symbol is big enough, draw it".
What we want instead is, "draw the symbol, draw a box around it".
I expect something like bbox should enable us to put a line around a symbol,
regardless of whether it is a text or arbitrary linework.
I'll leave it to someone else to explore...
Bruce
-----Original Message-----
From: Therion < <mailto:[email protected]> [email protected]>
On Behalf Of Andrew Atkinson via Therion
Sent: Friday, 21 September 2018 09:16
To: <mailto:[email protected]> [email protected]
Cc: Andrew Atkinson < <mailto:[email protected]> [email protected]>
Subject: Re: [Therion] Height numbers in square boxes
...
Yes I'm having similar problems to you defining a box, my skills are generally
limited to copying existing definitions and adjusting them slightly. My guess
is that it is not a metapost, it is tex as it is a label, in tex you can put a
box round text with
\fbox{4}
but how or if you can use that in therion I do not know.
It is a problem that is interesting me, as I think it is something that I might
want to use.
Andrew
_______________________________________________
Therion mailing list
<mailto:[email protected]> [email protected]
<https://mailman.speleo.sk/listinfo/therion>
https://mailman.speleo.sk/listinfo/therion
_______________________________________________
Therion mailing list
[email protected]
https://mailman.speleo.sk/listinfo/therion