Hi Bruce -

I have done some more work on this, and I have made progress.  As you and I 
have both noted :-)  I do not completely understand why it works.  There are 
some deep dark secrets in TeX!  I have ordered a copy of Knuth's original book 
on TeX.

The attached file is the latest version of my thconfig file.

The magic lines that make the date and Therion version into larger fonts are 
98-99 and 156-157.  I used the "-d" option when compiling, then looked at the 
resulting file called "data.tex".  It has quite a few lines using the \ss 
macro.  I adapted those lines and was pleased to find that it works.

The mystery, of course, is what exactly is the \ss macro doing?  I did some 
Google searches but the only pages I found refer to the special German 
character ß which is obviously not how it is being used here.

I have not messed with the base-scale settings any further.  I also have not 
chased the problem where "debug station-names" leaks from one layout section 
to another.  Martin produced a test case that contradicts my experience.  He 
is using a different version of Therion than I am.  More investigation is 
needed.

-- 
Bill Gee



On Tuesday, November 14, 2017 1:15:23 PM CST Bruce Mutton via Therion wrote:
> Bill
> 
> >I have managed to get what I want, though I do not completely understand
> 
> why it works.
> 
>       :) sometimes my experience as well.
> >
> >I tried various "base-scale" settings but could not see any visible change.
> 
> It was effectively a null setting.
>       Even when base-scale value is 2x or 0.5x the scale value?
> 
> >I discovered some other issues while testing.  First, the settings for
> 
> "debug station-names" and "symbol-show group centerline" are apparently
> global.  If they are set in any layout-endlayout section, then they are set
> for all subsequent layouts.  Is that how they should behave?
>       No they should not work that way, but this type of issue does seem
> familiar.  I seem to recall I had this kind of thing happen some years and
> some versions ago.  It is possible that it was related to having multiple
> copies of the same file open in different instances of Therion, or to some
> bug or the possibility I was using some feature in an unintended way.  Often
> errors in one place don't show up until several processing steps later,
> often in another 'input' file.
> 
> >The TeX code includes \the\currentdate and \the\thversion.  Both items do
> 
> show up on the legend, just below the symbol table.  However, they totally
> ignore the {\size[]} option.  Is that option implemented for these TeX
> macros?  It does not produce any errors when compiling the map.  It also
> does not change anything!
>       \def\txtsize{16}  % Define the default text size
>       \legendtextsize={\size[\txtsize]}
>       \the\currentdate={\size[30]}
>       \the\thversion={\size[\txtsize]}
> 
>       You are outside my area of competence here.  Your code is clean and
> readable, but it is different to what I have been using, not so readable,
> which includes tests that the variables exist and specifies the size and
> style of the text at the start of the line that the variable is called up
> in, as follows.  Maybe including \legendtextsize\ on the same line as
> \the\thversion will improve the behaviour.
> 
> \newtoks\thversiontitleA \thversiontitleA={Compiled}
> \newtoks\thversiontitleB \thversiontitleB={Therion }
> \newtoks\datetitle \datetitle={on }
> 
>     \edef\tmp{\the\thversion} \ifx\tmp\empty \else  %only write version and
> date if version is not emplty
>       {\the\legendtextsize\si\the\thversiontitleA: \ss\the\thversiontitleB
> \ss\the\thversion}
>       {\the\legendtextsize\ss\the\datetitle \ss\the\currentdate\par}
>     \fi
> 
> >Is there a place where ALL TeX macro options and parameters of ALL macros
> 
> are documented?
>       Not quite sure what you are asking beyond what is listed as you
> describe.   Simple answer is probably no. If you want everything, then
> obtaining it is described here
> https://therion.speleo.sk/wiki/metapost#how_to_get_therions_metapost_code_an
> d_tex_code
> Perhaps you could start a list on the wiki, then others can build on it with
> whatever knowledge they have.
> 
> Bruce
> 
> _______________________________________________
> Therion mailing list
> Therion@speleo.sk
> https://mailman.speleo.sk/listinfo/therion

encoding  utf-8
source AllieSpringCave.th
input ../TherionMasterFiles/CustomSymbolsCode.txt

# This layout is for the main 2D map, all on one page
layout basics
        units imperial
        scale-bar 50 feet
        page-numbers on
        north true
        rotate 0
        symbol-color group centerline [0 80 0]
        symbol-color area water [0 0 100]
        map-comment "A compass and tape survey of Allie Spring Cave (PUL-317), 
Pulaski County, Missouri"
        statistics explo all
        legend on
        map-header 3 65 w
        symbol-set UIS


# Section for PDF properties
        doc-author "Bill Gee"
        doc-title "Map of Allie Spring Cave (PUL-317)"
        doc-subject "Plan map of Allie Spring Cave (PUL-317)"

# Section for map photos

# Add in the elevations maps
# Entrance passage profile
#   map-image 0 -3 nw AllieSpringCaveElev1.pdf
   
# D side passage profile
#   map-image 8 41 sw AllieSpringCaveElev2.pdf
   
# C side passage profile
#   map-image 24 5 sw AllieSpringCaveElev3.pdf
   
# B side passage profile - Main cave passage
#   map-image 20 100 sw AllieSpringCaveElev4.pdf
   
# B side passage profile part two
#   map-image 20 93 sw AllieSpringCaveElev5.pdf

# Bring in the custom symbols
  copy CustomSymbols

# Reassign names 
  symbol-assign point gradient AMER
  symbol-assign point stalagmite AMER
  symbol-assign point stalactite AMER
  symbol-assign point pillar AMER
  symbol-assign point popcorn AMER
  
endlayout

layout mainmapnocolor
  copy basics
  symbol-show group centerline
  debug station-names
  scale 1 200
  color map-fg [100 86 66]
  
# Change the size of the legend
code metapost
   tmpscale=1.8;
   def draw_legend_box =
       % Next line controls size of symbol in each symbol table box
        currentpicture := currentpicture scaled tmpscale;
        % Next line controls size of symbol table box background
        clip currentpicture to unitsquare inscale xscaled tmpscale yscaled 
tmpscale;
        drawoptions();
        pickup PenB;
        % I think the next line controls the size of each symbol table box
        draw unitsquare inscale xscaled tmpscale yscaled tmpscale;
    enddef;
 
    %clear the background of the larger legend boxes   
    def clean_legend_box =
        unfill unitsquare inscale xscaled tmpscale yscaled tmpscale;
    enddef;
   
    %change the value of inscale to fill the legend boxes
    def inscale =
        xscaled (legend_scale*tmpscale) yscaled (0.618*legend_scale*tmpscale)
    enddef;
endcode
 
code tex-map
  \def\maplayout{
    \legendbox{3}{65}{W}{
      \def\txtsize{40}  % Define the default text size
      \legendwidth=50 cm
      \legendtextsectionsize={\size[\txtsize]}
      \legendtextsize={\size[\txtsize]}
      \legendtextheadersize={\size[80]}
      \hsize=\legendwidth
      \the\legendcontent={\size[\txtsize]}
      \the\legendtextsize\ss\ Map generated on \the\currentdate\medskip
      \the\legendtextsize\ss\ Therion version \the\thversion
      }
  }
endcode 
#end of TeX code to change legend size
endlayout

layout mainmapwithcolor
  copy basics
  symbol-show group centerline
  debug station-names
  scale 1 200
  color map-fg altitude
endlayout

layout mainmapprint
  copy basics
  scale 1 800
  debug off
  symbol-hide group centerline
  color map-fg [100 86 66]

# Change the size of the legend
code metapost
   tmpscale=1.3;
   def draw_legend_box =
       % Next line controls size of symbol in each symbol table box
        currentpicture := currentpicture scaled tmpscale;
        % Next line controls size of symbol table box background
        clip currentpicture to unitsquare inscale xscaled tmpscale yscaled 
tmpscale;
        drawoptions();
        pickup PenB;
        % I think the next line controls the size of each symbol table box
        draw unitsquare inscale xscaled tmpscale yscaled tmpscale;
    enddef;
 
    %clear the background of the larger legend boxes   
    def clean_legend_box =
        unfill unitsquare inscale xscaled tmpscale yscaled tmpscale;
    enddef;
   
    %change the value of inscale to fill the legend boxes
    def inscale =
        xscaled (legend_scale*tmpscale) yscaled (0.618*legend_scale*tmpscale)
    enddef;
endcode
 
code tex-map
  \def\maplayout{
    \legendbox{3}{65}{W}{
      \def\txtsize{16}  % Define the default text size
      \legendwidth=20 cm
      \legendtextsectionsize={\size[\txtsize]}
      \legendtextsize={\size[\txtsize]}
      \legendtextheadersize={\size[40]}
      \hsize=\legendwidth
      \the\legendcontent={\size[\txtsize]}
      \the\legendtextsize\ss\ Map generated on \the\currentdate\medskip
      \the\legendtextsize\ss\ Therion version \the\thversion
      }
  }
endcode 
#end of TeX code to change legend size
  
endlayout  

# Change the legend callouts
  text en_US "point u:stalagmaflat_AMER" "stalagmaflat"
  text en_US "line u:dripline_AMER" "dripline"
  text en_US "point u:pendant" "pendant"
  text en_US "point u:stromatolite" "stromatolite"
  
# Now list all the map files to be created.

# The main plan map
export map -proj plan -layout mainmapnocolor -o AllieSpringCave.pdf

# The main map for printing
export map -proj plan -layout mainmapprint -o AllieSpringCavePrint.pdf

# Main plan map with elevations colorized
export map -proj plan -layout mainmapwithcolor -o AllieSpringCaveColored.pdf

# Create an atlas map
# export atlas -proj plan -layout mainmapnocolor -o AllieSpringCaveAtlas.pdf

# create a centerline map using XVI format
# export map -proj plan -fmt xvi -o AllieSpringCave.xvi

# Create a 3d map for use with Loch
# export model -fmt loch -o AllieSpringCave.lox

# Create a 3d map for use with Survex/Aven
# export model -fmt 3d -o AllieSpringCave.3d

# Create a KML file for Google Earth
# export map -proj plan -fmt kml -output AllieSpringCave.kml
_______________________________________________
Therion mailing list
Therion@speleo.sk
https://mailman.speleo.sk/listinfo/therion

Reply via email to