<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Calibri Light";
panose-1:2 15 3 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-NZ link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoPlainText>Every time I have a good idea, I eventually realise why it will not work. Sigh...<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>So I think the way forward may be to understand and build on the general point label definition....<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span lang=FR style='font-family:"Calibri Light",sans-serif'>vardef p_label@#(expr txt,pos,rot,mode) =<o:p></o:p></span></p><p class=MsoPlainText><span lang=FR style='font-family:"Calibri Light",sans-serif'> </span><span style='font-family:"Calibri Light",sans-serif'>if (mode=1) or (mode=7): interim labeloffset:=(u/8) fi;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> lab:=thelabel@#(txt, pos);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> if mode>1: pickup PenD fi;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> if mode=1:<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> pickup pencircle scaled (u/6);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> drawdot(pos);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> process_label(pos,0);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=2: process_uplabel; <o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=3: process_downlabel;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=4: process_updownlabel;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=5: process_circledlabel;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=6: process_boxedlabel;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=7: process_label(pos,rot); % station name<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> elseif mode=8: process_filledlabel(pos, rot);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> else: process_label(pos,rot); fi;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'>enddef;<o:p></o:p></span></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Thomas Holder modified it to get custom ‘point altitude’ here<o:p></o:p></p><p class=MsoPlainText><a href="https://therion.speleo.sk/wiki/metapost#label_and_text_examples">https://therion.speleo.sk/wiki/metapost#label_and_text_examples</a><o:p></o:p></p><p class=MsoPlainText>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’.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>And Stacho Mudrak once proposed another modification to enable any text label to be hidden, based on a user specified attribute.<o:p></o:p></p><p class=MsoPlainText><a href="http://article.gmane.org/gmane.comp.gis.therion/933/match=importance+scaling+text+orientation">http://article.gmane.org/gmane.comp.gis.therion/933/match=importance+scaling+text+orientation</a><o:p></o:p></p><p class=MsoPlainText>In principle this approach would allow us to add a box or some other characteristic to any text label.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>It might be helpful to figure out what the mode settings refer to. Here are my deductions so far.<o:p></o:p></p><p class=MsoPlainText>mode = -1 % symbol does not or cannot have a text property<o:p></o:p></p><p class=MsoPlainText>mode = 0 % point label<o:p></o:p></p><p class=MsoPlainText>mode = 1 % point altitude<o:p></o:p></p><p class=MsoPlainText><span lang=FR>mode = 2 % point passage-height +ve<o:p></o:p></span></p><p class=MsoPlainText><span lang=FR>mode = 3 % point passage-height -ve<o:p></o:p></span></p><p class=MsoPlainText>mode = 4 % point passage-height both +ve and -ve<o:p></o:p></p><p class=MsoPlainText>mode = 5 % point passage-height unsigned<o:p></o:p></p><p class=MsoPlainText>mode = 6 % ?? (this is the so-called ‘boxed_label’)<o:p></o:p></p><p class=MsoPlainText>mode = 7 % point station-name, point height<o:p></o:p></p><p class=MsoPlainText>mode = 8 % ?? (this is the so-called ‘filled_label’)<o:p></o:p></p><p class=MsoPlainText><span style='background:yellow;mso-highlight:yellow'>Missing entities include ‘remark’, ‘date’</span><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>If anyone knows better, please let me know.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>This bit of code that puts continuation text inside a coloured text box might also provide insight for a one-off solution as well.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> code metapost<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> def p_continuation(expr pos,theta,sc,al) =<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> %# draw default continuation symbol ie ?<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> p_continuation_UIS(pos,theta,sc,al);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> %# if text attribute is set<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> if known(ATTR__text) and picture(ATTR__text):<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> %# set labeling color to light orange<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> push_label_fill_color(1.0, 0.9, 0.8);<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> %# draw filled label with text next to symbol ?<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> </span><span lang=FR style='font-family:"Calibri Light",sans-serif'>p_label.urt(ATTR__text,(.5u,-.25u) transformed T,0.0,8);<o:p></o:p></span></p><p class=MsoPlainText><span lang=FR style='font-family:"Calibri Light",sans-serif'> </span><span style='font-family:"Calibri Light",sans-serif'>%# restore original labeling color<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> pop_label_fill_color;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> fi;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> enddef;<o:p></o:p></span></p><p class=MsoPlainText><span style='font-family:"Calibri Light",sans-serif'> endcode<o:p></o:p></span></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Bruce<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span lang=EN-US style='mso-fareast-language:EN-NZ'>-----Original Message-----<br>From: Therion <<a href="mailto:therion-bounces@speleo.sk">therion-bounces@speleo.sk</a>> On Behalf Of Bruce Mutton via Therion<br>Sent: Sunday, 23 September 2018 10:25<br>To: 'List for Therion users' <<a href="mailto:therion@speleo.sk">therion@speleo.sk</a>><br>Cc: Bruce Mutton <<a href="mailto:bruce@tomo.co.nz">bruce@tomo.co.nz</a>><br>Subject: Re: [Therion] Height numbers in square boxes</span><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Maybe we can use an approach that Thomas Holder demonstrated here <a href="https://therion.speleo.sk/wiki/metapost#scale_dependant_visualization_of_symbols"><span style='color:windowtext;text-decoration:none'>https://therion.speleo.sk/wiki/metapost#scale_dependant_visualization_of_symbols</span></a> <o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText> def l_rockborder (expr p) =<o:p></o:p></p><p class=MsoPlainText> if abs(llcorner p - urcorner p) > u:<o:p></o:p></p><p class=MsoPlainText> l_rockborder_UIS(p);<o:p></o:p></p><p class=MsoPlainText> fi;<o:p></o:p></p><p class=MsoPlainText> enddef;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Simply enclosing an existing metapost definition within a user customised metapost wrapper.<o:p></o:p></p><p class=MsoPlainText>In the case above, it is "if the symbol is big enough, draw it".<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>What we want instead is, "draw the symbol, draw a box around it".<o:p></o:p></p><p class=MsoPlainText>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.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I'll leave it to someone else to explore...<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Bruce<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-----Original Message-----<o:p></o:p></p><p class=MsoPlainText>From: Therion <<a href="mailto:therion-bounces@speleo.sk"><span style='color:windowtext;text-decoration:none'>therion-bounces@speleo.sk</span></a>> On Behalf Of Andrew Atkinson via Therion<o:p></o:p></p><p class=MsoPlainText>Sent: Friday, 21 September 2018 09:16<o:p></o:p></p><p class=MsoPlainText>To: <a href="mailto:therion@speleo.sk"><span style='color:windowtext;text-decoration:none'>therion@speleo.sk</span></a><o:p></o:p></p><p class=MsoPlainText>Cc: Andrew Atkinson <<a href="mailto:andrew@wotcc.org.uk"><span style='color:windowtext;text-decoration:none'>andrew@wotcc.org.uk</span></a>><o:p></o:p></p><p class=MsoPlainText>Subject: Re: [Therion] Height numbers in square boxes<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>...<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>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<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>\fbox{4}<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>but how or if you can use that in therion I do not know.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>It is a problem that is interesting me, as I think it is something that I might want to use.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Andrew<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>_______________________________________________<o:p></o:p></p><p class=MsoPlainText>Therion mailing list<o:p></o:p></p><p class=MsoPlainText><a href="mailto:Therion@speleo.sk"><span style='color:windowtext;text-decoration:none'>Therion@speleo.sk</span></a><o:p></o:p></p><p class=MsoPlainText><a href="https://mailman.speleo.sk/listinfo/therion"><span style='color:windowtext;text-decoration:none'>https://mailman.speleo.sk/listinfo/therion</span></a><o:p></o:p></p></div></body></html>