encoding utf-8 # # ARGE Grabenstetten # # Bezeichnung neuer Symbole text de "line u:rope" "Seil" layout l_smk # Österreichiche Symbole symbol-assign point station:temporary AUT symbol-assign line wall:blocks AUT symbol-assign line wall:debris AUT symbol-assign line wall:pebbles AUT symbol-assign line wall:sand AUT symbol-assign line wall:clay AUT symbol-assign line wall:ice AUT symbol-assign line wall:flowstone AUT symbol-assign line wall:moonmilk AUT symbol-assign point breakdown-choke AUT symbol-assign point clay-choke AUT symbol-assign line pit AUT symbol-assign point gradient AUT symbol-assign area sand AUT symbol-assign area clay AUT # Maßstab 1:1000 scale 1 1000 # Hintergrundfarbe 15% Grau # color map-bg 85 # Füllfarbe color map-fg [100 100 80] # Legendensprache Deutsch language de # Gesamtlänge/Niveaudifferenz statistics topo-length off statistics explo-length off # Legende anzeigen legend on # MetaPost code metapost def l_u_rope (expr P) = pickup PenB; draw P withcolor .75red; enddef; # Grüne Messzuglinie def l_survey_cave (expr P) = pickup PenC; draw P withcolor .5green; enddef; # Blaues Wasser def a_water (expr p) = T:=identity; thfill p withcolor (0.4, 0.6, 1.0); enddef; # "Fixed"-Messpunktsymbol verwenden let p_station_temporary = p_station_fixed; # altitude point 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; # altitude label (mode=1) # sparse station-name population pair prev_pos_stationname; prev_pos_stationname := (infinity,infinity); vardef p_label@#(expr txt,pos,rot,mode) = if mode=1: interim labeloffset:=(.3u); lab:=thelabel@#(txt, pos); % TODO append "m"! thdrawoptions(withcolor .8red + .4blue); p_altitude(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: % station name if abs(pos - prev_pos_stationname) > 5u: process_label(pos,rot); prev_pos_stationname := pos; fi; elseif mode=8: process_filledlabel(pos, rot); else: process_label(pos,rot); fi; fi; enddef; # nice waterflow with undistorted arrowhead def p_waterflow_permanent (expr pos,theta,sc,al)= U:=(.15u,.5u); T:=identity aligned al rotated theta scaled sc shifted pos; pickup PenC; p:=(0,-.5u)--(0,-.45u){up}..(.12u,-.3u)..(-.12u,-.15u)..(.12u,0).. (-.12u,.15u)..{up}(0,.3u)--(0,.5u); thdraw p; thdrawoptions(); begingroup save ahlength; ahlength:=3.0pt*optical_zoom; thfill arrowhead (0,0)--(0,.5u + 0.5*ahlength); endgroup; enddef; # waterflow with spring def p_u_waterflowspring (expr pos,theta,sc,al)= p_waterflow_permanent(pos,theta,sc,al); p:=(-.3u,.2u){down}..(0,-.2u)..{up}(.3u,.2u); thdraw p shifted (0,-.6u); enddef; # waterflow with sink def p_u_waterflowsink (expr pos,theta,sc,al)= p_waterflow_permanent(pos,theta,sc,al); p:=(-.3u,.2u){down}..(0,-.2u)..{up}(.3u,.2u); thdraw p shifted (0,-.6u) rotated 180; enddef; # Dichtes Sand-Pattern def a_sand (expr p) = T:=identity; thfill p withcolor (1.0, 0.9, 0.6); thfill p withpattern pattern_sand_UIS; enddef; def l_u_sand (expr p) = a_sand(p); enddef; def l_u_contour (expr p) = l_contour_UIS(p)(); enddef; # Nordpfeil mit "mg" Label def s_northarrow (expr rot) = begingroup interim defaultscale:=0.8; % scale your north arrow here 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(btex mg etex scaled 2, (.6cm,-1.6cm)) transformed T; endgroup; enddef; # Scalebar 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 - tmpl; label.bot(thTEX(decimal (i)),(tmpx,-tmph)); endfor; label.bot(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,-tmph)); label.top(thTEX("Originalmassstab = 1 : " & decimal (Scale*100)),(0,0)); endgroup; enddef; # Hide small rocks def l_rockborder (expr p) = if abs(llcorner p - urcorner p) > u: l_rockborder_UIS(p); fi; enddef; def l_rockedge (expr p) = if abs(llcorner p - urcorner p) > u: l_rockedge_UIS(p); fi; enddef; # Hide overpopulated contour lines pair prev_pos_contour, this_pos_contour; prev_pos_contour := (infinity,infinity); def l_contour(expr P)(text txt) = this_pos_contour := point arctime arclength(P)/2 of P of P; if abs(this_pos_contour - prev_pos_contour) > u/2: prev_pos_contour := this_pos_contour; l_contour_SKBB(P)(txt); fi; enddef; # Hide floor step ticks for Scale > 1:1000 def l_floorstep (expr P) = if BaseScale > 10: l_border_visible_SKBB(P); else: l_floorstep_UIS(P); fi; enddef; endcode # TeX code tex-map % Standard Copyright-Hinweis \edef\tmp{\the\copyrights} \ifx\tmp\empty \copyrights{(c) \number\year\ Arge Grabenstetten} \fi endcode endlayout # vi: ft=therion