summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCCartographie.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartographie.tex117
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}