<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>