Files
Synthese-PSM_LARRA/config.thc
T
Alex38Lyon 984336bfc3 debug atlas
2026-03-16 23:15:41 +01:00

4240 lines
157 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
encoding utf-8
######################################################################################################################################
# Version ARSIP By Alex 2026 03 16
######################################################################################################################################
######################################################################################################################################
# Licence
######################################################################################################################################
#
#<en> Released under a Creative Commons Attribution-ShareAlike-NonCommercial License:
#<fr> Publié sous la licence Creative Commons Attribution-ShareAlike-NonCommercial:
# <http://creativecommons.org/licenses/by-nc-nd/4.0/>
#
# Written by: / Écrit par : Xavier Robert
# Modified by: / Modifié par : Alexandre Pont
#
######################################################################################################################################
#<en> File to set up specific settings for Therion drawing outputs
# In your *.thconfig file, you need to call this file with:
#<fr> Fichier pour définir une configuration pour les dessins de issus de Therion
# Dans votre fichier *.thconfig, vous devez appeler ce fichier avec la ligne :
# input <path/to/the/file/>config.thc
#<en> and then, in each layout, you need to call the corresponding layout:
#<fr> et ensuite, dans chaque layout de votre thconfig, vous devez appeler les layouts qui vous intéressent comme par exemple :
# copy drawingconfig
#
#<en> Lots of definition comes from (or are deeply inspired by) the excellent Therion Wiki
#<fr> Beaucoup de définitions proviennent (ou sont fortement inspirées) de l'excellent Wiki Therion
# https://therion.speleo.sk/wiki/doku.php
# https://therion.speleo.sk/wiki/tbe:wiki6
# https://therion.speleo.sk/wiki/metapost
# https://thomas-holder.de/projects/therion/
#
#
##############
# - Translation English, French and Spanish : en, fr, es
#
#
############## layout definition:
# - layout langue-fr
# - layout langue-es
# - layout langue-en
# - layout drawingconfig
# - layout scalebar_horiz
# - layout scalebar_vert-Halama
# - layout scalebar_vert
# - layout headerl
# - layout headerl_LT
# - layout headerl_XXLT # <en> Layout to change the header (plan projection with minimum info)
# - layout header_coupe_vert-to-place
# - layout header_coupe_vert-auto
# - layout header_coupe
# - layout header-plan-schema
# - layout header_coupe-schema
# - layout headeratlas
# - layout layoutmapborder
# - layout LayoutAtlasNorthArrow2
# - layout LayoutAtlasNorthArrow
# - layout AtlasSetUp
# - layout layoutcontinuation
# - layout northarrowMG
# - layout test
# - layout depth
# - layout fonts_2000
# - layout fonts_1000
# - layout fonts_500
# - layout Survey_No_Scrap
############## Point, line and area in layout drawingconfig
############## Existing user points / nouvelles définitions de points :
# - nid/nest (u:nest)
# - gradient --> geologic dip
# - danger (u:danger)
# - chauves-souris/bats (u:bats)
# - stalactite boss (u:boss)
# - shell/coquille fossile (u:shell)
# - walking Caver/Spéléo qui marche (u:man_w)
# - climbing caver/Spéléo qui grimpe (u:man_c)
# - plan view symbol/symbole de vue en plan (u:symbol_plan)
# - extended view symbol/symbole de vue en coupe développée (u:symbol_extend)
# - entrance
# - blocks
# - pebbles
# - block user (u:block)
# - altitude
# - label
# - anchor artificial
# - anchor natural
############## Existing user lines:
# - strate/strata (u:strata; option -clip off)
# - coupole (u:coupole; option -clip off)
# - faille/fault (u:fault; option -clip off)
# - doline (u:doline; option -clip off)
# - chauves-souris/bats (u:bats)
# - rail (u:rail)
# - plan walk/ (u:planwalk)
# - surface (u:surf -clip off)
# - dive line/fil d'Ariane (u:ariane)
# - deviation (u:deviation)
# - rock border
# - shot_Survey line (u:Shot_Survey)
# - treetrunk line (u -subtype treetrunk -clip off)
# - bush line (u -subtype bush -attr bulgesize 1 -attr bulges 20 -clip off)
# - chimeney
# - slope
# - flowstone
# - wall unsurveyed
# - wall debris (u:wall_debris)
# - wall presumed
# - survey cave
############## Existing user areas:
# - boue/mud (u:boue)
# - guano (u:guano)
# - chauves-souris/bats (u:bats)
# - tronc/tree-trunk (u:tronc)
# - feuilles/tree-leaves (u:feuilles)
# - Tunnel initiation/Départ de galerie (u:galerie)
# - blocks
# - clay
# - mudcrack
# - sand
# - pebbles
# - sump
# - water
######################################################################################################################################
#<en> change the names for the legend
#<fr> change les descriptions des symboles pour la légende
######################################################################################################################################
text en "line u:rope" "rope"
text fr "line u:rope" "corde"
text es "line u:rope" "cuerda"
text en "line u:fault" "fault"
text fr "line u:fault" "faille"
text es "line u:fault" "falla"
text en "line u:strata" "strata"
text fr "line u:strata" "strate"
text es "line u:strata" "strata"
text en "line u:doline" "doline"
text fr "line u:doline" "doline"
text es "line u:doline" "dolina"
text en "point u:bats" "bat(s)"
text fr "point u:bats" "chauve-souris"
text es "point u:bats" "murciélago(s)"
text en "line u:bats" "bat path"
text fr "line u:bats" "passage de chauve-souris"
text es "line u:bats" "ruta de murciélagos"
text en "area u:bats" "lot of bats"
text fr "area u:bats" "beaucoup de chauve-souris"
text es "area u:bats" "muchos murciélagos"
text fr "area u:galerie" "départ de galerie"
text en "area u:galerie" "tunnel departure"
text es "area u:galerie" "salida de galeria"
text en "point u:guacharos" "guacharos"
text fr "point u:guacharos" "guacharos"
text es "point u:guacharos" "guacharos"
text fr "point danger" "danger !"
text en "point danger" "danger !"
text es "point danger" "danger !"
text en "point masonry" "masonry"
text fr "point masonry" "maçonnerie/murs"
text es "point masonry" "albañilería/muros"
text en "point ex-voto" "ex voto"
text fr "point ex-voto" "ex voto/signature"
text es "point ex-voto" "ex voto/firma"
text en "point human-bones" "human bones"
text fr "point human-bones" "ossements humains"
text es "point human-bones" "huesos humanos"
text en "point u:boss" "stalagmite boss"
text fr "point u:boss" "stalagmite boss"
text es "point u:boss" "stalagmite boss"
text fr "area u:guano" "guano"
text en "area u:guano" "guano"
text es "area u:guano" "guano"
text fr "area u:boue" "lac de boue"
text en "area u:boue" "mud lake"
text es "area u:boue" "lago de barro"
text fr "area u:tronc" "tronc d'arbre"
text en "area u:tronc" "Tree trunk"
text es "area u:tronc" "tronca de árbol"
text fr "area u:feuilles" "feuilles/feuillage"
text en "area u:feuilles" "tree leaves"
text es "area u:feuilles" "Hojas de árbol"
text en "line u:sentier" "trail"
text fr "line u:sentier" "sentier"
text es "line u:sentier" "sendero"
text en "point u:shell" "shell"
text fr "point u:shell" "fossile"
text es "point u:shell" "fosíl"
text en "line u:Shot_Survey" "Shot"
text fr "line u:Shot_Survey" "Visée"
text es "line u:Shot_Survey" "Referido"
# Correction texte espagnol
text es "point air-draught" "corriente de aire"
text es "line rock-border" "contorno de bloque"
#text es "point water-flow" "curso de agua"
#text es "line water-flow" "curso de agua"
#text es "group water-flow" "curso de agua"
text es "point water-flow:permanent" "riachuelo"
text es "line water-flow:permanent" "riachuelo"
text es "point water-flow:intermittent" "riachuelo intermitente"
text es "line water-flow:intermittent" "riachuelo intermitente"
text es "line water-flow:conjectural" "riachuelo supuesto"
text es "line rock-edge" "arista de bloque"
text es "point cave-pearl" "perlas de cavernas"
text es "point rimstone-dam" "travertino"
text es "point rimstone-pool" "travertino"
text es "point stalactite" "estalactita"
text es "point stalactites" "estalactitas"
text es "point stalagmite" "estalagmita"
text es "point stalagmites" "estalagmitas"
text es "point pillars" "pilares"
text es "point pillar" "pilare"
text fr "point traverse" "vire"
text fr "point ice-stalagmite" "stalagmite de glace"
text fr "point u:anchor_artificial" "Ancrage artificiel"
text fr "point u:anchor_natural" "Ancrage naturel"
text en "point u:man_w" "caver (walking)"
text fr "point u:man_w" "spéléo (marchant)"
text es "point u:man_w" "espeleológo (caminando)"
text en "point u:man_c" "caver (climbing)"
text fr "point u:man_c" "spéléo (grimpant)"
text es "point u:man_c" "espeleológo (escalando)"
text en "point u:symbol_plan" ""
text fr "point u:symbol_plan" ""
text es "point u:symbol_plan" ""
text en "point u:symbol_extend" ""
text fr "point u:symbol_extend" ""
text es "point u:symbol_extend" ""
text en "point wall-altitude" "altitude (m)"
text fr "point wall-altitude" "altitude (m)"
text es "point wall-altitude" "altura (m)"
text en "line u:treetrunk" "tree"
text fr "line u:treetrunk" "arbre"
text es "line u:treetrunk" "árbol"
text en "line u:bush" "bush"
text fr "line u:bush" "buisson"
text es "line u:bush" "arbusto"
######################################################################################################################################
### Layouts Languages/langues
######################################################################################################################################
#<en> Different layouts to manage languages (en, fr, es)
# In your thconfig, call the layout langue-XX where XX is en, fr or es
# You need to add one of these layout if you use the layout headerl or header_coupe
# If you want to add one of the field club, syntesys, web page, expedition, guide,
# add the following line in the code tex-map/endcode block of your layout in the thconfig
# \newtoks\YYYY \YYYY={the value of your variable}
# where YYYY = club, synth, wpage, expe or guide
#<fr> Différents layouts pour définir les langues (pour l'instant : en, fr, es)
# Dans votre thconfig, appelez le layout langue-XX où XX est en, fr ou es
# Vous devez ajouter l'un de ces layouts si vous voulez utiliser les layouts headerl ou header_coupe
# qui redéfinissent la présentation et les informations du cartouche (header).
# Si vous voulez ajouter un de ces champs club, syntesys, web page, expedition, guide,
# rajouter la ligne suivante dans le bloc code tex-map/endcode de votre layout dans votre thconfig
# (voir les exemples)
# \newtoks\YYYY \YYYY={Valeur de votre varialbe}
# où YYYY = club, synth, wpage, expe or guide
#
#<en> You may add new fields, following the examples in the layouts.
# If you add a new field, you need to edit the layout(s) headerl and/or header_coupe
#<fr> Vous pouvez ajouter de nouveaux champs, en suivant les exemples dans les layouts suivant.
# Si vous rajouter un nouveau champ, vous devrez éditer le(s) layout(s) headerl et/ou header_coupe
######################################################################################################################################
######################################################################################################################################
# Définit la langue française
######################################################################################################################################
layout langue-fr
language fr
code tex-map
#% Definition of variables for the tuned headers :
\newtoks\thversiontitleB \thversiontitleB={Therion }
\newtoks\thversiontitleA \thversiontitleA={Compilation}
\newtoks\datetitle \datetitle={le }
\newtoks\thproj \thproj={Projection }
\newtoks\thclub \thclub={Réalisation }
\newtoks\thsynth \thsynth={Synthèse }
\newtoks\thwpage \thwpage={Web }
\newtoks\thexpe \thexpe={Expedition }
\newtoks\thguide \thguide={Guide(s) }
\newtoks\thdatat \thdatat={Données }
\newtoks\thdatabase \thdatabase={Base de données }
\newtoks\depthrangetitle \depthrangetitle={Profondeurs depuis }
\newtoks\ththanksto \ththanksto{Remerciements }
\newtoks\thcoords \thcoords{Coordonnées }
\newtoks\explolengthtitle \explolengthtitle{Longueur explorée }
\newtoks\explodepthtitle \explodepthtitle{\thinspace{}---\thinspace{}\thinspace{}\thinspace{}\thinspace{}Profondeur explorée }
# Initiate variables
\newtoks\club \club={}
\newtoks\synth \synth={}
\newtoks\wpage \wpage={}
\newtoks\expe \expe={}
\newtoks\guide \guide={}
\newtoks\datat \datat={}
\newtoks\database \database={}
\newtoks\thanksto \thanksto={}
\newtoks\ECoordinates \ECoordinates={}
endcode
code tex-atlas
#% Definition of variables for the tuned headers :
\newtoks\thversiontitleB \thversiontitleB={Therion }
\newtoks\thversiontitleA \thversiontitleA={Compilation}
\newtoks\datetitle \datetitle={le }
\newtoks\thproj \thproj={Projection }
\newtoks\thclub \thclub={Réalisation }
\newtoks\thsynth \thsynth={Synthèse }
\newtoks\thwpage \thwpage={Web }
\newtoks\thexpe \thexpe={Expedition }
\newtoks\thguide \thguide={Guide(s) }
\newtoks\thdatat \thdatat={Données }
\newtoks\thdatabase \thdatabase={Base de données }
\newtoks\depthrangetitle \depthrangetitle={Profondeurs depuis }
\newtoks\ththanksto \ththanksto{Remerciements }
\newtoks\thcoords \thcoords{Coordonnées }
\newtoks\explolengthtitle \explolengthtitle{Longueur explorée }
\newtoks\explodepthtitle \explodepthtitle{\thinspace{}---\thinspace{}\thinspace{}\thinspace{}\thinspace{}Profondeur explorée }
# Initiate variables
\newtoks\club \club={}
\newtoks\synth \synth={}
\newtoks\wpage \wpage={}
\newtoks\expe \expe={}
\newtoks\guide \guide={}
\newtoks\datat \datat={}
\newtoks\database \database={}
\newtoks\thanksto \thanksto={}
\newtoks\ECoordinates \ECoordinates={}
endcode
endlayout
######################################################################################################################################
# Definición del idioma español
######################################################################################################################################
layout langue-es
language es
code tex-map
#% Definition of variables for the tuned headers :
\newtoks\thversiontitleB \thversiontitleB={Therion }
\newtoks\thversiontitleA \thversiontitleA={Compilación}
\newtoks\datetitle \datetitle={el }
\newtoks\thproj \thproj={Proyección}
\newtoks\thclub \thclub={Realización}
\newtoks\thsynth \thsynth={Síntesis}
\newtoks\thwpage \thwpage={Web}
\newtoks\thexpe \thexpe={Expedición}
\newtoks\depthrangetitle \depthrangetitle={Depth range from }
\newtoks\thguide \thguide={Guia(s)}
\newtoks\thdatat \thdatat={Datos topograficas}
\newtoks\thdatabase \thdatabase={Dase de datos}
\newtoks\ththanksto \ththanksto{Nuestros agradecimientos }
\newtoks\thcoords \thcoords{Coordinadas GPS (WGS84) }
\newtoks\explolengthtitle \explolengthtitle{Longitud explorada}
\newtoks\explodepthtitle \explodepthtitle{\thinspace{}---\thinspace{}\thinspace{}\thinspace{}\thinspace{}Profondidad explorada}
\cartotitle={Dibujo}
# Initiate variables
\newtoks\club \club={}
\newtoks\synth \synth={}
\newtoks\wpage \wpage={}
\newtoks\expe \expe={}
\newtoks\guide \guide={}
\newtoks\datat \datat={}
\newtoks\database \database={}
\newtoks\thanksto \thanksto={}
\newtoks\ECoordinates \ECoordinates={}
endcode
code tex-atlas
#% Definition of variables for the tuned headers :
\newtoks\thversiontitleB \thversiontitleB={Therion }
\newtoks\thversiontitleA \thversiontitleA={Compilación}
\newtoks\datetitle \datetitle={el }
\newtoks\thproj \thproj={Proyección}
\newtoks\thclub \thclub={Realización}
\newtoks\thsynth \thsynth={Síntesis}
\newtoks\thwpage \thwpage={Web}
\newtoks\thexpe \thexpe={Expedición}
\newtoks\depthrangetitle \depthrangetitle={Depth range from }
\newtoks\thguide \thguide={Guia(s)}
\newtoks\thdatat \thdatat={Datos topograficas}
\newtoks\thdatabase \thdatabase={Dase de datos}
\newtoks\ththanksto \ththanksto{Nuestros agradecimientos }
\newtoks\thcoords \thcoords{Coordinadas GPS (WGS84) }
\newtoks\explolengthtitle \explolengthtitle{Longitud explorada}
\newtoks\explodepthtitle \explodepthtitle{\thinspace{}---\thinspace{}\thinspace{}\thinspace{}\thinspace{}Profondidad explorada}
\cartotitle={Dibujo}
# Initiate variables
\newtoks\club \club={}
\newtoks\synth \synth={}
\newtoks\wpage \wpage={}
\newtoks\expe \expe={}
\newtoks\guide \guide={}
\newtoks\datat \datat={}
\newtoks\database \database={}
\newtoks\thanksto \thanksto={}
\newtoks\ECoordinates \ECoordinates={}
endcode
endlayout
######################################################################################################################################
# Set the language english
######################################################################################################################################
layout langue-en
language en
code tex-map
#% Definition of variables for the tuned headers :
\newtoks\thversiontitleB \thversiontitleB={Therion }
\newtoks\thversiontitleA \thversiontitleA={Compiled}
\newtoks\datetitle \datetitle={on }
\newtoks\thproj \thproj={Projection}
\newtoks\thclub \thclub={Realisation}
\newtoks\thsynth \thsynth={Synthesys}
\newtoks\thwpage \thwpage={Web page}
\newtoks\thexpe \thexpe={Expedition}
\newtoks\depthrangetitle \depthrangetitle={Depth range from }
\newtoks\thguide \thguide={Guide(s)}
\newtoks\thdatat \thdatat={Survey's data}
\newtoks\thdatabase \thdatabase={Data base}
\newtoks\ththanksto \ththanksto{Acknowledgments}
\newtoks\thcoords \thcoords{GPS coordinates (WGS84) }
\newtoks\explolengthtitle \explolengthtitle{Explored length}
\newtoks\explodepthtitle \explodepthtitle{\thinspace{}---\thinspace{}\thinspace{}\thinspace{}\thinspace{}Explored depth}
# Initiate variables
\newtoks\club \club={}
\newtoks\synth \synth={}
\newtoks\wpage \wpage={}
\newtoks\expe \expe={}
\newtoks\guide \guide={}
\newtoks\datat \datat={}
\newtoks\database \database={}
\newtoks\thanksto \thanksto={}
\newtoks\ECoordinates \ECoordinates={}
endcode
code tex-atlas
#% Definition of variables for the tuned headers :
\newtoks\thversiontitleB \thversiontitleB={Therion }
\newtoks\thversiontitleA \thversiontitleA={Compiled}
\newtoks\datetitle \datetitle={on }
\newtoks\thproj \thproj={Projection}
\newtoks\thclub \thclub={Realisation}
\newtoks\thsynth \thsynth={Synthesys}
\newtoks\thwpage \thwpage={Web page}
\newtoks\thexpe \thexpe={Expedition}
\newtoks\depthrangetitle \depthrangetitle={Depth range from }
\newtoks\thguide \thguide={Guide(s)}
\newtoks\thdatat \thdatat={Survey's data}
\newtoks\thdatabase \thdatabase={Data base}
\newtoks\ththanksto \ththanksto{Acknowledgments}
\newtoks\thcoords \thcoords{GPS coordinates (WGS84) }
\newtoks\explolengthtitle \explolengthtitle{Explored length}
\newtoks\explodepthtitle \explodepthtitle{\thinspace{}---\thinspace{}\thinspace{}\thinspace{}\thinspace{}Explored depth}
# Initiate variables
\newtoks\club \club={}
\newtoks\synth \synth={}
\newtoks\wpage \wpage={}
\newtoks\expe \expe={}
\newtoks\guide \guide={}
\newtoks\datat \datat={}
\newtoks\database \database={}
\newtoks\thanksto \thanksto={}
\newtoks\ECoordinates \ECoordinates={}
endcode
endlayout
###<en> End of the layouts languages
###<fr> Fin des layouts languages
######################################################################################################################################
######################################################################################################################################
#<en> Main layout to draw the map and extended view.
#<fr> Layout principal pour dessiner les plans et les coupes développées.
######################################################################################################################################
layout drawingconfig
#<en> pdf-Author
#<fr> Auteur du pdf
doc-author "Xavier Robert"
#<en> Set the symology you want to use: UIS, ASF (Australie) CCNP (Etats Units), SKB (tchecoslovakia)
#<fr> Définit la banque de symboles que nous voulons utiliser :
# UIS, ASF (Australie) CCNP (Etats Units) ou SKB (tchecoslovakia)
# symbol-set UIS
#<en> Change the type or colors of specific symbols:
#<fr> Changer le type ou la couleur de symboles spécifiques:
symbol-assign area sand AUT
symbol-assign area clay AUT
symbol-assign area mudcrack SBE
symbol-assign area pebbles AUT
# symbol-assign line wall:blocks AUT
symbol-assign point camp UIS
symbol-assign point pillar AUT
symbol-assign point station:temporary SKBB
symbol-assign point entrance MY
symbol-color area clay [52 33 6] # Color to verify
symbol-color area flowstone [100 60 20]
symbol-color area ice [0 0 100]
symbol-color area moonmilk [100 60 20] # Change the color ?
symbol-color area mudcrack [52 33 6] # Color to verify ; Maybe to darken
symbol-color area pillar [100 60 20]
symbol-color area pillar-with-curtains [100 60 20]
symbol-color area sand [67 49 1] # Color to verify
symbol-color area snow [0 0 100]
symbol-color area stalactite [100 60 20]
symbol-color area stalactite-stalagmite [100 60 20]
symbol-color area stalagmite [100 60 20]
symbol-color line contour [34 21 3] # Marron : (87, 56, 8)
symbol-color line ceiling-meander [34 21 3] # Marron : (87, 56, 8)
symbol-color line flowstone [100 60 20]
symbol-color line floor-meander [34 21 3] # Marron : (87, 56, 8)
symbol-color line floor-step [34 21 3] # Marron : (87, 56, 8)
#symbol-color line map-connection [69 69 69] # Gris acier (175, 175, 175)
symbol-color line rimstone-dam [100 60 20]
symbol-color line rimstone-pool [100 60 20]
symbol-color line rock-border [34 21 3] # Marron : (87, 56, 8)
symbol-color line rock-edge [34 21 3] # Marron : (87, 56, 8)
symbol-color line slope [34 21 3] # Marron : (87, 56, 8)
symbol-color line rope [58 44 25]
symbol-color line survey [46 46 46] # Gris foncé (117, 117, 117) / acier (175, 175, 175)
symbol-color line wall:clay [52 33 6] # Color to verify
symbol-color line wall:flowstone [0 0 0]
symbol-color line wall:ice [0 0 100]
#symbol-color line wall:moonmilk [100 60 20] # Change the color ?
symbol-color line water-flow [17 46 100]
symbol-color line water-flow:conjectural [17 46 100]
symbol-color line water-flow:intermittent [17 46 100]
symbol-color point altitude [100 50 0]
symbol-color point aragonite [100 60 20]
symbol-color point blocks [34 21 3] # Marron : (87, 56, 8)
symbol-color point breakdown-choke [34 21 3] # Marron : (87, 56, 8)
symbol-color point cave-pearl [100 60 20]
symbol-color point clay [52 33 6] # Color to verify
symbol-color point clay-choke [52 33 6] # Color to verify
symbol-color point curtain [100 60 20]
symbol-color point curtains [100 60 20]
symbol-color point disc-pillar [100 60 20]
symbol-color point disc-pillars [100 60 20]
symbol-color point disc-stalactite [100 60 20]
symbol-color point disc-stalactites [100 60 20]
symbol-color point disc-stalagmite [100 60 20]
symbol-color point disc-stalagmites [100 60 20]
symbol-color point disk [100 60 20]
symbol-color point flowstone [100 60 20]
symbol-color point flowstone-choke [100 60 20]
symbol-color point helictite [100 60 20]
symbol-color point helictites [100 60 20]
symbol-color point ice [0 0 100]
symbol-color point ice-pillar [0 0 100]
symbol-color point ice-stalactite [0 0 100]
symbol-color point ice-stalagmite [0 0 100]
symbol-color point moonmilk [100 60 20] # Change the color ?
symbol-color point mud [52 33 6] # Color to verify
symbol-color point mudcrack [52 33 6] # Color to verify
symbol-color point pillar [100 60 20]
symbol-color point pillar-with-curtains [100 60 20]
symbol-color point pillars [100 60 20]
symbol-color point pillars-with-curtains [100 60 20]
symbol-color point popcorn [100 60 20]
symbol-color point rimstone-dam [100 60 20]
symbol-color point rimstone-pool [100 60 20]
symbol-color point root [52 33 6]
symbol-color point seed-germination [13 47 6]
symbol-color point snow [0 0 100]
symbol-color point soda-straw [100 60 20]
symbol-color point spring [17 46 100]
symbol-color point stalactite [100 60 20]
symbol-color point stalactite-stalagmite [100 60 20]
symbol-color point stalactite-stalagmite [100 60 20]
symbol-color point stalactites [100 60 20]
symbol-color point stalactites-stalagmites [100 60 20]
symbol-color point stalactites-stalagmites [100 60 20]
symbol-color point stalagmite [100 60 20]
symbol-color point stalagmites [100 60 20]
symbol-color point station [54 7 60]
symbol-color point station-name [80 80 80] # light grey
symbol-color point vegetable-debris [13 47 6]
symbol-color point volcano [52 33 6] # Color to verify
symbol-color point wall-altitude [100 50 0]
symbol-color point wall-calcite [100 60 20]
symbol-color point water [17 46 100]
symbol-color point water-drip [17 46 100]
symbol-color point water-flow [17 46 100]
symbol-color point water-flow:intermittent [17 46 100]
symbol-color point water-flow:paleo [17 46 100]
####### Metapost-changes ############
code metapost
#fonts_setup( 12, 16, 32, 64, 96 );
#<en> Modify length/depth statistics to print
#<fr> Modifier l'aspect et les données des statistiques de longueur affichées si besoin
#code tex-map
# \cavelength{1330\thinspace{}m}
# + 150\thinspace{}m estimes}
# \cavedepth{243\thinspace{}m}
#endcode
########################################################
#<en> Change the ligne wall:blocks (from l_wall_blocks_AUT)
#<fr> Changer le symbole ligne wall:blocks (d'après l_wall_debris_AUT)
########################################################
def l_wall_blocks (expr P) =
T:=identity;
pickup PenB;
laenge := arclength P;
path block;
path old_block;
cur := 0;
t:= arctime cur of P;
% ---------- premier bloc ----------
%old_block := ( (.7u,-.35u)--(.85u,0.01u)--(.4u,.5u)--(.1u,.3u)--(-.0u,-.0u) );
old_block :=( (.8u,-.35u)--(.85u,0.01u)--(.6u,.4u)--(.1u,.1u)--(-.0u,-.3u) );
block_width := (xpart urcorner old_block - xpart ulcorner old_block);
old_block := old_block rotated angle( thdir(P,0) ) shifted point t of P;
% couleur + alpha
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
thclean (old_block--cycle);
thfill (old_block--cycle)
withcolor (0.341117, 0.219607, 0.031372)
withalpha AlphaFactor1;
thdraw old_block;
cur := cur + block_width/2;
t:= arctime cur of P;
forever:
% ---------- bloc intermédiaire ----------
block := punked ( ( (.8u,-.35u)--(.85u,0.01u)--(.6u,.4u)--(.1u,.1u)--(-.0u,-.3u) )
randomized (0.3u) )
scaled (uniformdeviate(0.3)+.65)
rotated (uniformdeviate(45)-15);
% largeur du bloc
block_width := (xpart urcorner block - xpart ulcorner block);
exitif cur > (laenge- 3.5*block_width/2);
% trouver une position sans intersection avec old_block
forever:
exitif xpart ( ((block--cycle)
rotated angle(direction t of P)
shifted point t of P)
intersectiontimes old_block) < 0;
cur := cur + 0.01u;
t := arctime cur of P;
exitif cur > (laenge- 3.5*block_width/2);
endfor;
exitif cur > (laenge- 3.5*block_width/2);
old_block := block rotated angle(direction t of P) shifted point t of P;
% couleur + alpha pour chaque bloc
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
thclean (old_block--cycle);
thfill (old_block--cycle)
withcolor (0.341117, 0.219607, 0.031372)
withalpha AlphaFactor1;
thdraw old_block;
cur := cur + block_width/2;
t := arctime cur of P;
endfor;
% ---------- dernier bloc ----------
t := arctime laenge-eps of P;
block := ( (-.15u,-.35u)--(.0u,.0u)--(-.45u,.5u)--(-.75u,.3u)--(-.85u,-.0u) );
block_width := (xpart urcorner block - xpart ulcorner block);
% mise à l'échelle pour remplir le trou restant
scale_factor := (laenge-cur)/block_width;
forever:
exitif scale_factor < 0;
exitif xpart ( (block rotated angle(direction t of P)
scaled scale_factor
shifted point t of P)
intersectiontimes old_block) < 0;
scale_factor := scale_factor - 0.001;
endfor;
if scale_factor > 0:
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
% on construit le chemin final une fois, pour thclean + thfill + thdraw
path last_block;
last_block := block rotated angle(direction t of P)
scaled scale_factor
shifted point t of P;
thclean (last_block--cycle);
thfill (last_block--cycle)
withcolor (0.341117, 0.219607, 0.031372)
withalpha AlphaFactor1;
thdraw last_block;
fi;
enddef;
########################################################
#<en> Change the ligne wall:debris (from l_wall_debris_AUT)
#<fr> Changer le symbole ligne wall:debris (d'après l_wall_debris_AUT)
########################################################
def l_wall_debris (expr P) =
T := identity;
pickup PenC;
laenge := arclength P;
path block;
path old_block;
cur := 0;
t := arctime cur of P;
% === Première brique fixe ===
old_block := ((-.0u,-.0u)--(.25u,-.15u)--(.45u,0.01u)--(.2u,.25u)--(.05u,.15u)--cycle);
block_width := (xpart urcorner old_block - xpart ulcorner old_block);
old_block := old_block rotated angle(thdir(P,0)) shifted point t of P;
thclean old_block;
% --- Couleur aléatoire ---
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
fill old_block withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor1;
draw old_block withpen PenC; % contour noir
cur := cur + 0.9 * block_width;
t := arctime cur of P;
% === Boucle de blocs aléatoires ===
forever:
block := punked (((-.25u,-.25u)--(0.25u,-.25u)--(0.50u,0.01u)--(0.25u,.25u)--(-.25u,.25u)--cycle)
randomized (u/4))
scaled (uniformdeviate(0.3)+.4)
rotated uniformdeviate(360);
block_width := (xpart urcorner block - xpart ulcorner block);
exitif cur > (laenge - 2.5*block_width/2);
forever:
exitif xpart ( (block rotated angle(-direction t of P) shifted point t of P) intersectiontimes old_block) < 0;
cur := cur + 0.01u;
t := arctime cur of P;
exitif cur > (laenge - 2.5*block_width/2);
endfor;
exitif cur > (laenge - 2.5*block_width/2);
old_block := block rotated angle(-direction t of P) shifted point t of P;
thclean old_block;
% --- Couleur aléatoire ---
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
fill old_block withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor1;
draw old_block withpen PenC;
cur := cur + block_width/2;
t := arctime cur of P;
endfor;
% === Dernier bloc ajusté ===
t := arctime laenge - eps of P;
block := ((-.0u,-.0u)--(.25u,-.15u)--(.45u,0.01u)--(.2u,.25u)--(.1u,.15u)--cycle);
block_width := (xpart urcorner block - xpart ulcorner block);
scale_factor := 1.5*(laenge - cur)/block_width;
forever:
exitif scale_factor < 0;
exitif xpart ((block rotated angle(-direction t of P) scaled scale_factor shifted point t of P) intersectiontimes old_block) < 0;
scale_factor := scale_factor - 0.01;
endfor;
if scale_factor > 0:
path last_block;
last_block := block rotated angle(-direction t of P) scaled scale_factor shifted point t of P;
thclean last_block;
% --- Couleur aléatoire ---
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
fill last_block withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor1;
draw last_block withpen PenC;
fi;
enddef;
########################################################
#<en> the tree/trunk and bush symbole from Tarquin 2019
#<fr> Symbole d'arbre d'arès Tarkin 2019
########################################################
def l_u_treetrunk(expr P)=
T:=identity;
pickup PenC;
draw P withcolor (0.31, 0.15, 0);
enddef;
initsymbol("l_u_treetrunk");
def l_u_treetrunk_legend =
l_u_treetrunk(((.4,.9) .. controls (.5,.8) and (.44,.2) .. (.3,0)) inscale);
l_u_treetrunk(((.6,0) .. controls (.55,.2) and (.5,.7) .. (.7,.9)) inscale);
l_u_treetrunk(((.65,.95) .. controls (.6,.8) and (.5,.7) .. (.45,.95)) inscale);
enddef;
def l_u_bush (expr P)=
begingroup;
save pathlength, bulges, bulgesper, bulgesize, newpoint, newdirection, bulgedpath, steps, pathfactor, slopefactor, extradirection, curincrement, samplepoint, sinefactor;
T:=identity;
pathlength:=arclength P;
if known ATTR_bulges:
bulges:=max(ceiling(scantokens(ATTR_bulges)),1);
else:
bulges:=10;
fi;
if known ATTR_bulgesper:
if ATTR_bulgesper = "tenu":
bulges:=ceiling(bulges*(pathlength/10u));
fi;
fi;
if known ATTR_bulgesize:
bulgesize:=scantokens(ATTR_bulgesize) * u;
else:
bulgesize:=u;
fi;
pair newpoint;
pair newdirection;
path bulgedpath;
steps:=3; % number of samples per bulge
% precompute various numbers to avoid arithmetic overflows with large numbers of bulges
pathfactor:=pathlength/(steps*bulges);
slopefactor:=pathlength/(bulges*3.14159);
extradirection:=angle(slopefactor,-bulgesize*cosd(180));
curincrement:=0;
forever:
samplepoint:=arctime (curincrement*pathfactor) of P;
sinefactor:=180 * (curincrement mod steps) / steps;
newpoint:=((point samplepoint of P) shifted (bulgesize * sind(sinefactor) * unitvector(thdir(P,samplepoint) rotated -90)));
newdirection:=thdir(P,samplepoint) rotated angle(slopefactor,-bulgesize*cosd(sinefactor));
% enable for debugging
%thdraw (point samplepoint of P) withcolor (100,0,0) withpen PenC;
%thdraw newpoint--(newpoint shifted (bulgesize*unitvector(newdirection))) withcolor (0,0,100) withpen PenC;
if known bulgedpath:
if ((curincrement mod steps) = 0):
% this is a corner where one bulge ends and another starts, two points are needed so that the direction vectors can control curves
%thdraw newpoint--(newpoint shifted (bulgesize*unitvector(thdir(P,samplepoint) rotated extradirection))) withcolor (0,0,100) withpen PenC;
bulgedpath:=bulgedpath .. newpoint{thdir(P,samplepoint) rotated extradirection};
if curincrement <> steps * bulges:
% don't add one in the final increment, since --cycle then has two identical point vectors
bulgedpath:=bulgedpath -- newpoint{newdirection};
fi;
else:
bulgedpath:=bulgedpath .. newpoint{newdirection};
fi;
else:
% first point in the path
bulgedpath:=newpoint{newdirection};
fi;
exitif curincrement = steps * bulges;
curincrement:=curincrement + 1;
endfor;
if cycle P:
bulgedpath:=bulgedpath -- cycle;
fi;
thdraw bulgedpath withcolor green withpen PenC;
endgroup;
enddef;
initsymbol("l_u_bush");
def l_u_bush_legend =
begingroup;
save ATTR_bulgesize;
string ATTR_bulgesize;
ATTR_bulgesize:=".2";
l_u_bush(((.6,.1)..controls (.8,.3) and (.9,.7)..(.5,.9)..controls (.1,.7) and (.2,.3)..(.4,.1)) inscale);
endgroup;
enddef;
########################################################
#<en> Change the entrance symbole
#<fr> Changer le symbole d'entrée
########################################################
def p_entrance_MY (expr pos,theta,sc,al)=
U:=(0.0u,0.0u);
T:=identity aligned al rotated 0.0 scaled sc shifted pos;
path p;
p = (-.3u,-.25u) -- (-.2u,-.25u){dir 135} .. (0u, .25u) .. {dir 225}(.2u,-.25u) -- (.3u,-.25u);
thdraw p withpen PenA;
thdraw unitsquare scaled 1.2u shifted (-0.6u,-0.6u) rotated 0.0 withpen PenD;
enddef;
initsymbol("p_entrance_MY");
########################################################
#<en> Define Shot_Survey (u:Shot_Survey) in thin red
#<fr> Définition de la ligne file d'Shot_Survey en rouge fin
########################################################
def l_u_Shot_Survey (expr Path) =
T:=identity;
pickup PenA;
draw Path withcolor black;
enddef;
########################################################
#<en> Change the point block symbole
#<fr> Changer le symbole de point block
########################################################
def p_blocks (expr pos,theta,sc,al)=
base_symbolsize :=0.30u; %Factor*u; Factor=size of the blocks
size_factor := 0.5 + uniformdeviate 0.5; % Pour le polygone principal
symbolsize := base_symbolsize * size_factor;
U :=(.5u,.5u);
random_theta := uniformdeviate 360;
AlphaFactor1 := 0.5 + uniformdeviate 0.4;
AlphaFactor2 := 0.5 + uniformdeviate 0.4;
AlphaFactor3 := 0.5 + uniformdeviate 0.4;
T:=identity aligned al rotated random_theta scaled sc shifted pos;
pickup PenC;
thfill (.0symbolsize,.0symbolsize)--(1.0symbolsize,-.5symbolsize)--(0.0symbolsize,-1.5symbolsize)--(-1.0symbolsize,-1.0symbolsize)--cycle withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor1;
thdraw (.0symbolsize,.0symbolsize)--(1.0symbolsize,-.5symbolsize)--(0.0symbolsize,-1.5symbolsize)--(-1.0symbolsize,-1.0symbolsize)--cycle withcolor (0.341117, 0.219607, 0.031372);
thfill (.5symbolsize,-.25symbolsize)--(1.0symbolsize,.5symbolsize)--(0.0symbolsize,1.5symbolsize)--(-0.5symbolsize,.5symbolsize)--cycle withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor2;
thdraw (.5symbolsize,-.25symbolsize)--(1.0symbolsize,.5symbolsize)--(0.0symbolsize,1.5symbolsize)--(-0.5symbolsize,.5symbolsize)--cycle withcolor (0.341117, 0.219607, 0.031372);
thfill (.0symbolsize,.0symbolsize)--(.0symbolsize,.5symbolsize)--(-1.5symbolsize,.5symbolsize)--(-1.5symbolsize,-0.5symbolsize)--(-0.5symbolsize,-0.5symbolsize)--cycle withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor3;
thdraw (.0symbolsize,.0symbolsize)--(.0symbolsize,.5symbolsize)--(-1.5symbolsize,.5symbolsize)--(-1.5symbolsize,-0.5symbolsize)--(-0.5symbolsize,-0.5symbolsize)--cycle withcolor (0.341117, 0.219607, 0.031372);
enddef;
########################################################
#<en> Change the point pebble symbole
#<fr> Changer le symbole de point galets
########################################################
def p_pebbles (expr pos,theta,sc,al)=
U:=(.45u,.35u);
random_theta := uniformdeviate 360;
Alpha_Factor1 := 0.4 + uniformdeviate 0.5;
Alpha_Factor2 := 0.4 + uniformdeviate 0.5;
Alpha_Factor3 := 0.4 + uniformdeviate 0.5;
Alpha_Factor4 := 0.4 + uniformdeviate 0.5;
T:=identity aligned al rotated random_theta scaled sc shifted pos;
pickup PenC;
p:=superellipse((.25u,0),(0,.15u),(-.25u,0),(0,.-.15u),.75);
thdraw p rotated -20 shifted (- .2,.2u);
thfill p rotated -20 shifted (-.2,.2u) withcolor (0.341117, 0.219607, 0.031372) withalpha Alpha_Factor1;
thdraw p rotated -37 shifted (.2u,-.2u);
thfill p rotated -37 shifted (.2u,-.2u) withcolor (0.341117, 0.219607, 0.031372) withalpha Alpha_Factor2;
thdraw p rotated -62 shifted (-.2u,-.2u);
thfill p rotated -62 shifted (-.2u,-.2u) withcolor (0.341117, 0.219607, 0.031372) withalpha Alpha_Factor3;
thdraw p rotated -15 shifted (.2u,.2u);
thfill p rotated -15 shifted (.2u,.2u) withcolor (0.341117, 0.219607, 0.031372) withalpha Alpha_Factor4;
enddef;
########################################################
#<en> Change the rock bordersymbole
#<fr> Changer le symbole des ligne rock border
########################################################
def l_rockborder (expr p) =
pickup PenC;
AlphaFactor := 0.3 + uniformdeviate 0.4;
fill p --cycle withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor;
draw p --cycle withcolor (0.341117, 0.219607, 0.031372);
enddef;
########################################################
#<en> u:block definition
#<fr>définition du bloc u:block
########################################################
def p_u_block(expr pos,theta,sc,al) =
T:=identity aligned al rotated theta scaled sc shifted pos;
path p q;
p := (2.3u,0.9u)--(0.65u,1u)--(-0.9u,0.6u)--(-2.15u,-0.1u)--(-2.35u,-0.25u)--(-2.5u,-0.5u)--(-2u,-0.65u)--(-0.75u,-0.65u)--(0.6u,-0.7u)--(1.1u,-0.5u)--(2.1u,-0.15u)--cycle;
pickup PenB;
thdraw p;
% The following line uses the code from Colour Dependant Visualization of Symbols by Bruce Mutton
if known colour_block_bg: thfill p withcolor colour_block_bg; else: thfill p withcolor (0.75,0.75,0.75); fi;
q := (-2.5u,-0.5u)--(-2u,-0.65u)--(-0.75u,-0.65u)--(0.6u,-0.7u)--(1.1u,-0.5u)--(2.1u,-0.15u)--(2.3u,0.9u)--(2.5u,0.7u)--(2.5u,0.5u)--(2.25u,-0.9u)--(1.1u,-1.3u)--(0.5u,-1.5u)--(-0.75u,-1.4u)--(-2u,-1.15u)--(-2.35u,-0.65u)--cycle;
thdraw q;
thfill q withcolor(0.6,0.6,0.6);
pickup PenD;
path p; p := (-2u,-0.65u)--(-1.9u,-1u); thdraw p;
path p; p := (0.6u,-0.7u)--(0.5u,-1.3u); thdraw p;
path p; p := (2.1u,-0.15u)--(2.3u,-0.4u); thdraw p;
enddef;
initsymbol("p_u_block");
########################################################
#<en> Change the dashed line for the line map_connection
#<fr> Changer la ligne pointillée du symbole map_connection
########################################################
#def l_mapconnection (expr P) =
#T:=identity;
#pickup PenB;
# Old definition
#thdraw P dashed evenly scaled (2*optical_zoom);
# New definition
#thdraw P dashed evenly scaled (.1u);
#enddef;
########################################################
#<en> Change the dashed line for the line wall:presumed
#<fr> Changer la ligne pointillée du symbole line wall:presumed
########################################################
def l_wall_presumed (expr P) =
T:=identity;
pickup PenA;
# Old definition
#thdraw P dashed evenly scaled (2*optical_zoom);
# New definition
thdraw P dashed evenly scaled (.1u);
enddef;
########################################################
#<en> Change the dashed line for the line chimney
#<fr> Changer la ligne pointillée du symbole line chemney (cheminée)
########################################################
def l_chimney (expr P) =
T:=identity;
pickup PenC;
%thdraw P dashed evenly scaled optical_zoom;
thdraw P dashed evenly scaled (.05u);
enddef;
########################################################
#<en> To change blocs size in the area blocks
#<fr> Pour modifier la taille des blocs dans l'aire blocks
########################################################
def a_blocks (expr p) =
T:=identity;
pickup PenC;
path q, qq; q = bbox p;
picture tmp_pic;
uu := max(u, (xpart urcorner q - xpart llcorner q)/100, (ypart urcorner q - ypart llcorner q)/100);
tmp_pic := image(
for i = xpart llcorner q step 1.0uu until xpart urcorner q:
for j = ypart llcorner q step 1.0uu until ypart urcorner q:
qq := punked (((-.3uu,-.3uu)--(.3uu,-.3uu)--(.3uu,.3uu)--(-.3uu,.3uu)--cycle)
randomized (uu/2))
rotated uniformdeviate(360)
shifted ((i,j) randomized 1.0uu);
if xpart (p intersectiontimes qq) < 0:
thclean qq;
AlphaFactor := 0.5 + uniformdeviate 0.4;
thdraw qq --cycle withcolor (0.341117, 0.219607, 0.031372);
thfill qq --cycle withcolor (0.341117, 0.219607, 0.031372) withalpha AlphaFactor;
fi;
endfor;
endfor;
);
clip tmp_pic to p;
draw tmp_pic;
enddef;
########################################################
#<en> To change sand AUT aspects
#<fr> Pour modifier les aspects du sable AUT dans l'aire associée
########################################################
# def a_sand_AUT (expr p) =
# T:=identity;
# pickup PenC;
# path q; q = bbox p;
# picture tmp_pic;
# tmp_pic := image(
# for i = xpart llcorner q step 0.01u until xpart urcorner q:
# for j = ypart llcorner q step 0.01u until ypart urcorner q:
# draw origin shifted ((i,j) randomized 0.01u) withpen PenC;
# endfor;
# endfor;
# );
# %# clip tmp_pic to p;
# draw tmp_pic;
# enddef;
beginpattern(pattern_sand_AUT);
pickup PenC;
p:= origin -- (0.01u,0.01u);
for i=0.0u step 0.2u until 2.4u:
for j=0.0u step 0.2u until 2.4u:
draw p rotated uniformdeviate(360)
shifted ((i,j) randomized 0.09u);
endfor;
endfor;
if BaseScale<=2.5:
my_step:=2.4u;
else:
my_step:=2.6u;
fi;
patternstep(my_step,my_step);
endpattern;
def a_sand_AUT (expr Path) =
T:=identity;
% Fond beige clair (20 % « sable »)
thfill Path withcolor (0.95,0.9,0.75) withalpha 0.2;
thfill Path withpattern pattern_sand_AUT ;
enddef;
########################################################
#<en> To change mudcrack SBE aspects
#<fr> Pour modifier les aspects de l' mudcrack SBE dans l'aire associée
########################################################
def a_mudcrack_SBE (expr Path) =
T:=identity;
% Fond beige clair (20 % « sable »)
thfill Path withcolor (0.49, 0.20, 0.00) withalpha 0.2;
thfill Path withpattern pattern_mudcrack_SBE ;
enddef;
########################################################
#<en> To change clay AUT aspects
#<fr> Pour modifier les aspects de l' argile AUT dans l'aire associée
########################################################
beginpattern(pattern_clay_AUT);
pickup PenC;
p := origin -- (0.15u,0.15u);
% Boucles avec densité réduite de 30%
for i=0.0u step 0.40u until 2.4u:
for j=0.0u step 0.40u until 2.4u:
draw p rotated -45
shifted ((i,j) randomized 0.4u);
endfor;
endfor;
if BaseScale<=2.5:
my_step := 2.4u;
else:
my_step := 2.6u;
fi;
patternstep(my_step,my_step);
endpattern;
def a_clay_AUT (expr Path) =
T:=identity;
% Fond beige clair (20 % « sable »)
thfill Path withcolor (0.49, 0.20, 0.00) withalpha 0.2;
thfill Path withpattern pattern_clay_AUT ;
enddef;
########################################################
#<en> To change pebbles aspects
#<fr> Pour modifier l'aspects de l'aire pebbles (galets)
########################################################
def a_pebbles_SKBB (expr p) =
T:=identity;
pickup PenC;
path q, qq; q = bbox p;
picture tmp_pic;
tmp_pic := image(
for i = xpart llcorner q step .1u until xpart urcorner q:
for j = ypart llcorner q step .5u until ypart urcorner q:
qq := (superellipse((.07u,0),(0,.03u), (-.07u,0),(0,.-.03u),.75))
%randomized (u/25)
rotated uniformdeviate(360)
shifted ((i,j) randomized 0.27u);
if xpart (p intersectiontimes qq) < 0:
thdraw qq;
fi;
endfor;
endfor;
);
clip tmp_pic to p;
draw tmp_pic;
enddef;
########################################################
#<en> To change slopes aspects
#<fr> Pour modifier la ligne aspects
########################################################
def l_slope (expr P,S)(text Q) =
%show Q;
T:=identity;
numeric dirs[];
numeric lengths[];
for i=Q:
dirs[redpart i]:=greenpart i;
lengths[redpart i]:=bluepart i;
endfor;
li:=length(P); % last
alw_perpendicular:=true;
for i=0 upto li:
if unknown dirs[i]: dirs[i]:=-1;
else:
if dirs[i]>-1:
dirs[i]:=((90-dirs[i]) - angle(thdir(P,i))) mod 360;
alw_perpendicular:=false;
fi;
fi;
if unknown lengths[i]: lengths[i]:=-1; fi;
endfor;
%for i=0 upto li: show dirs[i]; endfor;
ni:=0; % next
pi:=0; % previous
for i=0 upto li:
d:=dirs[i];
if d=-1:
if (i=0) or (i=li):
dirs[i] := angle(thdir(P,i) rotated 90) mod 360;
pi:=i;
else:
if ni<=i:
for j=i upto li:
ni:=j;
exitif dirs[j]>-1;
endfor;
fi;
w:=arclength(subpath(pi,i) of P) /
arclength(subpath(pi,ni) of P);
dirs[i]:=w[dirs[pi],dirs[ni]];
%if (dirs[i]-angle(thdir(P,i))) mod 360>180:
%dirs[i]:=w[dirs[ni],dirs[pi]];
%message("*******");
%fi;
fi;
else:
pi:=i;
fi;
endfor;
%for i=0 upto li: show dirs[i]; endfor;
ni:=0; % next
pi:=0; % previous
for i=0 upto li:
l:=lengths[i];
if l=-1:
if (i=0) or (i=li):
lengths[i] := 1cm; % should never happen!
thwarning("slope width at the end point not specified");
pi:=i;
else:
if ni<=i:
for j=i+1 upto li:
ni:=j;
exitif lengths[j]>-1;
endfor;
fi;
w:=arclength(subpath(pi,i) of P) /
arclength(subpath(pi,ni) of P);
lengths[i]:=w[lengths[pi],lengths[ni]];
pi:=i;
fi;
else:
pi:=i;
fi;
endfor;
%for i=0 upto li: show lengths[i]; endfor;
T:=identity;
boolean par;
cas := 0.3u;
krok := 0.7u;
dlzka := (arclength P);
if dlzka>3u: dlzka:=dlzka-0.6u fi;
mojkrok:=adjust_step(dlzka,1.4u) / 5;
pickup PenD;
par := false;
forever:
t := arctime cas of P;
if t mod 1>0: % not a key point
w := (arclength(subpath(floor t,t) of P) /
arclength(subpath(floor t,ceiling t) of P));
if alw_perpendicular:
a := 90;
else:
a := w[dirs[floor t],dirs[ceiling t]];
fi;
l := w[lengths[floor t],lengths[ceiling t]];
else:
if alw_perpendicular:
a := 90;
else:
a:= dirs[t];
fi;
l:=lengths[t];
fi;
a := a + angle(thdir(P,t));
thdraw (point t of P) -- ((point t of P) + if par: 0.333 * fi l * unitvector(dir(a)));
cas := cas + mojkrok;
par := not par;
exitif cas > dlzka + .3u + (krok / 3); % for rounding errors
endfor;
if S = 1: pickup PenC; draw P fi;
%pickup pencircle scaled 3pt;
%for i=0 upto li: draw point i of P; endfor;
enddef;
########################################################
#<en> To change color of Mud area
#<fr> Pour modifier la couleur de l'aire Boue
########################################################
def a_u_boue (expr p) =
T:=identity;
#thfill p withcolor (0.22, 0.22, 0.95);
#126, 51, 0
thfill p withcolor (0.49, 0.20, 0.00);
enddef;
########################################################
#<en> To change color of Sump
#<fr> Pour modifier la couleur de l'aire siphon
########################################################
def a_sump (expr p) =
T:=identity;
#thfill p withcolor (0.22, 0.22, 0.95);
thfill p withcolor (0.06, 0.20, 0.65);
enddef;
########################################################
#<en> To change color of guano
#<fr> Pour modifier la couleur de l'aire guano
########################################################
def a_u_guano (expr p) =
T:=identity;
thfill p withcolor (0.53, 0.26, 0.11);
enddef;
########################################################
#<en> To change color of a tree-trunk
# I advise to use a line "border" to delimit the area
# If used with tree-leaves, add the option -place top
#<fr> Pour modifier la couleur de l'aire tronc
# Je suggère d'utiliser une ligne "border/bord" pour délimiter l'aire
# Si utilisé conjointement avec l'aire feuilles d'arbres, utiliser l'option -place top
########################################################
def a_u_tronc (expr p) =
T:=identity;
thfill p withcolor (0.62, 0.24, 0.05);
enddef;
########################################################
#<en> To change color of a tree-leaves
#<fr> Pour modifier la couleur de l'aire feuilles d'arbre/feuillage
########################################################
def a_u_feuilles (expr p) =
T:=identity;
thfill p withcolor (0.0, 1.0, 0.0);
enddef;
########################################################
#<en> To change color of Water area
#<fr> Pour modifier la couleur de l'aire eau
########################################################
def a_water (expr p) =
T:=identity;
#thfill p withcolor (0.60, 0.8, 1);
thfill p withcolor (0.17, 0.46, 1);
enddef;
########################################################
#<en> Northarrow more funnier !
#<fr> Pour définir une nouvelle flèche du nord
########################################################
# def s_northarrow (expr rot) =
# begingroup
# interim defaultscale:=0.7; % scale your north arrow here
# #interim defaultscale:=0.5; % scale your north arrow here; 0.5 is the best value for atlas
# T:=identity scaled defaultscale rotated -rot;
# interim linecap:=squared;
# interim linejoin:=rounded;
# thfill (-.5cm,-.1cm)--(0,2.5cm)--(.5cm,-.1cm)--cycle;
# pickup pencircle scaled (0.08cm * defaultscale);
# thdraw (0,0)--(0,-2.5cm);
# pickup pencircle scaled (0.16cm * defaultscale);
# p:=(0.4cm,0.6cm);
# thdraw ((p--(p yscaled -1)--(p xscaled -1)--(p scaled -1)) shifted (0,-1.0cm));
# label.rt(thTEX("mg") scaled 1.6, (.6cm,-1.6cm)) transformed T;
# endgroup;
# enddef;
def s_northarrow (expr rot) =
begingroup
interim defaultscale:=0.8; % scale your north arrow here
T:=identity scaled defaultscale rotated -rot;
%noRotT:=identity scaled defaultscale 0;
pickup pencircle scaled (0.08cm * defaultscale);
% Cercle du nord
p:=fullcircle scaled 1.6cm;
thclean p;
thdraw p withcolor black;
p:=(0.95cm,0)--(0.65cm,0);
thdraw p withcolor black; thdraw p xscaled -1 withcolor black;
% Flèche
thdraw (-.6cm,-1.4cm)--(0,2.8cm)--(0cm, -1cm)--cycle withcolor black;
thfill (-.6cm,-1.4cm)--(0,2.8cm)--(0cm, -1cm)--cycle withcolor black withalpha 0.8;
thdraw (.6cm,-1.4cm)--(0,2.8cm)--(0cm, -1cm)--cycle withcolor black;
% N du Nord
%pickup pencircle scaled (0.12cm * defaultscale);
%p:=(0.28cm,0.42cm);
%thdraw p--(p yscaled -1)--(p xscaled -1)--(p scaled -1) transformed T withcolor red;
label.rt(thTEX("N") scaled 1.6, (-0.2cm,0cm)) withcolor red; % transformed T;
endgroup;
enddef;
########################################################
# #<en> Change Scale bar type
# #<fr> Pour modifier la barre d'échelle
########################################################
# def s_scalebar (expr l, units, txt) =
# begingroup
# interim warningcheck:=0;
# tmpl:=l / Scale * cm * units / 2;
# tmpx:=l / Scale * cm * units / 5;
# tmph:=5bp; % bar height
# endgroup;
# pickup PenC;
# draw (-tmpl,0)--(tmpl,0)--(tmpl,-tmph)--(-tmpl,-tmph)--cycle;
# p:=(0,0)--(tmpx,0)--(tmpx,-tmph)--(0,-tmph)--cycle;
# for i:=-2.5 step 2 until 2:
# fill p shifted (i * tmpx,0);
# endfor;
# begingroup
# interim labeloffset:=3.5bp;
# for i:=0 step (l/5) until (l-1):
# tmpx:=tmpl * (i * 2 / l - 1);
# label.bot(thTEX(decimal (i)),(tmpx,-tmph));
# endfor;
# label.bot(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,-tmph));
# %<en> To write the scale "1:scale" uncomment it the next line:
# %<fr> Pour écrire l'échelle "1:scale" au dessus de la barre décommenter la ligne suivante :
# %label.top(thTEX("Echelle 1 : " & decimal (Scale*100)),(0,0));
# endgroup;
# enddef;
########################################################
# #<en> Write the point depth (not functionning...)
# #<fr> Définir un point qui écrit la côte/profondeur (Ne fonctionne pas actuellement...)
########################################################
# def p_u_prof (expr pos) =
# T:=identity shifted pos;
# pickup PenD;
# p:=(-.3u,0)--(.3u,0);
# thdraw p; thdraw p rotated 90;
# p:=fullcircle scaled .2u;
# thclean p; thdraw p;
# enddef;
# vardef p_label@#(expr txt,pos,rot,mode) =
# if mode=1:
# thdrawoptions(withcolor .8red + .4blue);
# p_u_prof(pos);
# % append "m" to label
# picture txtm;
# % calcul profondeur
# %numeric profondeur;
# profondeur:=(\thaltitude-\cavemaxz);
# picture txtprofondeur;
# txtm:=image(
# draw txt;
# interim labeloffset:=0;
# label.urt(btex \thaltitude m etex, lrcorner txt);
# %label.urt(btex \thdepth m etex, lrcorner txt);
# );
# % give extra offset in case of l/r/t/b alignment
# pair ctmp;
# ctmp:=center thelabel@#("x", (0,0));
# if (xpart ctmp * ypart ctmp)=0:
# interim labeloffset:=(.4u);
# else: % diagonal alignment
# interim labeloffset:=(.2u);
# fi;
# % draw label
# lab:=thelabel@#(txtm, pos);
# draw lab _thop_; % use color
# thdrawoptions();
# bboxmargin:=0.8bp;
# write_circ_bbox((bbox lab) smoothed 2);
# else:
# if mode=7: interim labeloffset:=(u/8) fi;
# lab:=thelabel@#(txt, pos);
# if mode>1: pickup PenD fi;
# if 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;
# fi;
# enddef;
########################################################
#<en> Change the altitude definition
# This label requires to specify the position of text relative to point with
# help of -align in the options box.
#<fr> Changer la définition du point altitude
# Ce label nécessite la position spécifique de l'étiquette de texte de façon relative
# au point avec l'aide de l'option -align.
#ex: -align bottom-right/top-left/top-right/bottom-left/top/bottom/left/right...
########################################################
def p_altitude (expr pos) =
T:=identity shifted pos;
pickup PenD;
p:=(-.3u,0)--(.3u,0);
thdraw p; thdraw p rotated 90;
p:=fullcircle scaled .2u;
thclean p; thdraw p;
enddef;
vardef p_label@#(expr txt,pos,rot,mode) =
if mode=1:
thdrawoptions(withcolor .8red + .4blue);
p_altitude(pos);
% append "m" to label
picture txtm;
txtm:=image(
draw txt;
interim labeloffset:=0;
label.urt(btex \thaltitude { m} etex, lrcorner txt);
#label.urt(btex \thheight m etex, lrcorner txt);
);
% give extra offset in case of l/r/t/b alignment
pair ctmp;
ctmp:=center thelabel@#("x", (0,0));
if (xpart ctmp * ypart ctmp)=0:
interim labeloffset:=(.4u);
else: % diagonal alignment
interim labeloffset:=(.2u);
fi;
% draw label
lab:=thelabel@#(txtm, pos);
draw lab _thop_; % use color
thdrawoptions();
bboxmargin:=0.8bp;
write_circ_bbox((bbox lab) smoothed 2);
else:
if mode=7: interim labeloffset:=(u/8) fi;
lab:=thelabel@#(txt, pos);
if mode>1: pickup PenD fi;
if 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;
fi;
enddef;
########################################################
#<en> For point height with P or C prefixe
# use “point 0 0 height -value [+10 m]”
# or “point 0 0 height -value [-85 m]”
# in your data to get E10 or P85
#<fr> Pour obtenir un point de hauteur de passage avec P ou C comme préfixe
# utiliser “point 0 0 height -value [+10 m]”
# ou “point 0 0 height -value [-85 m]”
# dans les données vous donner E10 ou P85 respectivement
########################################################
verbatimtex \def\thheightpos{E}\def\thheightneg{P} etex
########################################################
#<en> Change the altitude definition for the wall-line label (add units)
# To modify the color, you need to modify the triplets after the 3 withcolor command.
# BE CAREFUL ! Sometimes, it generates mpost errors when using point wall:altitude.
# If you get this kind of error, comment the whole p_wallaltitude definition.
#<fr> Changer la définition de l'altitude pour le label de la ligne mur (ajout de l'unité)
# Pour modifier la couleur, modifier le triplet (RGB) après les 3 commandes withcolor.
# ATTENTION ! Parfois, cette redéfinition génère des erreurs métapost.
# Si c'est le cas, commenter toute la redéfinition du point p_wallaltitude.
########################################################
#def p_wallaltitude (expr pprev,pos,pnext,txt) =
# rot:=angle(unitvector(pnext-pos)+unitvector(pos-pprev)) - 90;
# pickup PenD;
# pair zz;
# %zz:=(pos + 3*unitvector(dir rot));
# zz:=(pos + (u/4)*unitvector(dir rot));
# %draw (pos)--zz withcolor (0.78, 0.08, 0.52); % tic in black
# draw (pos)--zz withcolor (0.78, 0.08, 0.52); % tic in color
# % add the unit (here, meters as m)
# txtm:=image(
# %draw txt; % altitude in black
# draw txt withcolor (0.78, 0.08, 0.52); % altitude in color
# %interim labeloffset:=0;
# %label.urt(btex \thaltitude { m} etex, lrcorner txt); % unit in black
# label.urt(btex \thaltitude { m} etex, lrcorner txt) withcolor (0.78, 0.08, 0.52); % unit in color
# );
# begingroup
# % interim labeloffset:=2pt;
# interim labeloffset:=(u/12);
# if horiz_labels:
# rot:=rot mod 360;
# if rot<=22.5: lab:=thelabel.rt(txtm, zz);
# elseif rot<=67.5: lab:=thelabel.urt(txtm, zz);
# elseif rot<=112.5: lab:=thelabel.top(txtm, zz);
# elseif rot<=157.5: lab:=thelabel.ulft(txtm, zz);
# elseif rot<=202.5: lab:=thelabel.lft(txtm, zz);
# elseif rot<=247.5: lab:=thelabel.llft(txtm, zz);
# elseif rot<=292.5: lab:=thelabel.bot(txtm, zz);
# elseif rot<=337.5: lab:=thelabel.lrt(txtm, zz);
# else: lab:=thelabel.rt(txtm, zz);
# fi;
# else:
# if (abs rot>90) and (abs rot <=270):
# rot:=rot-180;
# lab:=thelabel.lft(txtm, pos);
# else:
# lab:=thelabel.rt(txtm, pos);
# fi;
# fi;
# process_label(pos, if horiz_labels: 0 else: rot fi);
# endgroup;
#enddef;
########################################################
#<en> Definition of new lines symbols
#<fr> Définition de nouveau symboles de lignes
#<en> Line symbol for strata for cross sections (u:strata). It works exactly as line section
# symbol but you should use -clip off option:
#<fr> Symbole de ligne pour dessiner des strates (u:strata).
# Cela fonctionne exactement comme les autres sections de ligne
# mais vous devrez rajouter l'option -clip off:
########################################################
def l_u_strata (expr P) =
T:=identity;
path Q; Q = punked P;
for t = 0 upto length P - 1:
pair zz[];
zz1 := point t of P;
zz2 := point t+1 of P;
zz3 := postcontrol t of P;
zz4 := precontrol t+1 of P;
linecap:=0;
if (length(zz3-1/3[zz1,zz2]) > 0.1pt) or (length(zz4-2/3[zz1,zz2]) > 0.1pt):
zz5 = whatever[zz1,zz2];
(zz3-zz5) = whatever * (zz1-zz2) rotated 90;
pickup pencircle scaled 1 mm;
draw zz1--zz5 dashed evenly;
pickup PenA;
draw zz1--zz5 withcolor background;
zz6 = whatever[zz1,zz2];
(zz4-zz6) = whatever * (zz1-zz2) rotated 90;
pickup pencircle scaled 1 mm;
draw zz2--zz6 dashed evenly;
pickup PenA;
draw zz2--zz6 withcolor background;
else:
pickup pencircle scaled 1 mm;
draw zz1--zz2 dashed evenly;
pickup PenA;
draw zz1--zz2 withcolor background;
fi;
endfor;
enddef;
########################################################
#<en> Line symbol for Coupoles (u:coupole). It works exactly as line section
#<fr> Symbole de ligne pour dessiner des coupoles de plafond.
# Fonctionne comme les autres lignes
########################################################
def l_u_coupole (expr P) =
T:=identity;
cas := 0; % cursor to step along path
dlzka := arclength P;
mojkrok:=adjust_step(dlzka, 0.25u); % symbol length nudged to be multiple of path length
q:= (0.10u,0.16u) -- (0.13u,0.17u); % dot
pickup PenC; %2nd thinnest pen
forever:
t := arctime cas of P;
thdraw q rotated angle(thdir(P,t)) shifted (point t of P ); % draw dots
cas := cas + mojkrok;
exitif cas > dlzka + (mojkrok / 3); % for rounding errors
endfor;
pickup PenC; %2nd thickest pen
thdraw P; %continuous line
enddef;
########################################################
#<en> Line symbol for fault.
# It works exactly as line section symbol but you should use -clip off option:
#<fr> Symbole de ligne pour dessiner des failles (u:fault).
# Cela fonctionne exactement comme les autres sections de ligne
# mais vous devrez rajouter l'option -clip off:
########################################################
def l_u_fault (expr P) =
T:=identity;
path Q; Q = punked P;
pickup PenA;
for t = 0 upto length P - 1:
pair zz[];
zz1 := point t of P;
zz2 := point t+1 of P;
zz3 := postcontrol t of P;
zz4 := precontrol t+1 of P;
if (length(zz3-1/3[zz1,zz2]) > 0.1pt) or (length(zz4-2/3[zz1,zz2]) > 0.1pt):
zz5 = whatever[zz1,zz2];
(zz3-zz5) = whatever * (zz1-zz2) rotated 90;
draw zz1--zz5 dashed evenly;
zz6 = whatever[zz1,zz2];
(zz4-zz6) = whatever * (zz1-zz2) rotated 90;
draw zz2--zz6 dashed evenly;
else:
draw zz1--zz2 dashed evenly;
fi;
endfor;
enddef;
########################################################
#<en> Line symbol for the surface.
# It works exactly as line section symbol but you should use -clip off option:
#<fr> Symbole de ligne pour dessiner la surface (u:surf).
# Cela fonctionne exactement comme les autres sections de ligne
# mais vous devrez rajouter l'option -clip off:
########################################################
def l_u_surf (expr P) =
T:=identity;
path Q; Q = punked P;
pickup PenC;
draw Q dashed evenly withcolor (0.5, 0, 0);
enddef;
########################################################
#<en> To add a doline line (u:doline); Do not forget the option -clip off !
#<fr> Symbole de ligne pour dessiner une ligne doline (u:doline).
# Cela fonctionne exactement comme les autres sections de ligne
# mais vous devrez rajouter l'option -clip off:
########################################################
def l_u_doline (expr P) =
T:=identity;
laenge:= arclength P;
symsize:=adjust_step(laenge,2u);
triangle_width:=symsize/10;
cur:=(symsize-triangle_width)/2;
pickup PenC;
forever:
t1 := arctime (cur) of P;
t := arctime (cur + triangle_width/2) of P;
t2 := arctime (cur + triangle_width) of P;
thfill (subpath (t1,t2) of P) --
((point t of P) + symsize/2 * unitvector(thdir(P,t) rotated 90)) --
cycle;
thdraw (point t2 of P) --((point t of P) + symsize/2 * unitvector(thdir(P,t) rotated 90)) --
(point t1 of P) withcolor (0.5, 0, 0);
cur := cur + symsize;
exitif cur > laenge - (1*symsize/3); % for rounding errors
t1:=arctime (cur) of P;
endfor;
enddef;
########################################################
#<en> Modify length/depth statistics to print
#<fr> Modifier l'aspect et les données des statistiques de longueur affichées si besoin
#code tex-map
# \cavelength{1330\thinspace{}m}
# + 150\thinspace{}m estimes}
# \cavedepth{243\thinspace{}m}
#<en> Defines the gradient as geologic dip
#<fr> Définit le gradient comme pendage géologique
########################################################
def p_gradient_XA (expr P,R,S,A) =
U:=(.15u, .4u);
T:=identity aligned A rotated R scaled S shifted P;
pickup PenC;
thdraw (0u, 0u) -- (0u, .4u);
thdraw (-.4u, 0u) -- (.4u, 0u);
enddef;
initsymbol ("p_gradient_XA");
symbol-assign point gradient XA
########################################################
#<en> Section to define the bat symbol (point, line, area)
#<fr> Section pour définir le symbole Chauve souris utilisé en point, ligne ou aire
########################################################
path bat_path_x;
bat_path_x := (160.43589,619.76148)
.. controls (200.83034,598.56215) and (225.01974,599.82632) .. (242.33709,601.15842)
.. controls (250.91988,585.02142) and (280.12279,545.7622) .. (328.92385,566.52372)
.. controls (343.18917,529.89929) and (387.77695,513.04018) .. (453.54702,518.36185)
.. controls (456.6654,525.97557) and (466.09064,533.43257) .. (471.27843,523.05007)
.. controls (463.85291,520.67657) and (466.71891,517.42483) .. (471.63814,522.23522)
.. controls (472.87859,519.83044) and (472.11254,517.25674) .. (467.00984,516.24193)
.. controls (498.08181,494.38071) and (518.37927,488.7935) .. (554.08261,484.34703)
.. controls (536.23968,468.87122) and (526.7451,451.32142) .. (536.0878,433.78585)
.. controls (539.04313,428.23891) and (549.65293,437.81051) .. (550.08905,431.99134)
.. controls (543.35122,428.68782) and (547.16851,429.31755) .. (550.93619,430.90592)
.. controls (555.01514,419.20795) and (542.29889,420.82043) .. (539.21019,422.32967)
.. controls (526.80565,412.03922) and (538.14174,362.22955) .. (562.04206,325.41289)
.. controls (560.70416,305.4475) and (552.94665,275.48765) .. (596.42383,240.15823)
.. controls (586.13796,214.86512) and (584.21841,176.344) .. (618.88684,158.99293)
.. controls (600.38363,161.42082) and (571.90452,163.00167) .. (555.87287,173.29962)
.. controls (533.80922,180.31406) and (511.7587,189.77279) .. (494.76462,217.75852)
.. controls (469.02274,260.15007) and (465.60841,280.08537) .. (466.27659,287.73284)
.. controls (467.27295,299.13663) and (456.20597,295.4343) .. (455.42733,284.84646)
.. controls (447.034,297.47822) and (465.71846,292.96944) .. (457.40227,311.17742)
.. controls (451.51715,333.88534) and (454.55183,344.68208) .. (455.22274,365.27634)
.. controls (445.59186,380.66207) and (438.52169,394.98144) .. (432.56329,406.97544)
.. controls (421.27321,411.75599) and (411.86904,413.85884) .. (403.92838,423.33244)
.. controls (391.19793,418.79449) and (380.875,414.46152) .. (373.6673,409.41976)
.. controls (365.11095,413.84661) and (372.76761,437.1554) .. (372.88328,437.30963)
-- (360.72573,447.88215)
.. controls (360.72573,447.88215) and (348.36583,439.38367) .. (342.32921,440.26049)
.. controls (340.52016,451.25937) and (343.58923,463.9528) .. (354.67087,475.2679)
.. controls (341.63825,482.57642) and (339.10347,494.24676) .. (313.80723,490.57484)
.. controls (304.61922,489.24114) and (282.31298,490.61764) .. (258.32359,496.84657)
.. controls (246.18809,499.99759) and (248.48311,482.8706) .. (236.36849,493.22467)
.. controls (239.32461,491.85429) and (242.55704,492.01948) .. (245.59044,495.64662)
.. controls (248.83726,499.52895) and (249.4495,502.08244) .. (244.59097,503.87878)
.. controls (221.93401,514.80409) and (190.83965,541.85436) .. (178.69512,574.11392)
.. controls (176.80431,577.00681) and (162.4873,600.33708) .. cycle;
path bat_path_bb;
bat_path_bb = bbox bat_path_x;
path bat_path;
bat_path = bat_path_x shifted (-(llcorner bat_path_bb) - (urcorner bat_path_bb - llcorner bat_path_bb) / 2.0) scaled (1u / ((xpart urcorner bat_path_bb) - (xpart llcorner bat_path_bb))) rotated 210;
########################################################
#<en> Section of your layout define point u:bats symbol like this
#<fr> Pour définir le point chauve souris : u:bats
########################################################
def p_u_bats(expr pos, theta, sc, al) =
T := identity shifted pos;
thfill (bat_path scaled 1.5) withcolor black;
enddef;
########################################################
#<en> similarly the line u:bat symbol
#<fr> Idem pour la ligne
########################################################
def l_u_bats(expr P) =
T:=identity;
cas := 0;
dlzka := arclength P;
mojkrok:=adjust_step(dlzka, 1.0u);
pickup PenD;
forever:
t := arctime cas of P;
thfill bat_path scaled 0.5 shifted (point t of P) withcolor black;
cas := cas + mojkrok;
exitif cas > dlzka + (mojkrok / 3); % for rounding errors
endfor;
enddef;
########################################################
#<en> and finally the area u:bat symbol (pattern in this case)
#<fr> Et pour l'aire
########################################################
% bat pattern
beginpattern(pattern_bat);
fill bat_path withcolor black;
endpattern;
% bat area symbol
def a_u_bats (expr Path) =
T:=identity;
thclean Path;
thfill Path withpattern pattern_bat;
enddef;
########################################################
#<en> These symbols will be included also in the legend. To
# change the way how they are drawn there just define appropriate
# macro. Its name should be symbol macro name with <code>_legend</code>
# suffix.
#<fr> Ces symbols seront inclus dans la légende. Pour modifier la façon dont ils
# sont dessinés, juste, définissez la macro appropriée.
# Son nom doit être le nom de la macro symbol approprié avec le suffixe
# <code>_legend</code>.
########################################################
def l_u_bats_legend =
l_u_bats(((.2,.2) -- (.8,.8)) inscale)
enddef;
########################################################
#<en> Definition of a stalagmite boss symbol
#<fr> Définition du point stalagmite boss
########################################################
def p_u_boss (expr pos,theta,sc,al)=
T:=identity aligned al rotated theta scaled sc shifted pos;
pickup PenD;
p := (0.08u,0.25u)..(0,0.29u)..(-0.08u,0.25u);
q := (0.16u,0.5u)..(0u,0.58u)..(-0.16u,0.5u);
for i=0 upto 9:
# braun color
thdraw p rotated 36i withcolor (100, 0.6, 0.2);
thdraw q rotated 36i withcolor (100, 0.6, 0.2);
% black color
%thdraw p rotated 36i;
%thdraw q rotated 36i;
endfor
p := fullcircle scaled 0.15u;
thdraw p withcolor (100, 0.6, 0.2);
% black color
%thdraw p withcolor;
enddef;
########################################################
#<en> Definition of a shell limestone symbol
#<fr> Définition du point coquille fossile
########################################################
def p_u_shell (expr pos,theta,sc,al)=
T:=identity shifted pos;
pickup PenB;
numeric turns, radius;
path ss, cesta;
pair za, zb;
turns = 1.55;
radius = .3u;
za = ( xpart(origin)+0, ypart(origin)+.1u ) rotated 370 turns;
zb = ( xpart(origin)+.3u, ypart(origin)+0 ) rotated 360 turns;
cesta := za--zb;
ss := (origin for t=1 upto 360 turns: -- dir t scaled t endfor) scaled (radius/turns/360);
thdraw ss withcolor (0.3);
thdraw (cesta cutbefore ss) withcolor (0.6);
enddef;
initsymbol ("p_u_shell");
########################################################
#<en> Define Danger symbol
#<fr> Définition du point Danger
########################################################
def p_u_danger (expr P,R,S,A)=
T:=identity aligned A rotated R scaled S shifted P;
thfill (0,-u)--(u,0)--(0,u)--(0,.9u)--(.9u,0)--(0,-.9u)--cycle;
thfill (0,-u)--(-u,0)--(0,u)--(0,.9u)--(-.9u,0)--(0,-.9u)--cycle;
thfill (.1u,-.45u)..(0,-.35u)..(-.1u,-.45u)..(0,-.55u)..cycle;
thfill (0,-.2u)..(.1u,-.1u)--(.2u,.4u)..(0,.6u)..(-.2u,.4u)--(-.1u,-.1u)..cycle;
enddef;
#initsymbol("p_entrance_MY");
#let p_entrance = p_entrance_MY;
########################################################
#<en> Define dive line (u:ariane) in thin red
#<fr> Définition de la ligne file d'Ariane en rouge fin
########################################################
def l_u_ariane (expr Path) =
T:=identity;
pickup PenD;
draw Path withcolor (100, 0, 0);
enddef;
########################################################
#<en> Definition of plankwalk
#<fr> Définition d'une ligne de main courante
########################################################
def l_u_plankwalk (expr P) = T:=identity;
# by Dave Clucas
cas := 0;
dlzka := arclength P;
mojrok := adjust_step(dlzka, 0.5u);
pickup PenD;
forever:
t := arctime cas of P;
thdraw ((point t of P) + 0.5 * u * unitvector(thdir(P,t) rotated 90)) --
((point t of P) - 0.5 * u * unitvector(thdir(P,t) rotated 90) );
cas := cas + mojrok;
exitif cas > dlzka + (mojrok/3); % for rounding errors
endfor;
pickup PenC;
%thdraw P;
%draw path withcolor (0.5, 0 ,0)
enddef;
########################################################
#<en> Definition of a line rail
#<fr> Définition d'une ligne rail
########################################################
def l_u_rail (expr P) =
# by Andrew Aktinson
T:=identity;
cas := 0;
dlzka := arclength P;
mojkrok:=adjust_step(dlzka, 0.8u);
pickup PenC;
forever:
t0 := arctime (cas) of P;
t1 := arctime (cas + mojkrok*2/5) of P;
t := arctime (cas + mojkrok/2) of P;
t4 := arctime (cas + mojkrok*3/5) of P;
t5 := arctime (cas + mojkrok) of P;
thdraw (subpath (t0,t1) of P);
thdraw (subpath (t4,t5) of P);
drawdot (point t of P);
#mark_ (P,t,0.02u);
#mark_ (P,t,-0.02u);
#f := (P,t,0.2u);
#draw f;
cas := cas + mojkrok;
exitif cas > dlzka - (2*mojkrok/3); % for rounding errors
endfor;
enddef;
########################################################
#<en> Change fig Flowstone, increase the number of arcs
#<fr> Modifier le symbole flowstone en augmentant le nombr d'arc
########################################################
def l_flowstone (expr p) =
#draw p withpen PenC withcolor (0.0, 0.5, 1.0);
T:=identity;
cas := 0;
dlzka := arclength p;
mojkrok:=adjust_step(dlzka, .3u);
# povodne .7u
pickup PenC;
t1:=0;
forever:
t2 := arctime (cas + mojkrok) of p;
thdraw (point t1 of p){dir (angle(thdir(p,t1)) + 60)} ..
{dir (angle(thdir(p,t2)) - 60)}(point t2 of p);
cas := cas + mojkrok;
exitif cas > dlzka + (mojkrok / 3); % for rounding errors
t1:=t2;
endfor;
enddef;
########################################################
#<en> Point that represent a bird nest
#<fr> Point pour représenter un nid d'oiseau
########################################################
def p_u_nid (expr pos,theta,sc,al)=
U:=(.4u,.2u);
T:=identity aligned al rotated theta scaled sc shifted pos;
pickup PenC;
#thdraw (-.4u,.2u){dir -70}..{dir 70}(.4u,.2u) withcolor (0.53, 0.26, 0.11);
thdraw (-.2u,.1u){dir -70}..{dir 70}(.2u,.1u) withcolor (0.53, 0.26, 0.11);
enddef;
########################################################
#<en> Artificial anchor point (From a post by Evaristo Quiroga)
#<fr> Point ancrage artificiel (From a post by Evaristo Quiroga)
########################################################
def p_u_anchor_artificial(expr pos,theta,sc,al) =
T:=identity shifted pos;
thdraw origin withpen pencircle scaled 0.25u withcolor (0.58, 0.44, 0.25);
enddef;
initsymbol ("p_u_anchor_artificial");
########################################################
#<en> Natural anchor point (From a post by Evaristo Quiroga)
#<fr> Point ancrage naturel (From a post by Evaristo Quiroga)
########################################################
def p_u_anchor_natural(expr pos,theta,sc,al) =
U:=(.2u,.2u);
T:=identity aligned al rotated theta scaled sc shifted pos;
thfill (-.2u,-.2u)--(0,.2u)--(.2u,-.2u)--cycle withcolor (0.58, 0.44, 0.25);
enddef;
initsymbol ("p_u_anchor_natural");
########################################################
#<en> Deviation line (by Tarquin 2019)
#<fr> Ligne pour dessiner une déviation (D'après Tarquin 2019)
########################################################
def l_u_deviation (expr P) =
begingroup;
save ellipse;
T:=identity;
pickup PenC;
path ellipse;
ellipse:=fullcircle xscaled (.5u) yscaled (.25u) shifted (point (length P) of P);
thdraw P cutafter ellipse;
draw ellipse;
endgroup;
enddef;
initsymbol("l_u_deviation");
def l_u_deviation_legend =
l_u_deviation(((.1,.5)--(.8,.5)) inscale);
enddef;
########################################################
#<en> Climbing caver point (by Juraj Halama, 2020)
# Climbing one has center where the rope should go on the harness...
#<fr> Point pour dessiner un spéléo qui grimpe ou escalade (D'après Juraj Halama, 2020)
# Le point correspond au centre du spéléo au niveau du harnais, qui doit donc être sur la corde
########################################################
picture u_man_c_pic;
u_man_c_pic := image (
draw (0cm, -0cm) -- (-8cm, 27cm) -- (-36cm, 55cm) -- (-50cm, 99cm) withpen pencircle scaled 16cm;
draw (27cm, 48cm) -- (0, 64cm) -- (-29cm, 61cm) -- (-38cm, 102cm) withpen pencircle scaled 16cm;
draw (-65cm, 48cm) -- (-75cm, 75cm) -- (-53cm, 106cm) -- (0, 106cm) withpen pencircle scaled 14cm;
draw (-44cm, 130cm) withpen pencircle scaled 27cm withcolor black;
) shifted (20cm, -67cm);
def p_u_man_c (expr P, R, S, A) =
U := (60cm, 85cm) scaled (0.01 / Scale);
T:=identity aligned A rotated R scaled S shifted P;
thdraw u_man_c_pic scaled (0.01 / Scale);
enddef;
initsymbol ("p_u_man_c");
########################################################
#<en> The scale on the map and in the legend is matching just for 1:500...
#<fr> L'échelle sur la carte et sur la légende correspond au 1:500...
########################################################
def p_u_man_c_legend =
draw u_man_c_pic scaled (u / 175cm) shifted ((.5, .5) inscale);
enddef;
########################################################
#<en> Walking caver point (by Juraj Halama, 2020)
# Use "-align top" for proper alignment of the walking man when his point is on the groung.
#<fr> Point pour dessiner un spéléo marchant (D'après Juraj Halama, 2020)
# Utiliser l'option "-align top" pour un alignement correct quand le point est au sol
########################################################
picture u_man_w_pic;
u_man_w_pic := image (
draw (0, 0) -- (7.5cm, 36cm) -- (0cm, 69cm) -- (9cm, 99cm) withpen pencircle scaled 16cm;
draw (42cm, 9cm) -- (37.5cm, 42cm) -- (13.5cm, 69cm) -- (30cm, 102cm) withpen pencircle scaled 16cm;
draw (21.5cm, 100.5cm) -- (6.6cm, 69cm) withpen pencircle scaled 16cm;
draw (-24cm, 75cm) -- (-13.5cm, 102cm) -- (9cm, 112.5cm) -- (30cm, 108cm) -- (51cm, 87cm) -- (75cm, 93cm) withpen pencircle scaled 14cm;
draw (30cm, 132cm) withpen pencircle scaled 27cm withcolor black;
) shifted (-20cm, -70cm);
def p_u_man_w (expr P, R, S, A) =
U := (60cm, 80cm) scaled (0.01 / Scale);
T:=identity aligned A rotated R scaled S shifted P;
thdraw u_man_w_pic scaled (0.01 / Scale);
enddef;
initsymbol ("p_u_man_w");
########################################################
#<en> The scale on the map and in the legend is matching just for 1:500...
#<fr> L'échelle sur la carte et sur la légende correspond au 1:500...
########################################################
def p_u_man_w_legend =
draw u_man_w_pic scaled (u / 175cm) shifted ((.5, .5) inscale);
enddef;
########################################################
#<en> Plan view symbol point (by Juraj Halama, 2020)
#<fr> Point dessinant un symbole de "vue en plan" (D'après Juraj Halama, 2020)
########################################################
def p_u_symbol_plan (expr pos,theta,sc,al) =
U := (-3.25u, 3.25u);
T := identity aligned al rotated theta scaled sc shifted pos;
pickup PenB;
q := ((-3.26u, -.95u) -- (1.74u, -.95u) -- (2.8u, .82u) -- (-1.49u, .82u) -- cycle);
thfill q withcolor .85;
thdraw q;
q := ((-.175u, .5u) -- (0u, 0u) -- (.175u, .5u) .. (0u, .45u) .. cycle);
thfill q withcolor .5green;
thdraw q withcolor .5green;
thdraw (0u, 0u) -- (0u, 2.31u) withcolor .5green;
enddef;
########################################################
#<en> Extended view symbol point (by Juraj Halama, 2020)
#<fr> Point dessinant un symbole de "vue en coupe développée" (D'après Juraj Halama, 2020)
########################################################
def p_u_symbol_extend (expr pos,theta,sc,al) =
U := (-2.5u, 2.5u);
T := identity aligned al rotated theta scaled sc shifted pos;
pickup PenB;
q := ((-2.346u, -2.480u) -- (-.48u, -2.116u) -- (-.48u, 1.573u) -- (-2.346u, 1.354u) -- cycle);
thfill q withcolor .85;
q := ((-1.551u, -2.878u) -- (1.438u, -.766u) -- (1.438u, 2.388u) -- (-1.551u, 1.118u) -- cycle);
thfill q withcolor .75;
thdraw q;
thdraw (-.48u, -2.116u) -- (-.48u, 1.573u) dashed evenly;
q := ((.446u, -1.461u) -- (2.120u, -1.094u) -- (2.120u, 2.184u) -- (.446u, 1.965u) -- cycle);
thfill q withcolor .85;
thdraw (.446u, -1.461u) -- (.446u, 1.965u) dashed evenly;
q := ((-.175u, .5u) -- (0u, 0u) -- (.175u, .5u) .. (0u, .45u) .. cycle) rotated -90;
thfill q withcolor .5green;
thdraw q withcolor .5green;
thdraw (0u, 0u) -- (2.31u, 0u) withcolor .5green;
enddef;
########################################################
#<en> Change rope line color
#<fr> Changer la couleur de la ligne rope (corde)
########################################################
#symbol-colour line rope [58 44 25]
########################################################
#<en> Area for galerie initiation
# You will probably need to adapt the color to match the color of your galeries
#<fr> Aire pour matérialiser le départ d'une galerie
# A adapter en fonction de la couleur de vos galeries
########################################################
def a_u_galerie(expr P) =
T:=identity;
## jaune chamois (208, 192, 122)
##thfill P withcolor (0.82,0.75,0.48) withtransparency 0.5;
thfill P withcolor (0.82,0.75,0.48) withalpha 0.5;
## Grey
##thfill P withcolor (0.73,0.72,0.75) withtransparency 0.5;
#thfill P withcolor (0.73,0.72,0.75) withalpha 0.5;
## Jaune queue de vache (168, 152, 116)
##thfill P withcolor (0.66,0.60,0.45) withtransparency 0.5;
#thfill P withcolor (0.66,0.60,0.45) withalpha 0.5;
## gris argile (239, 239, 239)
##thfill P withcolor (0.937,0.937,0.937) withtransparency 0.5;
#thfill P withcolor (0.937,0;937,0.937) withalpha 0.5;
enddef;
########################################################
#<en> Make unsurveyed wall lines more light-weight and dashed
#<fr> Rendre les parois non topographiées plus légères et en pointillés
#Bruce Mutton 2010.06.20 for Therion 5.3.9
########################################################
def l_wall_unsurveyed (expr P) =
T:=identity;
pickup PenA;
thdraw P dashed evenly scaled (0.35*optical_zoom);
enddef;
########################################################
#<en> thin grey cave splays, yellow duplicates and dashed approximate legs
#<fr> Pour modifier la couleur du squelette en fonction du type de visées
# (splays, normal, duplicates, approximate...)
########################################################
def l_survey_cave (expr P) =
% always draws full centreline, rather than short stubs like default cave centrelines
T:=identity;
pickup PenC;
if ATTR__shotflag_splay:
drawoptions(withcolor(0.5,0.5,0.5) withpen PenD);
thdraw P; % grey & thin
drawoptions();
else: % not splay but may have either or both duplicate and approx flags set
if ATTR__shotflag_duplicate:
drawoptions(withcolor (1,1,0)); % differentiate duplicate with colour yellow
fi;
if ATTR__shotflag_approx:
thdraw P dashed evenly scaled optical_zoom; % differentiate approx with dashed
else:
thdraw P;
fi;
thdrawoptions();
fi;
enddef;
endcode
code tex-map
\newtoks\thversiontitleB \thversiontitleB={Therion }
endcode
endlayout
######################################################################################################################################
#<en> Layout to define a horizontal Scale bar
#<fr> Layout pour définir une barre d'échelle horizontale
######################################################################################################################################
layout scalebar_horiz
code metapost
#<en> Change Scale bar type
#<fr> Pour modifier la barre d'échelle
# def s_scalebar (expr l, units, txt) =
# begingroup
# interim warningcheck:=0;
# tmpl:=l / Scale * cm * units / 2;
# tmpx:=l / Scale * cm * units / 5;
# tmph:=5bp; % bar height
# endgroup;
# pickup PenC;
# draw (-tmpl,0)--(tmpl,0)--(tmpl,-tmph)--(-tmpl,-tmph)--cycle;
# p:=(0,0)--(tmpx,0)--(tmpx,-tmph)--(0,-tmph)--cycle;
# for i:=-2.5 step 2 until 2:
# fill p shifted (i * tmpx,0);
# endfor;
# begingroup
# interim labeloffset:=3.5bp;
# for i:=0 step (l/5) until (l-1):
# tmpx:=tmpl * (i * 2 / l - 1);
# label.bot(thTEX(decimal (i)),(tmpx,-tmph));
# endfor;
# label.bot(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,-tmph));
# %<en> To write the scale "1:scale" uncomment it the next line:
# %<fr> Pour écrire l'échelle "1:scale" au dessus de la barre décommenter la ligne suivante :
# %label.top(thTEX("Echelle 1 : " & decimal (Scale*100)),(0,0));
# endgroup;
# enddef;
def s_scalebar (expr l, units, txt) =
% l = value of scale-bar length
% units = ??
% txt = string representing units
begingroup
interim warningcheck:=0;
tmpl:=l / Scale * cm * units / 2;
% tmpl = half plotted length of scale bar from central top insertion point
tmpx:=l / Scale * cm * units / 5;
tmph:=5bp; % bar height
endgroup;
pickup PenC;
draw (-tmpl,0)--(tmpl,0)--(tmpl,-tmph)--(-tmpl,-tmph)--cycle;
p:=(0,0)--(tmpx,0)--(tmpx,-tmph)--(0,-tmph)--cycle;
for i:=-0.5 step 2 until 2: % start drawing at the third block (leave space for smaller divisions)
fill p shifted (i * tmpx,0);
endfor;
% Draw first part with subdivided blocks
p:=(0,0)--(tmpx/5,0)--(tmpx/5,-tmph)--(0,-tmph)--cycle; % define width of segment (tmpx is length of a normal bar segment)
for i:=-2.5 step 2/5 until -0.75: % Startpos, segments, count-index
fill p shifted (i * tmpx,0) withcolor black;
endfor;
% Label of scale: Scalebar top, values below
begingroup
interim labeloffset:=3.5bp;
for i:=0 step (l/5) until (l-1):
tmpx:=tmpl * (i * 2 / l - 1);
label.bot(thTEX(decimal (i)),(tmpx,-tmph));
endfor;
label.bot(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,-tmph));
# label.top(thTEX("Echelle 1 : " & decimal round(Scale*100)),(0,0));
endgroup;
enddef;
endcode
endlayout
######################################################################################################################################
#<en> Layout to define a vertical Scale bar (see Therion Wiki - Juraj Halama)
# distributed under the GNU General Public Licence
# You need to place it with in your thconfig file:
# code tex-map
# \def\maplayout{
# \legendbox{102.5}{100.4}{NW}
# {\scalebar}}
# endcode
#<fr> Layout pour définir une barre d'échelle verticale (voir le wiki Therion - Jural Halama)
# distribué sous la licence GNU General Public Licence
# Il faut l'appeler dans le fichier de configuration thconfig avec le bloc:
# code tex-map
# \def\maplayout{
# \legendbox{102.5}{100.4}{NW}
# {\scalebar}}
# endcode
######################################################################################################################################
layout scalebar_vert-Halama
code metapost
def s_scalebar (expr l, units, txt) =
begingroup
tmpw = 3.0 bp;
tmp5m = 5 / Scale * units * cm;
tmpl = l / Scale * units * cm;
endgroup;
p := (0, 0) -- (tmpw, 0) -- (tmpw, - tmp5m) -- (0, - tmp5m) -- cycle;
pickup PenD;
for i := 0 step 1 until (l - 1) / 5:
if (i mod 2) <> 0:
unfill p shifted - (0, i * tmp5m);
else:
fill p shifted - (0, i * tmp5m);
fi;
draw p shifted - (0, i * tmp5m);
endfor;
pickup PenA
%draw (-tmpw, 0) -- (tmpw, 0);
%draw (-tmpw, -tmpl) -- (0, -tmpl);
fill (-2tmpw, tmpw) -- (-2tmpw, -tmpw) -- (0, 0) -- cycle;
fill (-2tmpw, -tmpl + tmpw) -- (-2tmpw, -tmpl + -tmpw) -- (0, -tmpl) -- cycle;
if ((l mod 10) > 5) or ((l mod 10) = 0):
draw (0, - tmpl) -- (tmpw, - tmpl) withcolor black;
else:
draw (0, - tmpl) -- (tmpw, - tmpl) withcolor white;
fi;
begingroup
interim labeloffset:=3.5bp + tmpw;
%interim defaultscale:=0.5;
label.rt(thTEX("\size[12]" & "0{\thinspace}m"),(0, 0));
for i := 1 step 1 until l / 5:
if (i mod 10) = 0:
label.rt(thTEX("\size[12]" & "-\thinspace" & decimal (i * 5)),(0, - i * tmp5m));
else:
if i * 5 = l:
label.rt(thTEX("\size[12]" & "-\thinspace" & decimal (i * 5)),(0, - i * tmp5m));
else:
label.rt(thTEX("\size[8]" & "-\thinspace" & decimal (i * 5)),(0, - i * tmp5m));
fi
fi;
endfor;
if (l mod 5) <> 0:
label.rt(thTEX("\size[12]" & "-\thinspace" & decimal (l)),(0, - tmpl));
fi;
endgroup
enddef;
endcode
endlayout
######################################################################################################################################
#<en> Layout to define a vertical Scale bar
#<fr> Layout pour définir une barre d'échelle verticale
######################################################################################################################################
layout scalebar_vert
code metapost
#<en> Change Scale bar type
#<fr> Pour modifier la barre d'échelle
def s_scalebar (expr l, units, txt) =
begingroup
interim warningcheck:=0;
tmpl:=l / Scale * cm * units / 2;
tmpx:=l / Scale * cm * units / 5;
tmph:=5bp; % bar height
% To compute the right size of the text
if (l/1000) <1 :
if (l/100) <1 :
if (l/10) <1 : tmphz:=6bp;
else: tmphz:=8bp; fi;
else: tmphz:=10bp; fi;
else tmphz:=12bp; fi;
endgroup;
pickup PenC;
draw (0,-tmpl)--(0,tmpl)--(-tmph,tmpl)--(-tmph,-tmpl)--cycle;
p:=(0,0)--(0,tmpx)--(-tmph,tmpx)--(-tmph,0)--cycle;
for i:=-2.5 step 2 until 2:
fill p shifted (0,i * tmpx);
endfor;
begingroup
interim labeloffset:=0bp;
for i:=0 step (l/5) until (l-1):
tmpx:=tmpl * (i * 2 / l - 1);
label.bot(thTEX(decimal (l-i)),(tmph+tmphz,tmpx));
%label.bot(thTEX(decimal (i)),(tmpx,-tmph)) rotated 90;
% Inverser l'ordre des nombres
endfor;
label.bot(thTEX(decimal (l-l) & "\thinspace" & txt),(tmph+tmphz,tmpl));
%label.bot(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,-tmph)) rotated 90;
endgroup;
enddef;
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (plan projection)
# This code is experimental redefinition of map header and based on the work of
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en plan
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
######################################################################################################################################
layout headerl
copy scalebar_horiz
#<en> This one affects maps only
#<fr> Ceci ne touche que les maps (plans)
code tex-map
\def\loadpicture #1{\pdfximage{#1}\pdfrefximage\pdflastximage}
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
# %print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
# %print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
# %print scalebar
\ifscalebar\scalebar\vskip1cm\fi
%print entrances coordinates (Lat-Long/WGS84) if defined
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords \the\ECoordinates\par}
\vskip0.5cm
\fi
# % start bruces addition
# % CS
\edef\tmp{\the\outcsname} \ifx\tmp\empty \else
%{\the\legendtextsize\si\the\thproj: \ss\the\outcsname\par}
%\fi
%\edef\tmp{\the\northdir} \ifx\tmp\empty \else
%{\the\legendtextsize\ss\the\northdir north }
%\fi
%\edef\tmp{\the\magdecl} \ifx\tmp\empty \else
%{\the\legendtextsize\ss\the\magdecl { deg.} \par}
%\fi
\vskip0.5cm
# % end bruces addition
#%print comment
{
#\rightskip=0pt plus 3em\parskip=3bp
#\edef\tmp{\the\comment} \ifx\tmp\empty \else
# {\the\legendtextsize\the\comment} \par\medskip
#\fi
# %print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
\fi
# % start bruces addition
## % altitude
#\edef\tmp{\the\cavemaxz} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\depthrangetitle \ss\the\cavemaxz m to}
#\fi
#\edef\tmp{\the\caveminz} \ifx\tmp\empty \else
# {\the\legendtextsize\ss\the\caveminz m \par} %above mean sea level
#\fi
# % end bruces addition
# %print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
# %print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
# %%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
# %print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
# %print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
# %%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
# %%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
# %%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# %%print the survey's database web page
\edef\tmp{\the\database} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatabase: \ss\the\database\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
# % end bruces addition
# %print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
# %print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\vskip0.3cm
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
\formattedlegend
\color[0 0 0]
}
# % Add Logos
#\legendbox{50}{60}{NW}{\loadpicture{Logos/Logo_FFS_small.jpg}}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (plan projection)
# This code is experimental redefinition of map header and based on the work of
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en plan
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
# header without surveyors names
######################################################################################################################################
layout headerl_LT
copy scalebar_horiz
#<en> This one affects maps only
#<fr> Ceci ne touche que les maps (plans)
code tex-map
\def\loadpicture #1{\pdfximage{#1}\pdfrefximage\pdflastximage}
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
# %print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
# %print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
# %print scalebar
\ifscalebar\scalebar\vskip1cm\fi
%print entrances coordinates (Lat-Long/WGS84) if defined
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords \the\ECoordinates\par}
\vskip0.5cm
\fi
# % start bruces addition
# % CS
\edef\tmp{\the\outcsname} \ifx\tmp\empty \else
%{\the\legendtextsize\si\the\thproj: \ss\the\outcsname\par}
%\fi
%\edef\tmp{\the\northdir} \ifx\tmp\empty \else
%{\the\legendtextsize\ss\the\northdir north }
%\fi
%\edef\tmp{\the\magdecl} \ifx\tmp\empty \else
%{\the\legendtextsize\ss\the\magdecl { deg.} \par}
%\fi
\vskip0.5cm
# % end bruces addition
#%print comment
{
#\rightskip=0pt plus 3em\parskip=3bp
#\edef\tmp{\the\comment} \ifx\tmp\empty \else
# {\the\legendtextsize\the\comment} \par\medskip
#\fi
# %print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
\fi
# % start bruces addition
## % altitude
#\edef\tmp{\the\cavemaxz} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\depthrangetitle \ss\the\cavemaxz m to}
#\fi
#\edef\tmp{\the\caveminz} \ifx\tmp\empty \else
# {\the\legendtextsize\ss\the\caveminz m \par} %above mean sea level
#\fi
# % end bruces addition
# %print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
# %print surveyors names
# \edef\tmp{\the\topoteam} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
# \fi
# %%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
# %print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
# %print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
# %%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
# %%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
# %%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# %%print the survey's database web page
\edef\tmp{\the\database} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatabase: \ss\the\database\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
# % end bruces addition
# %print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
# %print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\vskip0.3cm
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
\formattedlegend
\color[0 0 0]
}
# % Add Logos
#\legendbox{50}{60}{NW}{\loadpicture{Logos/Logo_FFS_small.jpg}}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (plan projection with minimun info)
#<fr> Layout pour modifier le cartouche (header) de la projection en plan avec le minimun info
######################################################################################################################################
layout headerl_XXLT
copy scalebar_horiz
#<en> This one affects maps only
#<fr> Ceci ne touche que les maps (plans)
code tex-map
\def\loadpicture #1{\pdfximage{#1}\pdfrefximage\pdflastximage}
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
# %print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
# %print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
# %print scalebar
\ifscalebar\scalebar\vskip1cm\fi
%print entrances coordinates (Lat-Long/WGS84) if defined
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords \the\ECoordinates\par}
\vskip0.5cm
\fi
# % start bruces addition
# % CS
\edef\tmp{\the\outcsname} \ifx\tmp\empty \else
%{\the\legendtextsize\si\the\thproj: \ss\the\outcsname\par}
%\fi
%\edef\tmp{\the\northdir} \ifx\tmp\empty \else
%{\the\legendtextsize\ss\the\northdir north }
%\fi
%\edef\tmp{\the\magdecl} \ifx\tmp\empty \else
%{\the\legendtextsize\ss\the\magdecl { deg.} \par}
%\fi
\vskip0.5cm
# % end bruces addition
#%print comment
{
#\rightskip=0pt plus 3em\parskip=3bp
#\edef\tmp{\the\comment} \ifx\tmp\empty \else
# {\the\legendtextsize\the\comment} \par\medskip
#\fi
# %print cavelength and depth
# \everypar{\hangindent=2em\hangafter=1}
# \edef\tmp{\the\cavelength} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
# \fi
# \edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
# \fi
# % start bruces addition
## % altitude
#\edef\tmp{\the\cavemaxz} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\depthrangetitle \ss\the\cavemaxz m to}
#\fi
#\edef\tmp{\the\caveminz} \ifx\tmp\empty \else
# {\the\legendtextsize\ss\the\caveminz m \par} %above mean sea level
#\fi
# % end bruces addition
# %print explorers names
# \edef\tmp{\the\exploteam} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
# \fi
# %print surveyors names
# \edef\tmp{\the\topoteam} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
# \fi
# %%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
# %print cartographers names
# \edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
# \fi
# %print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
# %%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
# %%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
# %%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# %%print the survey's database web page
\edef\tmp{\the\database} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatabase: \ss\the\database\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
# \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}
# % \fi
# % \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
# \fi
# % end bruces addition
# %print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
# %print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\vskip0.3cm
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
\formattedlegend
\color[0 0 0]
}
# % Add Logos
#\legendbox{50}{60}{NW}{\loadpicture{Logos/Logo_FFS_small.jpg}}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (extended elevation)
# This code is experimental redefinition of map header
# Bruce Mutton Therion 5.3.15 make use of new variables
# Xavier Robert (2020/04/27)
# Header specifically for extended elevation maps with a vertical scale bar
# that needs to be manually located inside your layout (in the thconfig file)
# with the code :
# code tex-map
# \def\maplayout{
# \legendbox{0}{-1}{NW}{\the\legendcontent} % add legend content
# \legendbox{0}{87.5}{NW}{\hsize=1.5 cm\centerline\scalebar} % add scalebar where you want it
# }
# endcode
#<fr> Layout pour modifier le cartouche (header) de la projection en coupe développée
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
# Xavier Robert (2020/04/27)
# Header développé spécialement pour les coupes étendues et projetées, avec l'échelle
# verticale qu'il faut localiser grâce au code :
# code tex-map
# \def\maplayout{
# \legendbox{0}{-1}{NW}{\the\legendcontent} % Ajout du contenu de la légende
# \legendbox{0}{87.5}{NW}{\hsize=1.5 cm\centerline\scalebar} % Ajout de l'échelle où nous la voulons
# }
# endcode
######################################################################################################################################
layout header_coupe_vert-to-place
copy scalebar_vert # Xavier robert
#copy scalebar_vert-Halama # Juraj Halama
#<en> This one affects maps only (extended view)
#<fr> Ceci ne touche que les maps (coupes développées)
code tex-map
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
%\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
%print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
%print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip0.5cm
\fi}
{
%print the coordinates of the entrance. It is associated with the entrances_coordinates.th file
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords: \ss\the\ECoordinates\par}
\vskip0.5cm
\fi
%print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
\fi
# % end bruces addition
%print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
%print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
%%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
%print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
%print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
%print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
%%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
%%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
%%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
# % end bruces addition
%print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
\formattedlegend
\color[0 0 0]
}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (extended elevation)
# This code is experimental redefinition of map header
# Bruce Mutton Therion 5.3.15 make use of new variables
# Xavier Robert (2020/04/27)
# Header specifically for extended elevation maps with a vertical scale bar
# located at the right of the header.
#<fr> Layout pour modifier le cartouche (header) de la projection en coupe développée
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
# Xavier Robert (2020/04/27)
# Header développé spécialement pour les coupes étendues et projetées, avec l'échelle
# verticale et localisée à la droite du header.
######################################################################################################################################
layout header_coupe_vert-auto
copy scalebar_vert
#<en> This one affects maps only (extended view)
#<fr> Ceci ne touche que les maps (coupes développées)
code tex-map
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
% print scalebar
\ifscalebar\hskip1.3cm\vbox to 0pt{\line{\hfil\scalebar}\vss}\fi
% print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
% print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip0.3cm
\fi}
{
%print the coordinates of the entrance. It is associated with the entrances_coordinates.th file
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords: \ss\the\ECoordinates\par}
\vskip0.5cm
\fi
%print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
\fi
# % end bruces addition
%print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
%print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
%%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
%print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
%print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
%print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
%%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
%%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
%%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
# % end bruces addition
%print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\bigskip
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
\formattedlegend
\color[0 0 0]
}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (extended elevation)
# This code is experimental redefinition of map header
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en coupe développée
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
######################################################################################################################################
layout header_coupe
#<en> Layout to change the header (extended elevation)
# This code is experimental redefinition of map header
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en coupe développée
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
copy scalebar_horiz
#<en> This one affects maps only (extended view)
#<fr> Ceci ne touche que les maps (coupes développées)
code tex-map
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
%\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
%print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
%print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
%print scalebar
\ifscalebar\scalebar\vskip1cm\fi
{
%print the coordinates of the entrance. It is associated with the entrances_coordinates.th file
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords: \ss\the\ECoordinates\par}
\vskip0.5cm
\fi
%print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
\fi
# % end bruces addition
%print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
%print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
%%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
%print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
%print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
%print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
%%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
%%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
%%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
# % end bruces addition
%print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
\formattedlegend
\color[0 0 0]
}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header for sketch (plan projection)
# This code is experimental redefinition of map header and based on the work of
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en plan
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
######################################################################################################################################
layout header-plan-schema
copy scalebar_horiz
#<en> This one affects maps only
#<fr> Ceci ne touche que les maps (plans)
code tex-map
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
%%print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
%%print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
%%print scalebar
\ifscalebar\scalebar\vskip1cm\fi
%%print entrances coordinates (Lat-Long/WGS84) if defined
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords: \ss\the\ECoordinates\par}
\vskip0.5cm
\fi
%%print cavelength and depth ; they need to be defined in the layout in the thconfig
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explolengthtitle: \ss\the\cavelength} %\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explodepthtitle: \ss\the\cavedepth\par}
\fi
%%print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
%%print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
%%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
%%print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
%%print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
%%print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
%%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
%%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
%%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
%%print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
\fi
\formattedlegend
\color[0 0 0]
}
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header for sketch (extended elevation)
# This code is experimental redefinition of map header
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en coupe développée
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
######################################################################################################################################
layout header_coupe-schema
copy scalebar_horiz
#<en> This one affects maps only (extended view)
#<fr> Ceci ne touche que les maps (coupes développées)
code tex-map
\legendcontent={%
\hsize=\legendwidth
\color[0 0 0]\the\legendtextcolor
%print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
%print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
%print scalebar
\ifscalebar\scalebar\vskip1cm\fi
{
%print the coordinates of the entrance. It is associated with the entrances_coordinates.th file
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords: \ss\the\ECoordinates\par}
\vskip0.5cm
\fi
%%print cavelength and depth ; they need to be defined in the layout in the thconfig
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explolengthtitle: \ss\the\cavelength} %\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explodepthtitle: \ss\the\cavedepth\par}
\fi
%print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
%print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
%%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
%print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
%print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
%print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
%%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
%%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
%%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
%print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
\formattedlegend
\color[0 0 0]
}
endcode
endlayout
######################################################################################################################################
#<en> Layout for the set of the Atlas
#<fr> Layout pour définir le set up de l'Atlas
######################################################################################################################################
layout Atlas_layout
#<en> "page-setup".
# We specify 1) the dimensions of the paper: 21 X 29.7 (A4)
# 2) the surface usable to print, here 17 X 28.2
# and then 3, we can add a 3 cm left margin (21 - 17 -1 = 3)
# and a 1.5 cm top margin (29.7 - 27.2 - 1 = 1,5)
#<fr> "page-setup", ça sert pour le map et pour l'atlas aussi.
# on spécifie les dimensions de la feuille de papier : 21 X 29,7 (A4)
# la surface imprimible du papier, ce sont 17 X 28,2
# Alors, on peut indiquer une marge à gauche de 3 (21-17-1=3)
# et une marge en haut de 1,5 (29,7-27,2-1=1,5)
# en centimetres
# page-setup 21 29.7 17 27.2 3 1.5 cm # A4 Portrait
# page-setup 29.7 21 27.2 17 0.5 0.5 cm # A4 Paysage
page-setup 42 29.7 40 27.2 1 1 cm # A3 Paysage
#<en> "size" are the dimensions of the square/rectangle which will be
# occupied by part of the survey corresponding to each smal inset.
# 15 x 20, is good to print with an A4-paper.
#<fr> "size", c'est pour l'atlas. Ce sont les dimensions du carré dont
# l'interieur sera occupé par la partie de la topo correspondante à
# chaque une des pagines. 15 x 20, ça va bien pour imprimer A4.
# size 15 20 cm # A4 Portrait
# size 20 15 cm # A4 Paysage
size 38 21 cm # A3 Paysage
#<en> In the atlas, we choose an overlap of 1 cm with the neibourghood pages
#<fr> Dans l'atlas, on va superposer 1 cm de chaque page voisine
overlap 1 cm
#<en> Print (or not) the title of the pages before each capter of the Atlas
#<fr> Affiche (ou non) le titre des pages avant chaque chapitre de latlas
title-pages off
#<en> Zoom factor of the navigation pannel; by default, 30
#<fr> Facteur de zoom du panneau de navigation ; Par défault, 30
nav-factor 30
#<en> Define the number of pages in the 2 directions of the navigation pannel
#<fr> Définir le nombre de pages de l'atlas dans les 2 directions du panneau de navigation
nav-size 2 2
copy scalebar_horiz
code tex-atlas
\newbox\arsiplogo \setbox\arsiplogo=\hbox{\loadpicture{./Logos/Logo-ARSIP-Synthese-Topographique_XS.png}}
\newbox\arsipheaderlogo \setbox\arsipheaderlogo=\hbox{\loadpicture{./Logos/Logo-ARSIP-Synthese-Topographique.png}}
\legendtextsize={\size[12]}
\cavename={Atlas général des réseaux de la Pierre Saint-Martin / Larra}
\datat={https://github.com/Alex38Lyon/Synthese-PSM\_LARRA}
\database={https://karsteau.org/}
\synth={Alexandre Pont pour l'ARSIP}
#####################################################################################
# Page de titre personnalisée #
#####################################################################################
\def\atlastitlepages{%
\vbox{%
# %print logo
\vfill\vskip1cm
\centerline{\copy\arsipheaderlogo} % Logo centré
\vskip2cm\vfill
# %print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
\centerline{\the\legendtextheadersize\the\cavename}\vskip1cm
\fi
# %print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
# % CS
\edef\tmp{\the\outcsname} \ifx\tmp\empty \else
\vskip0.5cm
# %print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength, }
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par\vskip0.5cm}
\fi
# %print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par\vskip0.5cm}
\fi
# %print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par\vskip0.5cm}
\fi
# %%print the guides
# \edef\tmp{\the\guide} \ifx\tmp\empty \else
# {\the\legendtextsize\si\the\thguide: \ss\the\guide\par\vskip0.5cm}
# \fi
# %print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par\vskip0.5cm}
\fi
# %%print the web page
{\the\legendtextsize\si Page web : https://www.arsip.fr/\par}
# %%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
# %%print the survey's database web page
\edef\tmp{\the\database} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatabase: \ss\the\database\par}
\fi
# %print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
# % start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
# %print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
\bigskip
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}%
}
#####################################################################################
# Redéfinition de \dopage pour les pages de carte #
#####################################################################################
\def\dopage{%
\vbox{%
% Cadre de la carte
\centerline{\framed{\mapbox}}
\bigskip
% Ligne avec informations et navigateur
\line{ %
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vbox{
\hbox{%
\vbox{%
\hbox{\size[24]\the\pagename} % ligne 1 : nom de page
\ifpagenumbering
\medskip
\hbox{% % ligne 2 + lignes 3-4 côte à côte
\vbox{
\hbox{\size[18]Page : \the\pagenum % bloc gauche : numéro de page
\space(\the\pagelabel)\hskip1em}
}\hskip1.5em
\vbox{ % bloc droit : pointeurs + scalebar
\hbox{%
\vtop{%
\hbox to 0pt{\hss\showpointer\pointerN\hss}
\hbox to 0pt{%
\llap{\showpointer\pointerW\hskip0.8em}%
\hss\vbox{
\hbox{\hfil$\updownarrow$\hfil}
\nointerlineskip
\hbox{\hfil$\leftrightarrow$\hfil}
}
\hss\rlap{\hskip0.8em\showpointer\pointerE}%
}
\hbox to 0pt{\hss\showpointer\pointerS\hss}
}
}
\ifscalebar\hbox{\hskip1.5cm\scalebar}\fi
}
}
\fi
}
}
}
\hss
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vbox to \ht\navbox{ % Cadre 2 : Bloc central
\vss\centerline{\copy\arsiplogo}\vss % Logo
}
\hss
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vbox to \ht\navbox{ % Cadre 3 : bas droit
\ifnortharrow\hbox to 0pt{\hss\northarrow\qquad}\fi % flèche nord
\vss
}
\box\navbox % Cadre zoom général
}
}%
}
#####################################################################################
# Insertion des pages #
#####################################################################################
\atlastitlepages % page de titre
\insertmaps % pages de cartes
# \def\formattedlegend{%
# \centerline{\legendtitle}
# \centerline{\insertlegend}
# \vbox{%
# \vskip 1cm % marge en haut de la légende
# \centerline{%
# \vbox{%
# \legendtitle
# }%
# }%
# \vskip 1cm % marge en haut de la légende
# \hbox to \hsize{\hss % largeur totale de la page
# \centerline{%
# \vbox{%
# \insertlegend
# }%
# }%
# \hss}%
# \vskip 1cm % marge en bas si nécessaire
# }%
# }
\formattedlegend % légende à la fin
endcode
endlayout
######################################################################################################################################
#<en> Layout for the set of the Atlas North Arrow to override
# the north arrow definition of the layout drawingconfig
# and use a smaller North arrow to avoid overlaps with the scale bar
# For that, it should be call first in the layout Altas of the .thconfig file.
#<fr> Layout pour définir le set up de l'Atlas North Arrow.
# pour effacer la définition de la flèche du nord du layout drawingconfig
# et éviter la superposition de la flèche avec la barre d'échelle.
# Pour cela, il convient de placer l'appel à ce Layout avant tous les autres layouts
# dans le layout Atlas du .thconfig
######################################################################################################################################
layout LayoutAtlasNorthArrow
code metapost
def s_northarrow (expr rot) =
begingroup
#interim defaultscale:=0.7; % scale your north arrow here
interim defaultscale:=0.5; % scale your north arrow here; 0.5 is the best value for atlas
T:=identity scaled defaultscale rotated -rot;
interim linecap:=squared;
interim linejoin:=rounded;
thfill (-.5cm,-.1cm)--(0,2.5cm)--(.5cm,-.1cm)--cycle;
pickup pencircle scaled (0.08cm * defaultscale);
thdraw (0,0)--(0,-2.5cm);
pickup pencircle scaled (0.16cm * defaultscale);
p:=(0.4cm,0.6cm);
thdraw ((p--(p yscaled -1)--(p xscaled -1)--(p scaled -1)) shifted (0,-1.0cm));
label.rt(thTEX("mg") scaled 1.6, (.6cm,-1.6cm)) transformed T;
endgroup;
enddef;
endcode
endlayout
######################################################################################################################################
#<en> Layout to change the header (plan projection)
# This code is experimental redefinition of map header and based on the work of
# Bruce Mutton Therion 5.3.15 make use of new variables
#<fr> Layout pour modifier le cartouche (header) de la projection en plan
# Ce code de redéfinition est expérimental experimental et basé sur le travail de
# Bruce Mutton Therion 5.3.15 fait appel à de nouvelles variables
######################################################################################################################################
layout headeratlas
copy scalebar_horiz
#<en> This one affects maps only
#<fr> Ceci ne touche que les maps (plans)
code tex-atlas
# \atlastitlepages
\legendcontent={%
\hsize=\legendwidth
\color[55 55 55]\the\legendtextcolor
\ifnortharrow\vbox to 0pt{\line{\hfil\northarrow}\vss}\fi
# %print cave map name
\edef\tmp{\the\cavename} \ifx\tmp\empty \else
{\the\legendtextheadersize\the\cavename}\vskip0.5cm
\fi
# %print comment
{\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip\vskip1cm
\fi}
# %print scalebar
\ifscalebar\scalebar\vskip1cm\fi
%print entrances coordinates (Lat-Long/WGS84) if defined
\edef\tmp{\the\ECoordinates} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thcoords: \ss\the\ECoordinates\par}
\vskip0.5cm
\fi
% start bruces addition
% CS
\edef\tmp{\the\outcsname} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thproj: \ss\the\outcsname\par}
\fi
\edef\tmp{\the\northdir} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\northdir north }
\fi
\edef\tmp{\the\magdecl} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\magdecl deg \par}
\fi
\vskip0.5cm
% end bruces addition
#%print comment
{
\rightskip=0pt plus 3em\parskip=3bp
\edef\tmp{\the\comment} \ifx\tmp\empty \else
{\the\legendtextsize\the\comment} \par\medskip
\fi
# %print cavelength and depth
\everypar{\hangindent=2em\hangafter=1}
\edef\tmp{\the\cavelength} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavelengthtitle: \ss\the\cavelength\par}
\fi
\edef\tmp{\the\cavedepth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cavedepthtitle: \ss\the\cavedepth\par}
\fi
% start bruces addition
# % altitude
\edef\tmp{\the\cavemaxz} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\depthrangetitle \ss\the\cavemaxz m to}
\fi
\edef\tmp{\the\caveminz} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\caveminz m \par} %above mean sea level
\fi
% end bruces addition
# %print explorers names
\edef\tmp{\the\exploteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\explotitle: \ss\the\exploteam\quad\si\the\explodate\par}
\fi
# %print surveyors names
\edef\tmp{\the\topoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\topotitle: \ss\the\topoteam\quad\si\the\topodate\par}
\fi
# %%print the guides
\edef\tmp{\the\guide} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thguide: \ss\the\guide\par}
\fi
# %print cartographers names
\edef\tmp{\the\cartoteam} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\cartotitle: \ss\the\cartoteam\quad\si\the\cartodate\par}
\fi
# %print synthesys name !!! !!! with newtoks\synth \synth={Synth Name} in the thconfig
\edef\tmp{\the\synth} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thsynth: \ss\the\synth\par}
\fi
# %print the club
\edef\tmp{\the\club} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thclub: \ss\the\club\par}
\fi
# %%print the expedition
\edef\tmp{\the\expe} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thexpe: \ss\the\expe\par}
\fi
# %%print the web page
\edef\tmp{\the\wpage} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thwpage: \ss\the\wpage\par}
\fi
# %%print the survey's data web page
\edef\tmp{\the\datat} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\thdatat: \ss\the\datat\par}
\fi
% start bruces addition (compilation version and date modified to use built-in 5.3.15 variables)
\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}
% \fi
% \edef\tmp{\the\currentdate} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\datetitle \ss\the\currentdate\par}
\fi
% end bruces addition
# %print copyrights
\edef\tmp{\the\copyrights} \ifx\tmp\empty \else
{\the\legendtextsize\ss\the\copyrights\par}
\fi
\bigskip
\edef\tmp{\the\thanksto} \ifx\tmp\empty \else
{\the\legendtextsize\si\the\ththanksto: \ss\the\thanksto\par}
%\def\ththankstotitle{Nos remerciements : }
%{\everypar{\hangindent=7.2em\hangafter=1}
%\size[\thsizem]\si\ththankstotitle \ss\ththanksto\par}
\fi
}
\formattedlegend
\color[55 55 55]
}
endcode
endlayout
######################################################################################################################################
#<en> If you want to draw a frame around the map
#<fr> Si vous voulez un cadre autour de votre topographie
######################################################################################################################################
layout layoutmapborder
code tex-map
\framethickness=0.5mm
endcode
endlayout
######################################################################################################################################
#<en> If you want to write all the texts that go with continuations marks
#<fr> Si vous voulez écrire sur la carte le texte qui est donnée dans chaque définition
# de point d'interrogation de continuation
######################################################################################################################################
layout layoutcontinuation
code metapost
def p_continuation(expr pos,theta,sc,al) =
% draw default continuation symbol
p_continuation_UIS(pos,theta,sc,al);
% if text attribute is set
if known(ATTR__text) and picture(ATTR__text):
% set labeling color to light orange
push_label_fill_color(1.0, 0.9, 0.8);
% draw filled label with text next to ?
p_label.urt(ATTR__text,(.5u,-.25u) transformed T,0.0,8);
% restore original labeling color
pop_label_fill_color;
fi;
enddef;
endcode
endlayout
######################################################################################################################################
#<en> New Northarrow definition
#<fr> Nouvelle définition de la flèche du nord
######################################################################################################################################
layout northarrowMG
code metapost
# If you want to get both, magnetic and geographic north,
# with \cartodate ?
def s_northarrow (expr rot) =
%valscal=1.2; % scale your north arrow here
valscal=0.7; % scale your north arrow here
decl:=MagDecl; % set the magnetic declination
T:=identity;
picture tmp_pic;
tmp_pic = image (
pickup pencircle scaled .3;
thfill fullcircle scaled 4cm withcolor 1white;
thdraw fullcircle scaled 3.1cm;
thdraw fullcircle scaled 4.05cm;
pickup pencircle scaled .1;
thdraw fullcircle scaled 3cm;
thdraw fullcircle scaled 4cm;
pickup pencircle scaled .2;
thdraw (dir(45)*2.025cm)--(dir(45)*3.7cm);
thdraw (dir(135)*2.025cm)--(dir(135)*3.7cm);
thdraw (dir(225)*2.025cm)--(dir(225)*3.7cm);
thdraw (dir(315)*2.025cm)--(dir(315)*3.7cm);
pickup pencircle scaled .1;
for whereto=0 step 15 until 345:
thdraw dir(whereto)*.65cm--dir(whereto)*.9cm;
thdraw dir(whereto)*1.4cm--dir(whereto)*1.5cm;
endfor;
for whereto=0 step 5 until 355:
thdraw dir(whereto)*.65cm--dir(whereto)*.8cm;
thdraw dir(whereto)*1.45cm--dir(whereto)*1.5cm;
endfor;
for whereto=0 step 1 until 359:
thdraw dir(whereto)*1.94cm--dir(whereto)*2cm;
endfor;
pickup pencircle scaled 1;
thdraw fullcircle scaled 1cm;
thdraw fullcircle scaled 1.1cm;
thdraw fullcircle scaled 1.3cm withpen pencircle scaled .3;
vald=90-decl;
texrot=0-decl;
drawarrow(dir(vald)*-2cm--dir(vald)*2cm) withpen pencircle scaled .2;
% Add the date of the last drawing
thdraw image(label.top(btex $mg$ etex, (0,0)) scaled .5 rotated texrot;) shifted (dir(vald)*2.04cm);
thfill (1.06cm,1.06cm)--(0,.2cm)--(-1.06cm,1.06cm)--(-.2cm,0)--(-1.06cm,-1.06cm)--(0,-.2cm)--(1.06cm,-1.06cm)--(.2cm,0)--cycle;
thfill (-.2cm,.2cm)--(0,2cm)--(0,0)--cycle;
thfill (.2cm,-.2cm)--(0,-2cm)--(0,0)--cycle;
thfill (.2cm,.2cm)--(2cm,0)--(0,0)--cycle;
thfill (-.2cm,-.2cm)--(-2cm,0)--(0,0)--cycle;
thfill (.2cm,.2cm)--(-0,2cm)--(0,0)--cycle withcolor 1white;
thfill (.2cm,-.2cm)--(2cm,0)--(0,0)--cycle withcolor 1white;
thfill (-.2cm,-.2cm)--(0,-2cm)--(0,0)--cycle withcolor 1white;
thfill (-.2cm,.2cm)--(-2cm,0)--(0,0)--cycle withcolor 1white;
pickup pencircle scaled .2;
thdraw (-.2cm,.2cm)--(0,2cm)--(.2cm,.2cm)--(2cm,0cm)--(.2cm,-.2cm)--(0,-2cm)--(-.2cm,-.2cm)--(-2cm,0)--cycle;
thfill fullcircle scaled .56cm withcolor 1white;
pickup pencircle scaled .1;
thdraw (.28cm,0)..(0,.28cm)..(-.28cm,0)..(0,-.28cm)..cycle;
pickup pencircle scaled .4;
thdraw (.2cm,0)..(0,.2cm)..(-.2cm,0)..(0,-.2cm)..cycle;
label.bot(btex $N$ etex, (0,2.6cm));
label.lft(btex $E$ etex, (2.6cm,0));
label.rt(btex $W$ etex, (-2.6cm,0));
label.top(btex $S$ etex, (0,-2.6cm));
);
thdraw tmp_pic scaled valscal rotatedaround(origin, -rot);
enddef;
endcode
endlayout
#######################################################################################################################################
#<en> A test layout to test you new symbols, configurations,... ;-)
#<fr> Un layout de test pour tester vos nouveaux symboles, configurations,... ;-)
#######################################################################################################################################
layout test
code metapost
def p_u_prof (expr P,R,S,A)=
T:=identity aligned A rotated R scaled S shifted P;
pickup PenD;
p:=(-.3u,0)--(.3u,0);
thdraw p;
#thdraw p rotated 90;
p:=fullcircle scaled .2u;
#thclean p;
thdraw p;
enddef;
vardef p_label@#(expr txt,P,R,mode) =
if mode=1:
thdrawoptions(withcolor .8red + .4blue);
# thdrawoptions(withcolor .8red + .6blue);
p_u_prof(P);
% append "m" to label
picture txtm;
% calcul profondeur
%numeric profondeur;
profondeur:=(\thaltitude-\cavemaxz);
picture txtprofondeur;
txtm:=image(
draw txt;
interim labeloffset:=0;
#label.urt(btex \thaltitude m etex, lrcorner txt);
label.urt(btex profondeur m etex, lrcorner txt);
%label.urt(btex \thdepth m etex, lrcorner txt);
);
% give extra offset in case of l/r/t/b alignment
pair ctmp;
ctmp:=center thelabel@#("x", (0,0));
if (xpart ctmp * ypart ctmp)=0:
interim labeloffset:=(.4u);
else: % diagonal alignment
interim labeloffset:=(.2u);
fi;
% draw label
lab:=thelabel@#(txtm, P);
draw lab _thop_; % use color
thdrawoptions();
bboxmargin:=0.8bp;
write_circ_bbox((bbox lab) smoothed 2);
else:
if mode=7: interim labeloffset:=(u/8) fi;
lab:=thelabel@#(txt, P);
if mode>1: pickup PenD fi;
if 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(P,R); % station name
elseif mode=8: process_filledlabel(P, R);
else: process_label(P,R); fi;
fi;
enddef;
endcode
endlayout
######################################################################################################################################
#<en> Change the altitude definition
# This label requires to specify the position of text relative to point with
# help of -align in the options box.
#<fr> Changer la définition du point altitude
# Ce label nécessite la position spécifique de l'étiquette de texte de façon relative
# au point avec l'aide de l'option -align.
#ex: -align bottom-right/top-left/top-right/bottom-left/top/bottom/left/right...
######################################################################################################################################
layout depth
code metapost
#def p_altitude_depth (expr pos) =
def p_u_prof (expr pos) =
T:=identity shifted pos;
pickup PenD;
p:=(-.3u,0)--(.3u,0);
thdraw p; thdraw p rotated 90;
p:=fullcircle scaled .2u;
thclean p; thdraw p;
enddef;
endcode
endlayout
######################################################################################################################################
#<en> If you want to change font size
#<fr> Si vous voulez changer la police
#<en> fonts for 1/2000 scale drawing
#<fr> fonts pour dessin à 1/2000
######################################################################################################################################
layout fonts_2000
code metapost
#fonts_setup(<xs>,<s>,<m>,<l>,<xl>);
# Old: (6, 8, 12, 16, 18)
fonts_setup(5, 8, 12, 20, 34);
endcode
endlayout
######################################################################################################################################
#<en> If you want to change font size
#<fr> Si vous voulez changer la police
#<en> fonts for 1/1000 scale drawing
#<fr> fonts pour dessin à 1/1000
######################################################################################################################################
layout fonts_1000
code metapost
#fonts_setup(<xs>,<s>,<m>,<l>,<xl>);
# Old: (10, 14, 20, 28, 32)
# Old: (8, 12, 20, 28, 34)
fonts_setup(8, 12, 20, 32, 52);
endcode
endlayout
######################################################################################################################################
#<en> If you want to change font size
#<fr> Si vous voulez changer la police
#<en> fonts for 1/500 scale drawing
#<fr> fonts pour dessin à 1/500
######################################################################################################################################
layout fonts_500
code metapost
#fonts_setup(<xs>,<s>,<m>,<l>,<xl>);
# Old: (6, 10, 12, 14, 18)
fonts_setup(12, 20, 32, 52, 84);
endcode
endlayout
######################################################################################################################################
#<en> If you want to change the survey ligne definition
#<fr> Si vous voulez la définition de la ligne survey
######################################################################################################################################
layout Survey_No_Scrap
code metapost
def l_survey_cave_MY(expr P) =
if ATTR__scrap_centerline:
l_survey_cave_SKBB(P);
else:
draw P withcolor (0.6, 0.6, 0.6); % gris
fi;
enddef;
initsymbol("l_survey_cave_MY");
endcode
symbol-assign line survey:cave MY
endlayout
######################################################################################################################################