diff options
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCCartographie.tex')
-rw-r--r-- | macros/latex/contrib/profcollege/latex/PfCCartographie.tex | 117 |
1 files changed, 102 insertions, 15 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex index 53ffa097d8..cf9aeaf66f 100644 --- a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex +++ b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex @@ -1,10 +1,11 @@ %%% % Cartographie %%% -\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur} +\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur,Boussole=false,Allegee=1} \defKV[Cartographie]{EchelleCarte=\setKV[Cartographie]{Carte}} \defKV[Cartographie]{Pays=\setKV[Cartographie]{PaysSeul}} \defKV[Cartographie]{Villes=\setKV[Cartographie]{VillesSup}} +\defKV[Cartographie]{VillesI=\setKV[Cartographie]{VillesSupI}} \defKV[Cartographie]{Traces=\setKV[Cartographie]{Codes}} \newcommand\Cartographie[3][]{% @@ -13,13 +14,18 @@ \setKV[Cartographie]{#1}% \mplibforcehmode% \ifboolKV[Cartographie]{Projection}{% + \mplibnumbersystem{double}% \begin{mplibcode} input PfCMonde; string arborescence; arborescence:=\useKV[Cartographie]{Arborescence}; - boolean Impression,VillesSup; + boolean Impression,VillesSup,VillesSupI,Boussole; VillesSup=\useKV[Cartographie]{VillesSup}; + VillesSupI=\useKV[Cartographie]{VillesSupI}; Impression=\useKV[Cartographie]{Impression}; + Boussole=\useKV[Cartographie]{Boussole}; + + Allegee:=\useKV[Cartographie]{Allegee}; maillage:=true; fleuves:=false; @@ -44,6 +50,14 @@ clip currentpicture to (mercatorc(-85,-180)--mercatorc(-85,180)--mercatorc(85,180)--mercatorc(85,-180)--cycle); draw mercatorc(0,-180)--mercatorc(0,180); draw mercatorc(-85,0)--mercatorc(85,0); + % + if Boussole: + label.top(TEX("\scriptsize Nord"),mercatorc(85,0)); + label.bot(TEX("\scriptsize Sud"),mercatorc(-85,0)); + label.urt(TEX("\scriptsize Est"),mercatorc(0,180)); + label.ulft(TEX("\scriptsize Ouest"),mercatorc(0,-180)); + fi; + % label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),mercatorc(0,0)); for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8: label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),mercatorc(-k*10,0)); @@ -57,6 +71,14 @@ clip currentpicture to (cylindriquec(-85,-180)--cylindriquec(-85,180)--cylindriquec(85,180)--cylindriquec(85,-180)--cycle); draw cylindriquec(0,-180)--cylindriquec(0,180); draw cylindriquec(-85,0)--cylindriquec(85,0); + % + if Boussole: + label.top(TEX("\scriptsize Nord"),cylindriquec(85,0)); + label.bot(TEX("\scriptsize Sud"),cylindriquec(-85,0)); + label.urt(TEX("\scriptsize Est"),cylindriquec(0,180)); + label.ulft(TEX("\scriptsize Ouest"),cylindriquec(0,-180)); + fi; + % label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),cylindriquec(0,0)); for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8: label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(-k*10,0)); @@ -70,6 +92,14 @@ clip currentpicture to (winkelc(-85,-180)--winkelc(-85,180) for k=-80 step 5 until 85:--winkelc(k,180) endfor --winkelc(85,-180) for k=80 step -5 until -85:--winkelc(k,-180) endfor --cycle); draw winkelc(0,-180)--winkelc(0,180); draw winkelc(-85,0)--winkelc(85,0); + % + if Boussole: + label.top(TEX("\scriptsize Nord"),winkelc(85,0)); + label.bot(TEX("\scriptsize Sud"),winkelc(-85,0)); + label.urt(TEX("\scriptsize Est"),winkelc(0,180)); + label.ulft(TEX("\scriptsize Ouest"),winkelc(0,-180)); + fi; + % label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),winkelc(0,0)); for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8: label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(-k*10,0)); @@ -79,23 +109,31 @@ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(0,-k*10)); label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(0,k*10)); endfor; - elseif projection="cylindrique": - clip currentpicture to (cylindriquec(-85,-180)--cylindriquec(-85,180)--cylindriquec(85,180)--cylindriquec(85,-180)--cycle); - draw cylindriquec(0,-180)--cylindriquec(0,180); - draw cylindriquec(-85,0)--cylindriquec(85,0); - label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),cylindriquec(0,0)); - for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8: - label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(-k*10,0)); - label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(k*10,0)); - endfor; - for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18: - label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,-k*10)); - label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,k*10)); - endfor; +% elseif projection="cylindrique": +% clip currentpicture to (cylindriquec(-85,-180)--cylindriquec(-85,180)--cylindriquec(85,180)--cylindriquec(85,-180)--cycle); +% draw cylindriquec(0,-180)--cylindriquec(0,180); +% draw cylindriquec(-85,0)--cylindriquec(85,0); +% label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),cylindriquec(0,0)); +% for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8: +% label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(-k*10,0)); +% label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(k*10,0)); +% endfor; +% for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18: +% label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,-k*10)); +% label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,k*10)); +% endfor; elseif projection="simple": clip currentpicture to (simplec(-85,-180)--simplec(-85,180)--simplec(85,180)--simplec(85,-180)--cycle); draw simplec(0,-180)--simplec(0,180); draw simplec(-85,0)--simplec(85,0); + % + if Boussole: + label.top(TEX("\scriptsize Nord"),simplec(85,0)); + label.bot(TEX("\scriptsize Sud"),simplec(-85,0)); + label.urt(TEX("\scriptsize Est"),simplec(0,180)); + label.ulft(TEX("\scriptsize Ouest"),simplec(0,-180)); + fi; + % label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),simplec(0,0)); for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8: label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),simplec(-k*10,0)); @@ -106,6 +144,50 @@ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),simplec(0,k*10)); endfor; fi; + + vardef Villes(text t)= + pair CoordVille; + string NomVille; + n:=0; + for p_:=t: + n:=n+1; + if n=1: + %nblec:=p; + else: + if pair p_: + if projection="mercator": + CoordVille:=mercatorc(ypart(p_),xpart(p_)); + elseif projection="winkel": + CoordVille:=winkelc(ypart(p_),xpart(p_)); + elseif projection="cylindrique": + CoordVille:=cylindriquec(ypart(p_),xpart(p_)); + elseif projection="simple": + CoordVille:=simplec(ypart(p_),xpart(p_)); + fi; + elseif string p_: + NomVille:=p_; + else: + marque_p:="croix"; + pointe(CoordVille); + label.position(p_)(TEX(""&NomVille&""),CoordVille); + fi; + fi; + endfor; + drawoptions(); + enddef; + + def position(expr t)= + if t=1:rt + elseif t=2:urt + elseif t=3:top + elseif t=4:ulft + elseif t=5:lft + elseif t=6:llft + elseif t=7:bot + elseif t=8:lrt + fi + enddef; + if VillesSup: nomfichiermul:=\useKV[Cartographie]{Villes}; nblec:=scantokens readfrom nomfichiermul; @@ -130,7 +212,12 @@ drawoptions(); closefrom nomfichiermul; fi; + + if VillesSupI: + Villes(\useKV[Cartographie]{VillesI}); + fi; \end{mplibcode} + \mplibnumbersystem{scaled}% }{% % \mplibforcehmode \begin{mplibcode} |