[Therion] Height numbers in square boxes
Bruce Mutton
bruce at tomo.co.nz
Mon Sep 24 10:00:28 CEST 2018
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’, ‘date’
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 <therion-bounces at speleo.sk <mailto:therion-bounces at speleo.sk> > On Behalf Of Bruce Mutton via Therion
Sent: Sunday, 23 September 2018 10:25
To: 'List for Therion users' <therion at speleo.sk <mailto:therion at speleo.sk> >
Cc: Bruce Mutton <bruce at tomo.co.nz <mailto:bruce at tomo.co.nz> >
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:therion-bounces at speleo.sk> therion-bounces at speleo.sk> On Behalf Of Andrew Atkinson via Therion
Sent: Friday, 21 September 2018 09:16
To: <mailto:therion at speleo.sk> therion at speleo.sk
Cc: Andrew Atkinson < <mailto:andrew at wotcc.org.uk> andrew at wotcc.org.uk>
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:Therion at speleo.sk> Therion at speleo.sk
<https://mailman.speleo.sk/listinfo/therion> https://mailman.speleo.sk/listinfo/therion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.speleo.sk/pipermail/therion/attachments/20180924/e8ed4870/attachment.htm>
More information about the Therion
mailing list