Thanks Martin, and Stacho, for your collected efforts.

I’ll try out and digest all of those suggestions, and put something on the wiki 
in due course.


I started wondering if a similar thing could be done for ‘line label’ (for say 
boxed or filled) but looking at the code it seems like that would be a much 
bigger chunk of work, as the mode concept is not implemented there.


Thanks again




From: Therion <> On Behalf Of Martin Budaj via Therion
Sent: Thursday, 4 October 2018 07:07
To: List for Therion users <>
Cc: Martin Budaj <>
Subject: Re: [Therion] Height numbers in square boxes


On Tue, Oct 2, 2018 at 9:07 PM Bruce Mutton via Therion < 
<> > wrote:

If I wanted to box just one or two text labels, night it be possible to pass 
this parameter using a standard ‘point label’ entity with a ‘mode’ option?

Or would we have to go down a user defined label route?




there is no such option, but you can use custom attribute, let's name it 


-attr label_mode 6


Than you just need to redefine the label macro to use it:


vardef p_label@#(expr txt,pos,rot,mode_) =

  if known ATTR_label_mode:

    mode := scantokens(ATTR_label_mode);


    mode := 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);



  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;



Best regards,





Therion mailing list

Reply via email to