<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=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle19
{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;}
/* List Definitions */
@list l0
{mso-list-id:1318847897;
mso-list-type:hybrid;
mso-list-template-ids:1168532798 1673063736 336134147 336134149 336134145 336134147 336134149 336134145 336134147 336134149;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></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" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>> In my actual use case I have a plan and elevation at differing layout scales exported to the same pdf. I want these symbols to output the same (unscaled) size and for some reason the size differs by the ratio of the layout scales (I had thought that layout scales were meant to ensure text and symbol size were constant irrespective of layout scale, but the text and symbol sizes in fact differ unless I compensate by symbol scaling). <o:p></o:p></p><p class=MsoNormal>> I cannot help thinking I am making some illogical brain-fade error in thinking.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I was forgetting about fonts-setup and the differing default font sizes Therion has for different scales.<o:p></o:p></p><p class=MsoNormal><img width=467 height=47 style='width:4.8611in;height:.493in' id="Picture_x0020_1" src="cid:image003.png@01D76D2E.646E9190"><o:p></o:p></p><p class=MsoNormal>I typically use a layout that sets scales 1:500 and 1:1000 to use the same (bigger) font values than the Therion defaults. In this particular case I did not use that custom layout and so the difference surprized me.<o:p></o:p></p><p class=MsoNormal>Therion’s default initialise definition copied below also has differing values for u:, v: and w: at different scales. This then affects line thicknesses and symbol sizing, which looks a bit odd when they are side by side on the same page. So while I am comfortable messing with Therion’s font sizes in my custom layout, I may just leave the symbols alone on the basis that I may dig a bigger hole for myself.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Bruce<o:p></o:p></p><p class=MsoListParagraph><o:p> </o:p></p><p class=MsoNormal>def initialize (expr sc) =<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> if unknown BaseScale: BaseScale = sc; fi;<o:p></o:p></p><p class=MsoNormal> optical_zoom := BaseScale/sc;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> if BaseScale <= 1: % 1:100<o:p></o:p></p><p class=MsoNormal> u:=14bp; v:=14bp; w:=12bp;<o:p></o:p></p><p class=MsoNormal> fonts_setup(8,10,12,16,24);<o:p></o:p></p><p class=MsoNormal> elseif BaseScale <= 2: % 1:200<o:p></o:p></p><p class=MsoNormal> u:=12bp; v:=12bp; w:=12bp;<o:p></o:p></p><p class=MsoNormal> fonts_setup(7,8,10,14,20);<o:p></o:p></p><p class=MsoNormal> elseif BaseScale <= 5: % 1:500<o:p></o:p></p><p class=MsoNormal> <span style='background:yellow;mso-highlight:yellow'>u:=10bp; v:=10bp; w:=12bp;</span><o:p></o:p></p><p class=MsoNormal> <span style='background:yellow;mso-highlight:yellow'>fonts_setup(6,7,8,10,14);</span><o:p></o:p></p><p class=MsoNormal> else:<o:p></o:p></p><p class=MsoNormal> <span style='background:yellow;mso-highlight:yellow'>u:=7bp; v:=14bp; w:=10bp;</span><o:p></o:p></p><p class=MsoNormal> <span style='background:yellow;mso-highlight:yellow'>fonts_setup(5,6,7,8,10);</span><o:p></o:p></p><p class=MsoNormal> fi;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> u := optical_zoom * u;<o:p></o:p></p><p class=MsoNormal> v := optical_zoom * v;<o:p></o:p></p><p class=MsoNormal> w := optical_zoom * w;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> defaultscale := 0.8 * optical_zoom;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> def PenA = pencircle scaled (u/10) enddef;<o:p></o:p></p><p class=MsoNormal> def PenB = pencircle scaled (0.7*u/10) enddef;<o:p></o:p></p><p class=MsoNormal> def PenC = pencircle scaled (0.5*u/10) enddef;<o:p></o:p></p><p class=MsoNormal> def PenD = pencircle scaled (0.35*u/10) enddef;<o:p></o:p></p><p class=MsoNormal> def PenX = pencircle scaled (1.2*u/10) enddef;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> legend_scale := 3.14*u;<o:p></o:p></p><p class=MsoNormal>enddef;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span lang=EN-US> Therion <<a href="mailto:therion-bounces@speleo.sk">therion-bounces@speleo.sk</a>> <b>On Behalf Of </b>Bruce Mutton<br><b>Sent:</b> Monday, 28 June 2021 10:54<br><b>To:</b> 'List for Therion users' <<a href="mailto:therion@speleo.sk">therion@speleo.sk</a>><br><b>Subject:</b> [Therion] Some metapost symbols defined so they cannot be scaled<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’ve just noticed that some metapost symbols are coded so that they ignore scaling options xs, s, l, xl.<o:p></o:p></p><p class=MsoNormal>For example point dig is positioned but not rotated or scaled.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>def p_dig_UIS (expr <span style='background:yellow;mso-highlight:yellow'>pos</span>,<span style='background:aqua;mso-highlight:aqua'>r,s,</span><span style='background:yellow;mso-highlight:yellow'>al</span>) =<o:p></o:p></p><p class=MsoNormal> U:=(.4u, .5u);<o:p></o:p></p><p class=MsoNormal> T:=identity <span style='background:yellow;mso-highlight:yellow'>aligned al shifted pos</span>;<o:p></o:p></p><p class=MsoNormal> thfill ((-.075u,-.5u){down} .. {up}(0.075u, -.5u) -- (0.075u, .15u) -- (0.3u, 0.15u) -- (0.3u, 0.5u) --<o:p></o:p></p><p class=MsoNormal> (-.3u, .5u) -- (-.3u, .15u) -- (-.075u, .15u) -- cycle) rotated 45;<o:p></o:p></p><p class=MsoNormal>enddef;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Point camp is similar.<o:p></o:p></p><p class=MsoNormal>I can understand why it is not ideal to allow these to be rotated, and usually they should be inserted unscaled. However it is possible to have big, small, major, minor camps and digs that one might want to symbolise with size.<o:p></o:p></p><p class=MsoNormal>In my actual use case I have a plan and elevation at differing layout scales exported to the same pdf. I want these symbols to output the same (unscaled) size and for some reason the size differs by the ratio of the layout scales (I had thought that layout scales were meant to ensure text and symbol size were constant irrespective of layout scale, but the text and symbol sizes in fact differ unless I compensate by symbol scaling). <o:p></o:p></p><p class=MsoNormal>I cannot help thinking I am making some illogical brain-fade error in thinking.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>A similar symbol, danger, is coded to enable scaling. It works, in that I can make them bigger or smaller with for example -scale l, so the solution appears obvious.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>picture SBE_danger_raw;<o:p></o:p></p><p class=MsoNormal>SBE_danger_raw := image(<o:p></o:p></p><p class=MsoNormal> fill (331,489)..controls (330,489) and (328,489)..(326,488)<o:p></o:p></p><p class=MsoNormal> --(291,422)..controls (291,422) and (291,421)..(291,421)<o:p></o:p></p><p class=MsoNormal> ..controls (291,417) and (294,414)..(297,413)<o:p></o:p></p><p class=MsoNormal> --(365,413)..controls (369,414) and (371,417)..(371,421)<o:p></o:p></p><p class=MsoNormal> ..controls (371,422) and (371,422)..(371,423)<o:p></o:p></p><p class=MsoNormal> --(336,488)..controls (335,489) and (333,489)..(331,489)<o:p></o:p></p><p class=MsoNormal> ..controls (331,489) and (331,489)..(331,489)<o:p></o:p></p><p class=MsoNormal> --cycle withcolor red;<o:p></o:p></p><p class=MsoNormal> fill (336,427)..controls (336,430) and (334,432)..(331,432)<o:p></o:p></p><p class=MsoNormal> ..controls (328,432) and (326,430)..(326,427)<o:p></o:p></p><p class=MsoNormal> ..controls (326,424) and (328,422)..(331,422)<o:p></o:p></p><p class=MsoNormal> ..controls (334,422) and (336,424)..(336,427)<o:p></o:p></p><p class=MsoNormal> --cycle withcolor white;<o:p></o:p></p><p class=MsoNormal> fill (335,464)..controls (336,466) and (332,466)..(331,466)<o:p></o:p></p><p class=MsoNormal> ..controls (330,466) and (327,466)..(327,464)<o:p></o:p></p><p class=MsoNormal> --(330,436)..controls (330,435) and (330,435)..(331,435)<o:p></o:p></p><p class=MsoNormal> ..controls (332,435) and (332,435)..(332,436)<o:p></o:p></p><p class=MsoNormal> --cycle withcolor white;<o:p></o:p></p><p class=MsoNormal> currentpicture := currentpicture shifted (-(llcorner currentpicture)-(urcorner currentpicture - llcorner currentpicture)/2) scaled (u / max((xpart urcorner currentpicture) - (xpart llcorner currentpicture), (ypart urcorner currentpicture) - (ypart llcorner currentpicture)));<o:p></o:p></p><p class=MsoNormal>);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>def p_danger_SBE(expr <span style='background:yellow;mso-highlight:yellow'>pos</span>, <span style='background:aqua;mso-highlight:aqua'>theta, sc</span>, <span style='background:yellow;mso-highlight:yellow'>al</span>) =<o:p></o:p></p><p class=MsoNormal> T := identity <span style='background:aqua;mso-highlight:aqua'>rotated theta</span> <span style='background:yellow;mso-highlight:yellow'>aligned al</span> <span style='background:aqua;mso-highlight:aqua'>scaled sc</span> <span style='background:yellow;mso-highlight:yellow'>shifted pos</span>;<o:p></o:p></p><p class=MsoNormal> thdraw SBE_danger_raw;<o:p></o:p></p><p class=MsoNormal>enddef;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What do people think of changing the point symbol metapost definitions so that they can all be scaled?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Bruce<o:p></o:p></p></div></body></html>