summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-03-13 20:48:57 +0000
committerKarl Berry <karl@freefriends.org>2022-03-13 20:48:57 +0000
commite178dd8e5072a961829b8d3e5ff93fb37dd76a35 (patch)
tree91c0f5f020df68f331586be4842cb04dd3814a4b /Master/texmf-dist/metapost
parent0e50ee67cfd0fd2f4042ee94f72bb0c2d24e1e8f (diff)
profcollege (13mar22)
git-svn-id: svn://tug.org/texlive/trunk@62686 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/metapost')
-rw-r--r--Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp237
-rw-r--r--Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp38
2 files changed, 256 insertions, 19 deletions
diff --git a/Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp b/Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp
new file mode 100644
index 00000000000..870049c0113
--- /dev/null
+++ b/Master/texmf-dist/metapost/profcollege/PfCArithmetique.mp
@@ -0,0 +1,237 @@
+% Fichier regroupant les macros pour les schémas des nombres premiers
+
+numeric retenirnb[];
+
+vardef Estcepremier(expr NBa)=
+ boolean $;
+ c:=2;
+ departa:=NBa;
+ test:=1;
+ $=true;
+ if departa=1:
+ $:=false;
+ else:
+ forever:
+ if (departa mod c)=0:
+ departa:=departa div c;
+ test:=test+1;
+ else:
+ c:=c+1;
+ fi;
+ exitif departa=1;
+ endfor;
+ fi;
+ if test=2:
+ $:=true
+ else:
+ $:=false;
+ fi;
+ $
+enddef;
+
+vardef PremierSimple(expr NB)=
+ b:=2;
+ depart:=NB;
+ if Estcepremier(depart)=false:
+ forever:
+ if (depart mod b)=0:
+ Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage);
+ Ancre[k+2]-Ancre[k+1]=(decalage,0);
+ depart:=depart div b;
+ retenirnb[k+1]=b;
+ retenirnb[k+2]=depart;
+ label(TEX("\num{"&decimal(b)&"}"),Ancre[k+1]);
+ label(TEX("\num{"&decimal(depart)&"}"),Ancre[k+2]);
+ draw 1/5[Ancre[k],Ancre[k+1]]--4/5[Ancre[k],Ancre[k+1]];
+ draw 1/5[Ancre[k],Ancre[k+2]]--4/5[Ancre[k],Ancre[k+2]];
+ k:=k+2;
+ racine:=depart;
+ depart:=1;
+ else:
+ b:=b+1;
+ fi;
+ exitif depart=1;
+ endfor;
+ else:
+ racine:=1;
+ fi;
+enddef;
+
+vardef PremierSimplePdf(expr NB)=
+ b:=2;
+ depart:=NB;
+ if Estcepremier(depart)=false:
+ forever:
+ if (depart mod b)=0:
+ Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage);
+ Ancre[k+2]-Ancre[k+1]=(decalage,0);
+ depart:=depart div b;
+ retenirnb[k+1]=b;
+ retenirnb[k+2]=depart;
+ label(LATEX("\num{"&decimal(b)&"}"),Ancre[k+1]);
+ label(LATEX("\num{"&decimal(depart)&"}"),Ancre[k+2]);
+ draw 1/5[Ancre[k],Ancre[k+1]]--4/5[Ancre[k],Ancre[k+1]];
+ draw 1/5[Ancre[k],Ancre[k+2]]--4/5[Ancre[k],Ancre[k+2]];
+ k:=k+2;
+ racine:=depart;
+ depart:=1;
+ else:
+ b:=b+1;
+ fi;
+ exitif depart=1;
+ endfor;
+ else:
+ racine:=1;
+ fi;
+enddef;
+
+vardef PremierSimpleArbre(expr NB)=
+ b:=2;
+ depart:=NB;
+ if Estcepremier(depart)=false:
+ forever:
+ if (depart mod b)=0:
+ Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage);
+ Ancre[k+2]-Ancre[k+1]=(decalage,0);
+ depart:=depart div b;
+ retenirnb[k+1]=b;
+ retenirnb[k+2]=depart;
+ draw Branche(Ancre[k],Ancre[k+1]);
+ draw Branche(Ancre[k],Ancre[k+2]);
+ k:=k+2;
+ racine:=depart;
+ depart:=1;
+ else:
+ b:=b+1;
+ fi;
+ exitif depart=1;
+ endfor;
+ else:
+ racine:=1;
+ fi;
+enddef;
+
+vardef NbEtape(expr nb)=
+ b:=2;
+ depart:=nb;
+ etape:=0;
+ Stock[0][0]=depart;
+ forever:
+ if (depart mod b)=0:
+ etape:=etape+1;
+ if etape=1:
+ Stock[etape][0]=b;
+ Stock[etape][etape]:=depart div b;
+ else:
+ for k=0 upto etape-2:
+ Stock[etape][k]:=Stock[etape-1][k];
+ endfor;
+ Stock[etape][etape-1]:=b;
+ Stock[etape][etape]:=depart div b;
+ fi;
+ depart:=depart div b;
+ else:
+ b:=b+1;
+ fi;
+ exitif depart=1;
+ endfor;
+ etape
+enddef;
+
+vardef Positions(expr Step)=
+ for k=0 upto (Step-1):
+ for l=0 upto k:
+ N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy);
+ label(TEX("\num{"&decimal(Stock[k][l])&"}"),N[k][l]);
+ endfor;
+ for l=0 upto k-1:
+ label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]);
+ endfor;
+ endfor;
+ for k=0 upto (Step-1):
+ for l=0 upto (k-1):
+ draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]];
+ endfor;
+ if k>0:
+ draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]];
+ fi;
+ endfor;
+enddef;
+
+vardef PositionsPdf(expr Step)=
+ for k=0 upto (Step-1):
+ for l=0 upto k:
+ N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy);
+ label(LATEX("\num{"&decimal(Stock[k][l])&"}"),N[k][l]);
+ endfor;
+ for l=0 upto k-1:
+ label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]);
+ endfor;
+ endfor;
+ for k=0 upto (Step-1):
+ for l=0 upto (k-1):
+ draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]];
+ endfor;
+ if k>0:
+ draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]];
+ fi;
+ endfor;
+enddef;
+
+vardef PositionsVide(expr Step)=
+ for k=0 upto (Step-1):
+ for l=0 upto k:
+ N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy);
+ endfor;
+ for l=0 upto k-1:
+ label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]);
+ endfor;
+ endfor;
+ for k=0 upto (Step-1):
+ for l=0 upto (k-1):
+ draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]];
+ endfor;
+ if k>0:
+ draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]];
+ fi;
+ endfor;
+ label(TEX("\num{"&decimal(Stock[0][0])&"}"),N[0][0]);
+enddef;
+
+vardef PositionsVidePdf(expr Step)=
+ for k=0 upto (Step-1):
+ for l=0 upto k:
+ N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy);
+ endfor;
+ for l=0 upto k-1:
+ label(btex $\times$ etex,1/2[N[k][l],N[k][l+1]]);
+ endfor;
+ endfor;
+ for k=0 upto (Step-1):
+ for l=0 upto (k-1):
+ draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]];
+ endfor;
+ if k>0:
+ draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]];
+ fi;
+ endfor;
+ label(LATEX("\num{"&decimal(Stock[0][0])&"}"),N[0][0]);
+enddef;
+
+vardef Branche(expr nbd,nba)=
+ save $;
+ picture $;
+ pair UnitVector;
+ numeric AngleVector;
+ UnitVector=unitvector(nba-nbd) rotated 90;
+ AngleVector=angle(nba-nbd)+(-10+uniformdeviate(20));
+ path branche;
+ branche=(nbd+UnitVector){dir AngleVector}..(nba+UnitVector)--reverse((nbd-UnitVector){dir AngleVector}..(nba-UnitVector))--cycle;
+ $=image(
+ fill branche withcolor gris;
+ draw branche;
+ );
+ $
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp b/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
index b9edf3873ff..94a37beccc1 100644
--- a/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
+++ b/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
@@ -319,7 +319,7 @@ vardef OvalMenuCap(expr art)=OvalCapMenu(art) enddef;
vardef OvalCapMenu(expr ar)=
save $; picture $;
string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TAMC;
TAMC=OvalBox(TTm);
@@ -349,8 +349,8 @@ enddef;
vardef OvalMouvMenu(expr ar)=
save $; picture $;
path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else:
- "\color{white}"&ar&"\hbox to1em{\barre}\color{black}\blacktriangledown"
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else:
+ "\color{white}"&ar&"\hbox to1em{\barre}\color{black}$\blacktriangledown$"
fi;
ta=OvalBox(TTm);
$=image(
@@ -364,7 +364,7 @@ enddef;
vardef OvalAppMenu(expr ar)=
save $; picture $;
path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
ta=OvalBox(TTm);
$=image(
@@ -381,7 +381,7 @@ vardef OvalMenuSon(expr ar)=
save $; save TA;
picture $;
string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TA;
TA=OvalBox(TTm);
@@ -397,7 +397,7 @@ vardef OvalMenuControle(expr ar)=
save $; save TA;
picture $;
string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TA;
TA=OvalBox(TTm);
@@ -415,11 +415,11 @@ vardef OvalStylo(expr ar)=
string TT,TTI;
if string ar:
if print:
- TT=ar&"\hbox to1em{\barre}\blacktriangledown"
+ TT=ar&"\hbox to1em{\barre}$\blacktriangledown$"
else:
- TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
+ TT=ar&"\hbox to1em{\barre}\color{white}$\blacktriangledown$"
fi;
- TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
+ TTI=ar&"\hbox to1em{\barre}\phantom{$\blacktriangledown$}";
path TA;
TA=OvalBox(TT);
$=image(
@@ -452,7 +452,7 @@ vardef OvalMenuEvenement(expr ar)=
save $; save TA;
picture $;
string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TA;
TA=OvalBox(TTm);
@@ -468,7 +468,7 @@ enddef;
vardef RecMouvMenu(expr ar)=
save $; picture $;
path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown"
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$"
fi;
ta=RecBox(TTm);
$=image(
@@ -482,7 +482,7 @@ enddef;
vardef RecMenuApp(expr ar)=
save $; picture $;
save ta; path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
ta=RecBox(TTm);
$=image(
@@ -496,7 +496,7 @@ enddef;
vardef RecMenuOp(expr ar)=
save $; save TA;
picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TA;
TA=RecBox(TTm);
@@ -511,7 +511,7 @@ enddef;
vardef RecMenuSon(expr ar)=
save $; save TA;
picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown" fi;
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$" fi;
path TA;
TA=RecBox(TTm);
$=image(
@@ -525,7 +525,7 @@ enddef;
vardef RecEvenementMenu(expr ar)=
save $; picture $;
path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
ta=RecBox(TTm);
$=image(
@@ -539,7 +539,7 @@ enddef;
vardef RecMenuCap(expr ar)=
save $; picture $;
path ta; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
ta=RecBox(TTm);
$=image(
@@ -553,7 +553,7 @@ enddef;
vardef RecMenuVar(expr ar)=
save $; save TA;
picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TA;
TA=RecBox(TTm);
@@ -568,7 +568,7 @@ enddef;
vardef RecMenuList(expr ar)=
save $; save TA;
picture $; string TTm;
- TTm=if print:ar&"\hbox to1em{\barre}\blacktriangledown" else: "\color{white}"&ar&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:ar&"\hbox to1em{\barre}$\blacktriangledown$" else: "\color{white}"&ar&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
path TA;
TA=RecBox(TTm);
@@ -2005,7 +2005,7 @@ vardef Stop(expr nbpas)=
save $;
picture $,texto;
string TTm;%Pour sauvegarder le nbpas car en l'utilisant dans les if, il ne permet pas la concaténation...
- TTm=if print:nbpas&"\hbox to1em{\barre}\blacktriangledown" else:"\color{white}"&nbpas&"\hbox to1em{\barre}\blacktriangledown";
+ TTm=if print:nbpas&"\hbox to1em{\barre}$\blacktriangledown$" else:"\color{white}"&nbpas&"\hbox to1em{\barre}$\blacktriangledown$";
fi;
texto=image(
path ti;