texlive[58973] Master/texmf-dist: profcollege (23apr21)

commits+karl at tug.org commits+karl at tug.org
Fri Apr 23 22:37:20 CEST 2021


Revision: 58973
          http://tug.org/svn/texlive?view=revision&revision=58973
Author:   karl
Date:     2021-04-23 22:37:20 +0200 (Fri, 23 Apr 2021)
Log Message:
-----------
profcollege (23apr21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf
    trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip
    trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex
    trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex
    trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex
    trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex
    trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex
    trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex
    trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp

Removed Paths:
-------------
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp
    trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex

Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,275 @@
+% Licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaDeuxComposition}[5][]{%type ax+b=d ou b=cx+d$
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+    \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}
+  \else%cas ax+b=d
+    \xintifboolexpr{#2=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }{%ELSE
+      \xintifboolexpr{#3=0}{%ax+b=d
+        \EquaBase[#1]{#2}{}{}{#5}%
+      }{%ax+b=d$ Ici
+        \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+        \begin{align*}
+          \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{E-\theNbequa}\\
+          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
+          \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+          \xintifboolexpr{\Coeffa=1}{}{\\}
+          \ifboolKV[ClesEquation]{Fleches}{%
+          \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+          \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+          }{}
+          \xintifboolexpr{\Coeffa=1}{% 
+          }{%\ifnum\cmtd>1
+          \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+          \ifboolKV[ClesEquation]{Fleches}{%
+          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          }{%ICI ?
+          \ifboolKV[ClesEquation]{FlecheDiv}{%
+          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          }{}
+          }
+          }
+          \ifboolKV[ClesEquation]{Entier}{%
+          \SSimpliTest{\Coeffb}{\Coeffa}%
+          \ifboolKV[ClesEquation]{Simplification}{%
+          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+          }{}
+          }{}
+          \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+        \end{align*}
+        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+        }{}
+      }
+    }
+  \fi
+}
+
+\newcommand{\EquaTroisComposition}[5][]{%ax+b=cx ou ax=cx+d
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+  \ifx\bla#5\bla%
+  %% paramètre oublié
+  \else
+  \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
+  \fi
+  \else
+  \xintifboolexpr{#2=0}{%b=cx
+    \EquaBase[#1]{#4}{}{}{#3}
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0
+      \EquaDeuxComposition[#1]{#2}{#3}{}{0}
+    }{%ax+b=cx
+      \xintifboolexpr{#2=#4}{%
+        \xintifboolexpr{#3=0}{%ax=ax
+          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+        {%ax+b=ax
+          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+        }%
+      }{%% Cas délicat
+        \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+          \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+          \begin{align*}
+            \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+            \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
+            \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{0}\tikzmark{F-\theNbequa}\\
+            \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{0-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
+            \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+            \xintifboolexpr{\Coeffa=1}{}{\\}
+            \ifboolKV[ClesEquation]{Fleches}{%
+            \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+            \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+            \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+            \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+            }{}
+            \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+            \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+            \ifboolKV[ClesEquation]{Fleches}{%
+            \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+            \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+            }{
+            \ifboolKV[ClesEquation]{FlecheDiv}{%
+            \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+            \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+            }{}
+            }
+            \ifboolKV[ClesEquation]{Entier}{%
+            \SSimpliTest{\Coeffb}{\Coeffa}%
+            \ifboolKV[ClesEquation]{Simplification}{%
+            \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+            }{}
+            }{}
+            }
+            \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+          \end{align*}
+          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+        }{%ax+b=cx+d avec a<c              % Autre cas délicat
+          \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+          \begin{align*}%
+            \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\tikzmark{E-\theNbequa}\\
+            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+            \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
+                                                                                                                                      \xintifboolexpr{\Coeffa=1}{}{\\}
+            \ifboolKV[ClesEquation]{Fleches}{%
+            \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+            \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+            }{}
+            \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+            \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+            \ifboolKV[ClesEquation]{Fleches}{%
+            \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+            \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+            }{
+            \ifboolKV[ClesEquation]{FlecheDiv}{%
+            \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+            \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+            }{}
+            }
+            \ifboolKV[ClesEquation]{Entier}{%
+            \SSimpliTest{\Coeffb}{\Coeffa}%
+            \ifboolKV[ClesEquation]{Simplification}{%
+            \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+            }{}
+            }{}
+            }
+            \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+          \end{align*}
+          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+        }%
+      }%
+    }%
+  }%
+  \fi
+}%
+
+
+\newcommand{\ResolEquationComposition}[5][]{%
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#4=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }%
+    {%0x+b=cx+d$
+      \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}%
+    }%
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0x+d
+      \EquaDeuxComposition[#1]{#2}{#3}{}{#5}%
+    }
+    {%ax+b=cx+d$
+      \xintifboolexpr{#3=0}{%
+        \xintifboolexpr{#5=0}{%ax=cx
+          \EquaTroisComposition[#1]{#2}{0}{#4}{}%
+        }%
+        {%ax=cx+d
+          \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
+        }%
+      }%
+      {\xintifboolexpr{#5=0}{%ax+b=cx
+          \EquaTroisComposition[#1]{#2}{#3}{#4}{}%
+        }%
+        {%ax+b=cx+d -- ici
+          \xintifboolexpr{#2=#4}{%
+            \xintifboolexpr{#3=#5}{%b=d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+            {%b<>d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+            }%
+          }{
+            %% Cas délicat
+            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
+              \begin{align*}
+                \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+                \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{F-\theNbequa}\\
+                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
+                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}%
+              \begin{align*}%
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
+                \mathcolor{Ccompo}{\num{\fpeval{#3-#5}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}%
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationComposition2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,226 @@
+% Licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBaseLaurent}[5][]{%type ax=d ou b=cx
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+  % si oui, on est dans le cas b=cx. Eh bien on échange :)
+  % Mais attention si les deux paramètres a et c sont vides...
+  \EquaBase[#1]{#4}{}{}{#3}
+  \else
+  % si non, on est dans le cas ax=d
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#5=0}{%
+      L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+  }{%\else
+    \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+      \begin{align*}%
+        \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{#2}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{#2}}}}&=\xintifboolexpr{#2=1}{\num{#5}}{\color{Cdecomp}\frac{\color{black}\num{#5}}{\num{#2}}}
+        \xintifboolexpr{#2=1}{}{\\\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}}%\\
+        \ifboolKV[ClesEquation]{Entier}{%
+        \SSimpliTest{#5}{#2}%
+        \ifboolKV[ClesEquation]{Simplification}{%
+        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+        }{}
+        }{}
+      \end{align*}
+      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
+      }{}
+    }
+  }
+  \fi
+}
+
+\newcommand{\EquaDeuxLaurent}[5][]{%type ax+b=d ou b=cx+d$
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+  \EquaDeuxLaurent[#1]{#4}{#5}{#2}{#3}
+  \else%cas ax+b=d
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#3=#5}{%b=d
+      L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+    {%b<>d
+      L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+    }%
+  }{%ELSE
+    \xintifboolexpr{#3=0}{%ax+b=d
+      \EquaBaseLaurent[#1]{#2}{}{}{#5}%
+    }{%ax+b=d$ Ici
+      \begin{align*}
+        \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\num{#5}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+        \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}%\\
+        \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+        \xintifboolexpr{\Coeffa=1}{}{\\}
+        \xintifboolexpr{\Coeffa=1}{% 
+        }{%\ifnum\cmtd>1
+        \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+        \ifboolKV[ClesEquation]{Entier}{%
+        \SSimpliTest{\Coeffb}{\Coeffa}%
+        \ifboolKV[ClesEquation]{Simplification}{%
+        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+        }{}
+        }{}
+        }
+      \end{align*}
+      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+      }{}
+    }
+  }
+}
+
+\newcommand{\EquaTroisLaurent}[5][]{%ax+b=cx ou ax=cx+d
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+    \ifx\bla#5\bla%
+      %% paramètre oublié
+    \else
+      \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
+    \fi
+  \else
+  \xintifboolexpr{#2=0}{%b=cx
+    \EquaBaseLaurent[#1]{#4}{}{}{#3}
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0
+      \EquaDeuxLaurent[#1]{#2}{#3}{}{0}
+    }{%ax+b=cx
+      \xintifboolexpr{#2=#4}{%
+        \xintifboolexpr{#3=0}{%ax=ax
+          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+        {%ax+b=ax
+          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+        }%
+      }{%% Cas délicat
+        \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+          \begin{align*}
+            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}\\
+            \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
+            \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+            \xintifboolexpr{\Coeffa=1}{}{\\}
+            \xintifboolexpr{\Coeffa=1}{% 
+            }{%\ifnum\cmtd>1
+            \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+            \ifboolKV[ClesEquation]{Entier}{%
+            \SSimpliTest{\Coeffb}{\Coeffa}%
+            \ifboolKV[ClesEquation]{Simplification}{%
+            \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+            }{}
+            }{}
+            }
+          \end{align*}
+          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+        }{%ax+b=cx avec a<c              % Autre cas délicat
+          \begin{align*}%
+            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\\
+            \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
+            \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=0\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+            \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+            \xintifboolexpr{\Coeffa=1}{}{\\}
+            \xintifboolexpr{\Coeffa=1}{% 
+            }{%\ifnum\cmtd>1
+            \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+            \ifboolKV[ClesEquation]{Entier}{%
+            \SSimpliTest{\Coeffb}{\Coeffa}%
+            \ifboolKV[ClesEquation]{Simplification}{%
+            \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+            }{}
+            }{}
+            }
+          \end{align*}
+          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+        }%
+      }%
+    }%
+  }%
+  \fi
+}%
+
+\newcommand{\ResolEquationLaurent}[5][]{%
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#4=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }%
+    {%0x+b=cx+d
+      \EquaDeuxLaurent[#1]{#4}{#5}{}{#3}%
+    }%
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0x+d
+      \EquaDeuxLaurent[#1]{#2}{#3}{}{#5}%
+    }
+    {%ax+b=cx+d
+      \xintifboolexpr{#3=0}{%
+        \xintifboolexpr{#5=0}{%ax=cx
+          \EquaTroisLaurent[#1]{#2}{0}{#4}{}%
+        }%
+        {%ax=cx+d
+          \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
+        }%
+      }%
+      {\xintifboolexpr{#5=0}{%ax+b=cx
+          \EquaTroisLaurent[#1]{#2}{#3}{#4}{}%
+        }%
+        {%ax+b=cx+d -- ici
+          \xintifboolexpr{#2=#4}{%
+            \xintifboolexpr{#3=#5}{%b=d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+            {%b<>d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+            }%
+          }{%% Cas délicat
+            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+              \begin{align*}
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
+                \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
+                \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \xintifboolexpr{\Coeffa=1}{% 
+                }{%\ifnum\cmtd>1
+                \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}%
+                &=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}
+                \\
+                \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
+                \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \xintifboolexpr{\Coeffa=1}{% 
+                }{%\ifnum\cmtd>1
+                \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}%
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationLaurent1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,246 @@
+% Licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBaseL}[5][]{%type ax=d ou b=cx
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+  % si oui, on est dans le cas b=cx. Eh bien on échange :)
+  % Mais attention si les deux paramètres a et c sont vides...
+  \EquaBaseL[#1]{#4}{}{}{#3}
+  \else
+  % si non, on est dans le cas ax=d
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#5=0}{%
+      L'équation $0\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+  }{%\else
+    \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+      \begin{align*}%
+        \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
+        \xintifboolexpr{#2=1}{}{%
+        \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\}
+        \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
+        \ifboolKV[ClesEquation]{Entier}{%
+        \SSimpliTest{#5}{#2}%
+        \ifboolKV[ClesEquation]{Simplification}{%
+        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+        }{}
+        }{}
+        %\ifboolKV[ClesEquation]{Fleches}{%
+        %\stepcounter{Nbequa}}%
+        %{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
+        %}
+      \end{align*}
+      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
+      }{}
+    }
+  }
+  \fi
+}
+
+\newcommand{\EquaDeuxL}[5][]{%type ax+b=d ou b=cx+d$
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+    \EquaDeuxL[#1]{#4}{#5}{#2}{#3}
+  \else%cas ax+b=d
+    \xintifboolexpr{#2=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }{%ELSE
+      \xintifboolexpr{#3=0}{%ax+b=d
+        \EquaBaseL[#1]{#2}{}{}{#5}%
+      }{%ax+b=d$ Ici
+        \begin{align*}
+          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+          \phantom{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+          \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
+          \xintifboolexpr{\Coeffa=1}{}{\\}
+          \xintifboolexpr{\Coeffa=1}{% 
+          }{%\ifnum\cmtd>1
+          \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\
+          \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+          }
+          \ifboolKV[ClesEquation]{Entier}{%
+          \SSimpliTest{\Coeffb}{\Coeffa}%
+          \ifboolKV[ClesEquation]{Simplification}{%
+          \ifthenelse{\boolean{Simplification}}{%
+          \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%
+                                                                                                                   }{}%\\
+          }{}
+          }{}
+        \end{align*}
+        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+        }{}
+      }
+    }
+  \fi
+}
+
+\newcommand{\EquaTroisL}[5][]{%ax+b=cx ou ax=cx+d
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+    \ifx\bla#5\bla%
+      %% paramètre oublié
+    \else
+      \EquaTroisL[#1]{#4}{#5}{#2}{}%
+    \fi
+  \else
+  \xintifboolexpr{#2=0}{%b=cx
+    \EquaBaseL[#1]{#4}{}{}{#3}
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0
+      \EquaDeuxL[#1]{#2}{#3}{}{0}
+      }{%ax+b=cx
+        \xintifboolexpr{#2=#4}{%
+          \xintifboolexpr{#3=0}{%ax=ax
+            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+          {%ax+b=ax
+            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+          }%
+        }{%% Cas délicat
+          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+            \begin{align*}
+              \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
+                \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
+              \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
+              \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
+              \xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
+              \xintifboolexpr{\Coeffa=1}{}{\\}
+              \xintifboolexpr{\Coeffa=1}{% 
+              }{%\ifnum\cmtd>1
+              \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+              \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+              }
+              \ifboolKV[ClesEquation]{Entier}{%
+              \SSimpliTest{\Coeffb}{\Coeffa}%
+              \ifboolKV[ClesEquation]{Simplification}{%
+              \ifthenelse{\boolean{Simplification}}{\\%
+              \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%\\
+              }{}
+              }{}
+              }{}
+            \end{align*}
+            \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
+                \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+                \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \xintifboolexpr{\Coeffa=1}{% 
+                }{%\ifnum\cmtd>1
+                \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+              \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+              }
+              \ifboolKV[ClesEquation]{Entier}{%
+              \SSimpliTest{\Coeffb}{\Coeffa}%
+              \ifboolKV[ClesEquation]{Simplification}{%
+              \ifthenelse{\boolean{Simplification}}{\\%
+              \SSimplifie{\Coeffb}{\Coeffa}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+              }{}
+              }{}
+              }{}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+            }%
+          }%
+        }%
+      }%
+    \fi
+  }%\\
+  % \\
+
+\newcommand{\ResolEquationL}[5][]{%
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#4=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }%
+    {%0x+b=cx+d$
+      \EquaDeuxL[#1]{#4}{#5}{}{#3}%
+    }%
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0x+d
+      \EquaDeuxL[#1]{#2}{#3}{}{#5}%
+    }
+    {%ax+b=cx+d$
+      \xintifboolexpr{#3=0}{%
+        \xintifboolexpr{#5=0}{%ax=cx
+          \EquaTroisL[#1]{#2}{0}{#4}{}%
+        }%
+        {%ax=cx+d
+          \EquaTroisL[#1]{#4}{#5}{#2}{}%
+        }%
+      }%
+      {\xintifboolexpr{#5=0}{%ax+b=cx
+          \EquaTroisL[#1]{#2}{#3}{#4}{}%
+        }%
+        {%ax+b=cx+d -- ici
+          \xintifboolexpr{#2=#4}{%
+            \xintifboolexpr{#3=#5}{%b=d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+            {%b<>d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+            }%
+          }{
+            %% Cas délicat
+            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+              \begin{align*}
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{\phantom{{}={}}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
+                \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{\phantom{{}+{}}\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{{}={}\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
+                \xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{\Coeffb>0}{\phantom{{}+{}}\num{\Coeffb}}{{}-{}\num{\fpeval{0-\Coeffb}}}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+                \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\%
+                \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\SSimplifie{\Coeffb}{\Coeffa}%\\
+                }{}
+                }{}
+                }{}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\xintifboolexpr{#4<0}{\phantom{={}}}{}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+                \xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{{}-{}\num{#5}}{{}+{}\num{\fpeval{0-#5}}}}&\phantom{{}={}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
+                \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\xintifboolexpr{\Coeffa<0}{\phantom{{}={}}}{\phantom{=}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
+                \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}%
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%


Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationPose1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,345 @@
+% Licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBase}[5][]{%type ax=d ou b=cx
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+  % si oui, on est dans le cas b=cx. Eh bien on échange :)
+  % Mais attention si les deux paramètres a et c sont vides...
+  \EquaBase[#1]{#4}{}{}{#3}
+  \else
+  % si non, on est dans le cas ax=d
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#5=0}{%
+      L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+  }{%\else
+    \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+      \begin{align*}%
+        \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\tikzmark{C-\theNbequa}\\
+        \tikzmark{B-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}\tikzmark{D-\theNbequa}%\\
+        \ifboolKV[ClesEquation]{Fleches}{%
+        \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+        \rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+        }{%
+        \ifboolKV[ClesEquation]{FlecheDiv}{%
+        \Leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+        \Rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
+        }{}%
+        }%%
+        \ifboolKV[ClesEquation]{Entier}{%
+        \SSimpliTest{#5}{#2}%
+        \ifboolKV[ClesEquation]{Simplification}{%
+        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+        }{}
+        }{}
+        \ifboolKV[ClesEquation]{Fleches}{%
+        \stepcounter{Nbequa}}%
+        {\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
+        }
+      \end{align*}
+      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
+      }{}
+    }
+  }
+  \fi
+}
+
+\newcommand{\EquaDeuxSoustraction}[5][]{%type ax+b=d ou b=cx+d$
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+    \EquaDeuxSoustraction[#1]{#4}{#5}{#2}{#3}
+  \else%cas ax+b=d
+    \xintifboolexpr{#2=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }{%ELSE
+      \xintifboolexpr{#3=0}{%ax+b=d
+        \EquaBase[#1]{#2}{}{}{#5}%
+      }{%ax+b=d$ Ici
+        \begin{align*}
+          \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
+          \ifboolKV[ClesEquation]{Decomposition}{%
+          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+          }{}%
+          \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}
+          \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
+          \xintifboolexpr{\Coeffa=1}{}{\\}
+          \ifboolKV[ClesEquation]{Fleches}{%
+          \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+          \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+          }{}
+          \xintifboolexpr{\Coeffa=1}{% 
+          }{%\ifnum\cmtd>1
+          \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+          \ifboolKV[ClesEquation]{Fleches}{%
+          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          }{%ICI ?
+          \ifboolKV[ClesEquation]{FlecheDiv}{%
+          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          }{}
+          }
+          }
+          \ifboolKV[ClesEquation]{Entier}{%
+          \SSimpliTest{\Coeffb}{\Coeffa}%
+          \ifboolKV[ClesEquation]{Simplification}{%
+          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+          }{}
+          }{}
+          \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+        \end{align*}
+        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+        }{}
+      }
+    }
+  \fi
+}
+
+\newcommand{\EquaTroisSoustraction}[5][]{%ax+b=cx ou ax=cx+d
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+    \ifx\bla#5\bla%
+      %% paramètre oublié
+    \else
+      \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
+    \fi
+  \else
+  \xintifboolexpr{#2=0}{%b=cx
+    \EquaBase[#1]{#4}{}{}{#3}
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0
+      \EquaDeuxSoustraction[#1]{#2}{#3}{}{0}
+      }{%ax+b=cx
+        \xintifboolexpr{#2=#4}{%
+          \xintifboolexpr{#3=0}{%ax=ax
+            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+          {%ax+b=ax
+            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+          }%
+        }{%% Cas délicat
+          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+            \begin{align*}
+              \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
+                }{}
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=0\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
+                }{}%
+              \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+              %eric
+              \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
+              % eric
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+                }{}
+                \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                }{}
+                % eric
+                \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
+                % eric
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+            }%
+          }%
+        }%
+      }%
+    \fi
+  }%
+
+
+\newcommand{\ResolEquationSoustraction}[5][]{%
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#4=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }%
+    {%0x+b=cx+d$
+      \EquaDeuxSoustraction[#1]{#4}{#5}{}{#3}%
+    }%
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0x+d
+      \EquaDeuxSoustraction[#1]{#2}{#3}{}{#5}%
+    }
+    {%ax+b=cx+d$
+      \xintifboolexpr{#3=0}{%
+        \xintifboolexpr{#5=0}{%ax=cx
+          \EquaTroisSoustraction[#1]{#2}{0}{#4}{}%
+        }%
+        {%ax=cx+d
+          \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
+        }%
+      }%
+      {\xintifboolexpr{#5=0}{%ax+b=cx
+          \EquaTroisSoustraction[#1]{#2}{#3}{#4}{}%
+        }%
+        {%ax+b=cx+d -- ici
+          \xintifboolexpr{#2=#4}{%
+            \xintifboolexpr{#3=#5}{%b=d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+            {%b<>d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+            }%
+          }{
+            %% Cas délicat
+            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+              \begin{align*}
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                }{}
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+                }{}%
+                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+                % eric
+                \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
+                % eric
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                }{}
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
+                \ifboolKV[ClesEquation]{Decomposition}{%
+                \num{#3}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
+                }{}%
+                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
+                % eric
+                \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
+                % eric
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}%
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%
+
+


Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSoustraction2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,225 @@
+% Licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaBaseSymbole}[5][]{%type ax=d ou b=cx
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
+  % si oui, on est dans le cas b=cx. Eh bien on échange :)
+  % Mais attention si les deux paramètres a et c sont vides...
+    \ifx\bla#4\bla
+  %% il manque un paramètre
+    \else
+      \EquaBaseSymbole[#1]{#4}{}{}{#3}
+    \fi
+  \else
+  % si non, on est dans le cas ax=d
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#5=0}{%
+      L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
+  }{%\else
+    \xintifboolexpr{#5=0}{L'équation $\num{#2}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+      \begin{align*}%
+         \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
+        \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
+        \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{#5}{#2}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
+                }{}
+                }{}
+      \end{align*}
+    }
+  }
+  \fi
+}
+
+\newcommand{\EquaDeuxSymbole}[5][]{%type ax+b=d ou b=cx+d$
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+    \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}
+  \else%cas ax+b=d
+    \xintifboolexpr{#2=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }{%ELSE
+      \xintifboolexpr{#3=0}{%ax+b=d
+        \EquaBaseSymbole[#1]{#2}{}{}{#5}%
+      }{%ax+b=d$ Ici
+        \begin{align*}
+          \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+          \ifboolKV[ClesEquation]{Bloc}{\Fdash{$\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\}{}%
+          \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
+          \xintifboolexpr{\Coeffa=1}{% 
+          }{%\ifnum\cmtd>1
+          \\
+          \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+          \ifboolKV[ClesEquation]{Entier}{%
+          \SSimpliTest{\Coeffb}{\Coeffa}%
+          \ifboolKV[ClesEquation]{Simplification}{%
+          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+          }{}
+          }{}
+          }
+        \end{align*}
+      }
+    }
+  \fi
+}
+
+\newcommand{\EquaTroisSymbole}[5][]{%ax+b=cx ou ax=cx+d
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+    \ifx\bla#5\bla%
+      %% paramètre oublié
+    \else
+      \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
+    \fi
+  \else
+  \xintifboolexpr{#2=0}{%b=cx
+    \EquaBaseSymbole[#1]{#4}{}{}{#3}
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0
+      \EquaDeuxSymbole[#1]{#2}{#3}{}{0}
+      }{%ax+b=cx
+        \xintifboolexpr{#2=#4}{%
+          \xintifboolexpr{#3=0}{%ax=ax
+            L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+          {%ax+b=ax
+            L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+          }%
+        }{%% Cas délicat
+          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+            \begin{align*}
+              \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
+              \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\\              
+              \xdef\Coeffa{\fpeval{#2-#4}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
+              \ifboolKV[ClesEquation]{Bloc}{\Fdash{\mathcolor{Csymbole}{$\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\}{}
+              \xdef\Coeffb{\fpeval{0-#3}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}%\\
+              \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+              \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+              \end{align*}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
+                \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\\
+                \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}% \\
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+              \end{align*}
+            }%
+          }%
+        }%
+      }%
+    \fi
+  }%
+
+
+\newcommand{\ResolEquationSymbole}[5][]{%
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#4=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }%
+    {%0x+b=cx+d$
+      \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}%
+    }%
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0x+d
+      \EquaDeuxSymbole[#1]{#2}{#3}{}{#5}%
+    }
+    {%ax+b=cx+d$
+      \xintifboolexpr{#3=0}{%
+        \xintifboolexpr{#5=0}{%ax=cx
+          \EquaTroisSymbole[#1]{#2}{0}{#4}{}%
+        }%
+        {%ax=cx+d
+          \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
+        }%
+      }%
+      {\xintifboolexpr{#5=0}{%ax+b=cx
+          \EquaTroisSymbole[#1]{#2}{#3}{#4}{}%
+        }%
+        {%ax+b=cx+d -- ici
+          \xintifboolexpr{#2=#4}{%
+            \xintifboolexpr{#3=#5}{%b=d
+              L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+            {%b<>d
+              L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+            }%
+          }{
+            %% Cas délicat
+            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+              \begin{align*}
+                \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \xdef\Coeffa{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+                \ifboolKV[ClesEquation]{Bloc}{%
+                \Fdash{$\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
+                }{}%
+                \xdef\Coeffb{\fpeval{#5-#3}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+              \end{align*}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \begin{align*}%
+                \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \xdef\Coeffa{\fpeval{#4-#2}}\num{#3}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \ifboolKV[ClesEquation]{Bloc}{%
+                \num{#3}&=\Fdash{$\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                }{}%
+                \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}%\\
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+              \end{align*}
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%
+
+


Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationSymbole1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,276 @@
+% Licence    : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newcommand{\EquaDeuxTerme}[5][]{%type ax+b=d ou b=cx+d$
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
+    \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}
+  \else%cas ax+b=d
+    \xintifboolexpr{#2=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }{%ELSE
+      \xintifboolexpr{#3=0}{%ax+b=d
+        \EquaBase[#1]{#2}{}{}{#5}%
+      }{%ax+b=d$ Ici
+        \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+        \begin{align*}
+          \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
+          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+          \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+          \xintifboolexpr{\Coeffa=1}{}{\\}
+          \ifboolKV[ClesEquation]{Fleches}{%
+          \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+          \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+          }{}
+          \xintifboolexpr{\Coeffa=1}{% 
+          }{%\ifnum\cmtd>1
+          \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+          \ifboolKV[ClesEquation]{Fleches}{%
+          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          }{%ICI ?
+          \ifboolKV[ClesEquation]{FlecheDiv}{%
+          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+          }{}
+          }
+          }
+          \ifboolKV[ClesEquation]{Entier}{%
+          \SSimpliTest{\Coeffb}{\Coeffa}%
+          \ifboolKV[ClesEquation]{Simplification}{%
+          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+          }{}
+          }{}
+          \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+        \end{align*}
+        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
+        }{}
+      }
+    }
+  \fi
+}
+
+\newcommand{\EquaTroisTerme}[5][]{%ax+b=cx ou ax=cx+d
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
+    \ifx\bla#5\bla%
+      %% paramètre oublié
+    \else
+      \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
+    \fi
+  \else
+  \xintifboolexpr{#2=0}{%b=cx
+    \EquaBase[#1]{#4}{}{}{#3}
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0
+      \EquaDeuxTerme[#1]{#2}{#3}{}{0}
+      }{%ax+b=cx
+        \xintifboolexpr{#2=#4}{%
+          \xintifboolexpr{#3=0}{%ax=ax
+            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
+          {%ax+b=ax
+            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+          }%
+        }{%% Cas délicat
+          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
+            \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+            \begin{align*}
+              \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
+              \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
+              \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=0\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+              \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+              \begin{align*}%
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
+                \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
+                \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
+            }%
+          }%
+        }%
+      }%
+    \fi
+  }%
+
+\newcommand{\ResolEquationTerme}[5][]{%
+  \useKVdefault[ClesEquation]%
+  \setKV[ClesEquation]{#1}%
+  \xintifboolexpr{#2=0}{%
+    \xintifboolexpr{#4=0}{%
+      \xintifboolexpr{#3=#5}{%b=d
+        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
+      {%b<>d
+        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
+      }%
+    }%
+    {%0x+b=cx+d$
+      \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}%
+    }%
+  }{%
+    \xintifboolexpr{#4=0}{%ax+b=0x+d
+      \EquaDeuxTerme[#1]{#2}{#3}{}{#5}%
+    }
+    {%ax+b=cx+d$
+      \xintifboolexpr{#3=0}{%
+        \xintifboolexpr{#5=0}{%ax=cx
+          \EquaTroisTerme[#1]{#2}{0}{#4}{}%
+        }%
+        {%ax=cx+d
+          \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
+        }%
+      }%
+      {\xintifboolexpr{#5=0}{%ax+b=cx
+          \EquaTroisTerme[#1]{#2}{#3}{#4}{}%
+        }%
+        {%ax+b=cx+d -- ici
+          \xintifboolexpr{#2=#4}{%
+            \xintifboolexpr{#3=#5}{%b=d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+            {%b<>d
+              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+            }%
+          }{
+            %% Cas délicat
+            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+              \begin{align*}
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#5>0}{\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\tikzmark{F-\theNbequa}\\
+                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
+                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}
+            }{%ax+b=cx+d avec a<c              % Autre cas délicat
+              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
+              \begin{align*}%
+                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
+                \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
+                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
+                \num{#3}\mathcolor{Cterme}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\\
+                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
+                \xintifboolexpr{\Coeffa=1}{}{\\}
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
+                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
+                }{}
+                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
+                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
+                \ifboolKV[ClesEquation]{Fleches}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
+                }{
+                \ifboolKV[ClesEquation]{FlecheDiv}{%
+                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
+                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Entier}{%
+                \SSimpliTest{\Coeffb}{\Coeffa}%
+                \ifboolKV[ClesEquation]{Simplification}{%
+                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
+                }{}
+                }{}
+                }
+                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
+              \end{align*}
+              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
+              }{}%
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%
+
+


Property changes on: trunk/Master/texmf-dist/doc/latex/profcollege/PfCEquationTerme1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Afficheur.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,182 +0,0 @@
-u:=1cm;
-
-vardef Afficheur(expr nb,creux)=
-  pair Aa[];
-  Aa1=u*(-0.5,-1);
-  Aa2-Aa1=u*(1,0);
-  Aa4-Aa2=u*(0,2);
-  Aa3=1/2[Aa2,Aa4];
-  Aa5-Aa4=Aa1-Aa2;
-  Aa6-Aa3=Aa1-Aa2;
-  pair Bb[];
-  Bb1=Aa1 xscaled0.7 yscaled 0.85;
-  Bb2=Aa2 xscaled0.7 yscaled 0.85;
-  Bb4=Aa4 xscaled0.7 yscaled 0.85;
-  Bb5=Aa5 xscaled0.7 yscaled 0.85;
-  Bb3=1/2[Bb2,Bb4];
-  Bb6=1/2[Bb1,Bb5];
-  Bb7=1/2[Bb6,Bb3]+(0,4);
-  Bb8=1/2[Bb6,Bb3]-(0,6);
-  pair Cc[];
-  Cc1=u*(0.4,-0.85)+(0,-1);
-  ecarth:=1.5;
-  ecartv:=0.05;
-  path ASegment[];
-  ASegment[1]=1/10[Bb1,Bb2]--9/10[Bb1,Bb2];
-  ASegment[2]=1/10[Bb2,Bb3]--9/10[Bb2,Bb3];
-  ASegment[3]=1/10[Bb3,Bb4]--9/10[Bb3,Bb4];
-  ASegment[4]=1/10[Bb4,Bb5]--9/10[Bb4,Bb5];
-  ASegment[5]=1/10[Bb5,Bb6]--9/10[Bb5,Bb6];
-  ASegment[6]=1/10[Bb6,Bb1]--9/10[Bb6,Bb1];
-  ASegment[7]=1/10[Bb6,Bb3]--9/10[Bb6,Bb3];
-  color fondsegment;
-  fondsegment=0.2[LightSteelBlue,white];
-  save $;
-  picture $;
-  $=image(
-      fill Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
-    draw Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
-    if creux=0:
-      fill (unitsquare scaled 2) shifted Cc1 withcolor fondsegment;
-    else:
-      fill (unitsquare scaled 2) shifted Cc1 withcolor Crimson;
-    fi;
-    if nb=1:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[2];
-      draw ASegment[3];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[1];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[6];
-      draw ASegment[7];
-      drawoptions();
-    fi;
-    if nb=2:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[3];
-      draw ASegment[4];
-      draw ASegment[6];
-      draw ASegment[7];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[2];
-      draw ASegment[5];
-      drawoptions();
-    fi;
-    if nb=3:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[4];
-      draw ASegment[7];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[5];
-      draw ASegment[6];
-      drawoptions();
-    fi;
-    if nb=4:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[5];
-      draw ASegment[7];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[1];
-      draw ASegment[4];
-      draw ASegment[6];
-      drawoptions();
-    fi;
-    if nb=5:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[7];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[3];
-      draw ASegment[6];
-      drawoptions();
-    fi;
-    if nb=6:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[6];
-      draw ASegment[7];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[3];
-      drawoptions();
-    fi;
-    if nb=7:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[4];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[1];
-      draw ASegment[5];
-      draw ASegment[6];
-      draw ASegment[7];
-      drawoptions();
-    fi;
-    if nb=8:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[6];
-      draw ASegment[7];
-      drawoptions();
-    fi;
-    if nb=9:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[7];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[6];
-      drawoptions();
-    fi;
-    if nb=0:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[6];
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[7];
-      drawoptions();
-    fi;
-    if nb=10:
-      drawoptions(withpen pensquare scaled2 withcolor Crimson);
-      fill (unitsquare scaled 2) shifted Bb7 withcolor Crimson;
-      fill (unitsquare scaled 2) shifted Bb8 withcolor Crimson;
-      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
-      draw ASegment[1];
-      draw ASegment[2];
-      draw ASegment[3];
-      draw ASegment[4];
-      draw ASegment[5];
-      draw ASegment[6];
-      draw ASegment[7];
-      drawoptions();
-    fi;
-    );
-  $
-enddef;
-
-endinput;
-  

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatrice.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,201 +0,0 @@
-prologues:=3;
-
-path carre[];
-
-u:=0.5mm;
-
-vardef BlocAffichage=
-  for k=0 upto 34:
-    carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
-  endfor;
-enddef;
-
-vardef Affichage(expr decomp)=
-  save $;
-  picture $;
-  drawoptions(withpen pensquare scaled0.1);
-  $=image(%
-      for k=0 upto 34:
-      if (substring(k,k+1) of decomp)="1":
-	fill carre[k];
-      fi;
-    endfor;
-    );
-  drawoptions();
-  $
-enddef;
-
-nblignes:=0;
-
-boolean print;
-print:=false;
-
-color CouleurEcran;
-CouleurEcran=(107/255,148/255,107/255);
-
-boolean Math;
-Math=true;
-
-decahoriz:=0;
-
-vardef Test(expr cptk,cptnt)=
-  pair decalage;
-  if nblignes mod 2=0:
-    decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
-  else:
-    decalage:=u*(decahoriz,-8*(nblignes-1));
-    decahoriz:=decahoriz+6;
-  fi;
-  if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="e":if Math:
-	draw Affichage("00000000000000000001101000100010100") shifted(decalage);
-	decalage:=u*(decahoriz-1,-8*(nblignes-1));
-	draw Affichage("00000000001001010101101011010110010")  shifted(decalage);
-	decahoriz:=decahoriz+6;
-      else:
-	draw Affichage("00000000000111010001111111000001110") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
-	draw Affichage("00011000011110100001000000000000000") shifted(decalage);
-      else:
-	draw Affichage("00010000000011000010000101001001100") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
-	draw Affichage("11100001000100011100000000000000000") shifted(decalage);
-      else:
-	draw Affichage("10000100001001010100110001010010010") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
-	draw Affichage("11100010000010011100000000000000000") shifted(decalage);
-      else:
-	draw Affichage("01100001000010000100001000010001110") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
-	draw Affichage("00000000001111101010010100101010001") shifted(decalage);
-      else:
-	draw Affichage("00000000000110110011011110000100001") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
-	draw Affichage("00111001000010000100101000110000100") shifted(decalage);	
-      else:
-	draw Affichage("00000000001000110001100010111000100") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
-	draw Affichage("00000000000000000000000000000000000") shifted(decalage);
-      else:
-	draw Affichage("00000011000110000000011000110000000") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
-	  draw Affichage("00000001000000011111000000010000000") shifted(decalage);
-      else:
-	draw Affichage("00000011000110000000011000010001000") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
-    fi;
-enddef;
-
-vardef LCD(text nt)(text rep)(expr NB)=
-  decahoriz:=0;
-  nblignes:=nblignes+1;
-  path Ecran;
-  Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
-  fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  for k=0 upto length(nt)-1:
-    BlocAffichage;
-    Test(k,nt);
-  endfor;
-  for k=1 upto NB:
-    nblignes:=nblignes+1;
-    Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
-    fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-    draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  endfor;
-  nblignes:=nblignes+1;
-  Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
-  fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  for k=0 upto length(rep)-1:
-    BlocAffichage;
-    Test(k,rep);
-  endfor;
-enddef;
-
-endinput;

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,195 +0,0 @@
-prologues:=3;
-
-path carre[];
-
-u:=0.5mm;
-
-vardef BlocAffichage=
-  for k=0 upto 34:
-    carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
-  endfor;
-enddef;
-
-vardef Affichage(expr decomp)=
-  save $;
-  picture $;
-  drawoptions(withpen pensquare scaled0.1);
-  $=image(%
-      for k=0 upto 34:
-      if (substring(k,k+1) of decomp)="1":
-	fill carre[k];
-      fi;
-    endfor;
-    );
-  drawoptions();
-  $
-enddef;
-
-nblignes:=0;
-
-boolean print;
-print:=false;
-
-color CouleurEcran;
-CouleurEcran=(107/255,148/255,107/255);
-
-boolean Math;
-Math=true;
-
-decahoriz:=0;
-
-vardef Test(expr cptk,cptnt)=
-  pair decalage;
-  if nblignes mod 2=0:
-    decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
-  else:
-    decalage:=u*(decahoriz,-8*(nblignes-1));
-    decahoriz:=decahoriz+6;
-  fi;
-  if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="e":if Math:
-	draw Affichage("00000000000000000001101000100010100") shifted(decalage);
-	decalage:=u*(decahoriz-1,-8*(nblignes-1));
-	draw Affichage("00000000001001010101101011010110010")  shifted(decalage);
-	decahoriz:=decahoriz+6;
-      else:
-	draw Affichage("00000000000111010001111111000001110") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
-	draw Affichage("00011000011110100001000000000000000") shifted(decalage);
-      else:
-	draw Affichage("00010000000011000010000101001001100") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
-	draw Affichage("11100001000100011100000000000000000") shifted(decalage);
-      else:
-	draw Affichage("10000100001001010100110001010010010") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
-	draw Affichage("11100010000010011100000000000000000") shifted(decalage);
-      else:
-	draw Affichage("01100001000010000100001000010001110") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
-	draw Affichage("00000000001111101010010100101010001") shifted(decalage);
-      else:
-	draw Affichage("00000000000110110011011110000100001") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
-	draw Affichage("00111001000010000100101000110000100") shifted(decalage);	
-      else:
-	draw Affichage("00000000001000110001100010111000100") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
-	draw Affichage("00000000000000000000000000000000000") shifted(decalage);
-      else:
-	draw Affichage("00000011000110000000011000110000000") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
-	  draw Affichage("00000001000000011111000000010000000") shifted(decalage);
-      else:
-	draw Affichage("00000011000110000000011000010001000") shifted(decalage);
-      fi;
-    elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
-    elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
-    fi;
-enddef;
-
-vardef LCD(text nt)(text rep)=
-  decahoriz:=0;
-  nblignes:=nblignes+1;
-  path Ecran;
-  Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
-  fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  for k=0 upto length(nt)-1:
-    BlocAffichage;
-    Test(k,nt);
-  endfor;
-  nblignes:=nblignes+1;
-  Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
-  fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
-  for k=0 upto length(rep)-1:
-    BlocAffichage;
-    Test(k,rep);
-  endfor;
-enddef;
-
-endinput;

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Constantes.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,20 +0,0 @@
-%Constantes
-u:=1cm;
-v:=(sqrt3)/2;
-pi:=3.141592654;
-e:=2.718281828;
-c:=57.29578; % conversion d'un radian en degres
-color rouge,vert,bleu,jaune,noir,blanc,orange,rose,violet,ciel,cielfonce,orangevif,gris;
-rouge=(1,0,0);
-bleu=(0,0,1);
-noir=(0,0,0);
-blanc=(1,1,1);
-orange=(1,0.5,0);
-violet=blanc-vert;
-rose=(1,0.7,0.7);
-cielfonce=0.9*(0.25,1,1);
-ciel=bleu+vert;
-orangevif=(1,0.25,0.1);
-vert=(0,1,0);
-jaune=rouge+vert;
-gris=0.8*white;

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Geometrie.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,1206 +0,0 @@
-%===============================================
-%% PfC-Geometrie
-%% christophe.poulain at melusine.eu.org
-%%===============================================
-%------------------------------------------------
-% Appel fichier
-%------------------------------------------------
-%input PfC-Constantes;
-%------------------------------------------------
-% La figure (debut et fin) JMS/CP
-%------------------------------------------------
-path feuillet;
-numeric _tfig,_nfig;
-_tfig:=5cm;
-_nfig:=0;
-pair coinbg,coinbd,coinhd,coinhg;
-
-string typetrace;
-typetrace="normal";
-
-def feuille(expr xa,ya,xb,yb) =
-  feuillet := (xa,ya)--(xa,yb)--(xb,yb)--(xb,ya)--cycle;
-  coinbg := (xa,ya);
-  coinbd := (xb,ya);
-  coinhd := (xb,yb);
-  coinhg := (xa,yb);
-  %modifie le 29.09.04
-  z.so=(xpart(coinbg/1cm),ypart(coinbg/1cm));
-  z.ne=(xpart(coinhd/1cm),ypart(coinhd/1cm));
-  %fin modification
-  extra_endfig := "clip currentpicture to feuillet;" & extra_endfig;
-enddef;
-
-def Figure(expr xa,ya,xb,yb) =
-  feuille(xa,ya,xb,yb);
-  _tfig:= if (xb-xa)>(yb-ya): xb-xa else: yb-ya fi;
-  _tfig:=2*_tfig;
-enddef;
-
-%%-----------------------------------------------
-%% Les marques (JMS)
-%%-----------------------------------------------
-string marque_p;
-marque_p := "non";
-marque_r := 20;
-marque_a := 20;
-marque_s := 5;
-marque_ang := 10;
-m_c := 10 ;%Pour la croix du marquage des points
-
-%------------------------------------------------
-% Les tables
-%------------------------------------------------
-numeric _tn;
-_tn:=0;
-pair _t[];
-color _T[];
-
-%%-----------------------------------------------
-%% Procedures d'affichage
-%%-----------------------------------------------
-def MarquePoint(expr p)=
-  if typetrace="3D":
-    %JMS
-    if marque_p = "plein":
-      fill fullcircle scaled (marque_r/5) shifted Projette(p);
-    elseif marque_p = "creux":
-      fill fullcircle scaled (marque_r/5) shifted (Projette(p)) withcolor white;
-      draw fullcircle scaled (marque_r/5) shifted (Projette(p));
-        %fin JMS
-    elseif marque_p = "croix":
-      draw (Projette(p) shifted (-u/10,u/10))--(Projette(p) shifted (u/10,-u/10));
-      draw (Projette(p) shifted (-u/10,-u/10))--(Projette(p) shifted (u/10,u/10));
-    elseif marque_p = "tiretv":
-      draw (Projette(p) shifted (0,u/10))--(Projette(p) shifted(0,-u/10));
-    elseif marque_p = "tireth":
-      draw (Projette(p) shifted (u/10,0))--(Projette(p) shifted(-u/10,0));
-    fi;
-  else:
-    if marque_p = "plein":
-      fill fullcircle scaled (marque_r/5) shifted p;
-    elseif marque_p = "creux":
-      fill fullcircle scaled (marque_r/5) shifted p withcolor white;
-      draw fullcircle scaled (marque_r/5) shifted p;
-    elseif marque_p = "croix":
-      draw (p shifted (-u/m_c,u/m_c))--(p shifted (u/m_c,-u/m_c));
-      draw (p shifted (-u/m_c,-u/m_c))--(p shifted (u/m_c,u/m_c));
-    elseif marque_p = "tiretv":
-      draw (p shifted (0,u/10))--(p shifted(0,-u/10));
-    elseif marque_p = "tireth":
-      draw (p shifted (u/10,0))--(p shifted(-u/10,0));
-    fi;
-  fi;
-enddef;
-
-vardef pointe(text t) =
-  for p_ = t: if (pair p_) or (color p_): MarquePoint(p_); fi endfor;
-enddef;
-
-%------------------------------------------------
-% Points
-%------------------------------------------------
-%JMS
-vardef iso(text t) =
-  save s,n; numeric n;
-  if typetrace="3D":
-    color s; s := (0,0,0) ; n := 0;
-    for p_ = t: s := s + p_; n := n + 1 ; endfor;
-  else:
-    pair s; s := (0,0) ; n := 0;
-    for p_ = t: s := s + p_; n := n + 1 ; endfor;
-  fi;
-  if n>0: (1/n)*s fi
-enddef;
-
-vardef milieu(expr AA,BB)=
-  save $;
-  pair $;
-  if typetrace="mainlevee":
-    $=point((length segment(AA,BB))*(1/2+(-1+uniformdeviate(2))/10)) of segment(AA,BB)
-  else:
-    $=iso(AA,BB)
-  fi;
-  $
-enddef;
-
-vardef CentreCercleI(expr aa,bb,cc)=
-  save $,a,c;
-  pair $;
-  numeric a,c;
-  a=(angle(aa-cc)-angle(bb-cc))/2;
-  c=(angle(cc-bb)-angle(aa-bb))/2;
-  ($-cc) rotated a shifted cc=whatever[aa,cc];
-  ($-bb) rotated c shifted bb=whatever[bb,cc];
-  $
-enddef;
-
-%------------------------------------------------
-% Cercles
-%------------------------------------------------
-%Cercle connaissant le centre A et le rayon q
-vardef cercle(expr aa, q)=fullcircle scaled (2*q) shifted aa
-enddef;
-%Cercle de centre A et passant par B
-vardef cerclepoint(expr aa,bb)=fullcircle scaled (2*abs(aa-bb)) shifted aa
-enddef;
-%Cercle connaissant le diametre [AB]
-vardef cercledia(expr aa,bb)=cercles(iso(aa,bb),bb)
-  %fullcircle scaled (2*abs(1/2[aa,bb]-bb)) shifted (1/2[aa,bb])
-enddef;
-%Cercles complets
-vardef cercles(text t)=
-  save Cer;
-  save n;
-  n:=0;
-  for p_=t:
-    if pair p_:
-      n:=n+1;
-      _t[n]:=p_;
-    fi
-    if numeric p_:
-      rayon:=p_;
-    fi;
-    if color p_:
-      n:=n+1;
-      _T[n]:=p_;
-    fi;
-  endfor;
-  if typetrace="3D":%centre aa passant par bb dans le plan (ccddee) généralement aa=cc
-    path Cer;
-    color ptcer[];
-    for k=0 step 5 until 360 :
-      ptcer[k div 5]-_T[1]=Distance(_T[1],_T[2])*((_T[4]-_T[3])*cosd(k)/Distance(_T[3],_T[4])+(_T[5]-_T[3])*sind(k)/Distance(_T[3],_T[5]));
-    endfor;
-    Cer=Projette(ptcer0)
-      for k=0 step 5 until 360 :
-      ..Projette(ptcer[k div 5])
-    endfor
-    ..cycle;
-  else:
-    path Cer;
-    if n=1 : Cer=fullcircle scaled (2*rayon) shifted _t[1];
-    elseif n=2 : Cer=fullcircle scaled (2*abs(_t[1]-_t[2])) shifted _t[1];
-    elseif n=3 : Cer=cercles(CentreCercleC(_t[1],_t[2],_t[3]),_t[1]);
-    fi
-  fi
-  Cer
-enddef;
-
-%Point particulier sur le cercle
-vardef pointarc(expr cercla,angle)=
-  point(arctime((angle/360)*arclength cercla) of cercla) of cercla
-enddef;
-
-%Arc de cercle AB de centre 0(dans le sens direct) : les points A et B doivent etre sur le cercle.
-vardef arccercle(expr aa,bb,oo)=
-  path tempo;
-  path arc;
-  tempo=fullcircle scaled (2*abs(aa-oo)) shifted oo;
-  if (angle(aa-oo)=0) or (angle(aa-oo)>0) :
-    if (angle(bb-oo)=0) or (angle(bb-oo)>0):
-      if (angle(aa-oo)<angle(bb-oo)):
-	arc=subpath(angle(aa-oo)*(length tempo)/360,angle(bb-oo)*(length tempo)/360) of tempo;
-      else:
-	arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
-      fi;
-    elseif (angle(bb-oo)<0):
-      arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
-    fi;
-  elseif (angle(aa-oo)<0):
-    if (angle(bb-oo)=0) or (angle(bb-oo)>0):
-      arc=subpath(length tempo+angle(aa-oo)*(length tempo)/360,length tempo+angle(bb-oo)*(length tempo)/360) of tempo;
-    elseif (angle(bb-oo)<0):
-      if (angle(aa-oo)=angle(bb-oo)) or (angle(aa-oo)<angle(bb-oo)):
-	arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
-      else:
-	arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,2*(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
-      fi;
-    fi;
-  fi;
-  arc
-enddef;
-
-vardef coupdecompas(expr ab,ac,ad)=arccercle(pointarc(cercles(ab,ac),angle(ac-ab)-ad),pointarc(cercles(ab,ac),angle(ac-ab)+ad),ab)
-enddef;
-
-%------------------------------------------------
-% Procedures de codage
-%------------------------------------------------
-%Codage de l'angle droit de sommet B
-vardef codeperp(expr aa,bb,cc,m)=%normalement m=5
-  save codep;
-  path codep;
-  if typetrace="3D":
-    codep=(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb))+m*unitvector(Projette(cc)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(cc)-Projette(bb)));
-  else:
-    codep=(bb+m*unitvector(aa-bb))--(bb+m*unitvector(aa-bb)+m*unitvector(cc-bb))--(bb+m*unitvector(cc-bb));
-  fi;
-  codep
-enddef;
-
-%Codage d'un milieu
-vardef codemil(expr AA,BB, n) =%extremites-angle de codage
-  save $,a,b,c,d;
-  path $;
-  pair a,b,c,d;
-  a=1/2[AA,BB];
-  b=(a+marque_s*unitvector(BB-AA))-(a-marque_s*unitvector(BB-AA));
-  c=b rotated n shifted a;
-  d=2[c,a];
-  $=c--d;
-  $
-enddef;
-%Codage de deux segments egaux
-vardef codesegments(expr aa,bb,cc,dd,n)=%extremites des segments(4)-type de codage
-  save $,v,w;
-  picture $;
-  pair AA,BB,CC,DD;
-  $=image(
-    if typetrace="3D":
-      AA=Projette(aa);      BB=Projette(bb);      CC=Projette(cc);      DD=Projette(dd);
-    else:
-      AA=aa;BB=bb;CC=cc;DD=dd;
-    fi;
-    if n=5 :
-      draw fullcircle scaled 0.1cm shifted (1/2[AA,BB]);
-      draw fullcircle scaled 0.1cm shifted (1/2[CC,DD]);
-    elseif n=4 :
-      pair v,w;
-      v=1/2[AA,BB];
-      w=1/2[CC,DD];
-      draw codemil(AA,BB,60);
-      draw codemil(AA,BB,120);
-      draw codemil(CC,DD,60);
-      draw codemil(CC,DD,120);
-    elseif n=3 :
-      draw codemil(AA,BB,60);
-      draw codemil(AA,BB,60) shifted (2*unitvector(AA-BB));
-      draw codemil(AA,BB,60) shifted (2*unitvector(BB-AA));
-      draw codemil(CC,DD,60);
-      draw codemil(CC,DD,60) shifted (2*unitvector(CC-DD));
-      draw codemil(CC,DD,60) shifted (2*unitvector(DD-CC));
-    elseif n=2 :
-      draw codemil(AA,BB,60) shifted unitvector(AA-BB);
-      draw codemil(AA,BB,60) shifted unitvector(BB-AA);
-      draw codemil(CC,DD,60) shifted unitvector(CC-DD);
-      draw codemil(CC,DD,60) shifted unitvector(DD-CC);
-    elseif n=1 :
-      draw codemil(AA,BB,60);
-      draw codemil(CC,DD,60);
-    fi;
-    );
-    $
-  enddef;
-
-%Codage de plusieurs segments de meme longueur
-  vardef Codelongueur(text t)=
-  save result;
-  picture result;
-  pair tt[];
-  k:=0;
-  for p_=t:
-    if pair p_:
-      k:=k+1;
-      tt[k]=p_;
-    elseif color p_:
-      k:=k+1;
-      tt[k]=Projette(p_);
-    elseif numeric p_:
-      co:=p_;
-    fi;
-  endfor;
-  result=image(
-    if co=5:
-      for j=1 upto (k div 2):
-	draw fullcircle scaled 0.1cm shifted (1/2[tt[2*j-1],tt[2*j]]);
-      endfor;
-    elseif co=4:
-      for j=1 upto (k div 2):
-	draw codemil(tt[2*j-1],tt[2*j],60);
-	draw codemil(tt[2*j-1],tt[2*j],120);
-      endfor;
-    elseif co=3:
-      for j=1 upto (k div 2):
-	draw codemil(tt[2*j-1],tt[2*j],60);
-	draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j-1]-tt[2*j]));
-	draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j]-tt[2*j-1]));
-      endfor;
-    elseif co=2:
-      for j=1 upto (k div 2):
-	draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j-1]-tt[2*j]);
-	draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j]-tt[2*j-1]);
-      endfor;
-    elseif co=1:
-      for j=1 upto (k div 2):
-	draw codemil(tt[2*j-1],tt[2*j],60);
-      endfor;
-    fi;
-    );
-  result
-enddef;
-
-%Codage de l'angle abc non oriente (mais donne dans le sens direct) n fois avec des mesures differentes
-vardef codeangle@#(expr aa,bb,cc,nb,nom)=
-  save s,p,$;
-  path p;
-  picture $;
-  $=image(
-    trace marqueangle(aa,bb,cc,nb);
-    label.@#(nom,w);
-    );
-  $
-enddef;
-
-vardef Marqueangle(expr aa,bb,mark)=%codage d'un angle forme par les demi-droites aa et bb dans le sens direct avec la marque mark
-  save $;
-  picture $;
-  path conf,rr;
-  pair w,tangent;
-  numeric t,tt;
-  conf=fullcircle scaled (2*marque_a) shifted (aa intersectionpoint bb);
-  numeric te;
-  te=angle((conf intersectionpoint aa)-(aa intersectionpoint bb));
-  rr=(conf intersectionpoint aa){dir(90+angle((conf intersectionpoint aa)-(aa intersectionpoint bb)))}..(conf intersectionpoint bb);
-  t=length rr/2;
-  w=point(t) of rr;
-  tangent=unitvector(direction t of rr);
-  $=image(
-    trace rr;
-    if mark=1:
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
-    elseif mark=2:
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted tangent;
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-tangent);
-    elseif mark=3:
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(1.5*tangent);
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-1.5*tangent);
-    elseif mark=4:
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,45);
-      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,-45);
-    fi;
-    );
-  $
-enddef;
-
-vardef marqueangle(expr aa,bb,cc,mark)=%codage d'un angle de sommet bb dans le sens direct par la marque mark.
-  save $;
-  picture $;
-  path conf,rr;
-  pair w,tangent;
-  numeric t;
-  if typetrace="mainlevee":
-    conf=fullcircle scaled (2*marque_a) shifted bb;
-    rr=(conf intersectionpoint demidroite(bb,aa)){dir(90+angle(aa-bb))}..(conf intersectionpoint demidroite(bb,cc));
-    w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
-    t=length rr/2;
-    tangent=unitvector(direction t of rr);
-    $=image(
-	trace rr;
-      if mark=1:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
-      elseif mark=2:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
-      elseif mark=3:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
-      elseif mark=4:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
-      fi;
-      );
-  else:
-    rr=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb);
-    w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
-    t=length rr/2;
-    tangent=unitvector(direction t of rr);
-    $=image(
-	if mark=5:
-	drawarrow rr;
-      else:
-	trace rr;
-      fi;
-      if mark=1:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
-      elseif mark=2:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
-      elseif mark=3:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
-      elseif mark=4:
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
-	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
-      fi;
-      );
-  fi;
-  $
-enddef;
-
-vardef coloreangle(expr aa,bb,cc)=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb)--bb--cycle
-enddef;
-
-vardef Codeangle(expr aa,bb,cc,nb,nom)=
-  save s,p,$;
-  path p;
-  picture $;
-  $=image(
-    trace marqueangle(aa,bb,cc,nb);
-    label(nom,w shifted(marque_ang*unitvector(w-bb)));
-    );
-  $
-enddef;
-
-vardef marquesegment(expr aa,bb)=
-  save tr;
-  picture tr;
-  if typetrace="3D":
-    tr=image(%
-	typetrace:="normal";
-      trace rotation(segment(Projette(aa)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(aa)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(aa),90);
-      trace rotation(segment(Projette(bb)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(bb)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(bb),90);
-      typetrace:="3D";
-      );
-  else:
-    tr=image(%
-	trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
-      trace rotation(segment(bb-marque_s*unitvector(bb-aa),bb+marque_s*unitvector(bb-aa)),bb,90);
-      );
-  fi;
-  tr
-enddef;
-
-vardef marquedemidroite(expr aa,bb)=
-  save tr;
-  picture tr;
-  tr=image(
-    trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
-    );
-  tr
-enddef;
-
-%------------------------------------------------
-% Transformations
-%------------------------------------------------
-vardef projection(expr m,a,b) =
-  save h; pair h;
-  h - m = whatever * (b-a) rotated 90;
-  h = whatever [a,b];
-  if typetrace="mainlevee":
-    h:=h shifted((-2+uniformdeviate(4))*unitvector(a-b))
-  fi;
-  h
-enddef;
-  
-vardef homothetie(expr objet,CTR,rapport)=
-  ((objet shifted (-CTR)) scaled rapport) shifted CTR
-enddef;
-
-vardef rotation(expr p,c,a)=
-  p rotatedaround(c,a)
-enddef;
-
-vardef symetrie(expr x)(text t)=
-  save n;
-  n:=0;
-  for p_=t: if pair p_:
-      n:=n+1;
-      _t[n]:=p_;
-    elseif color p_:
-      n:=n+1;
-      _T[n]:=p_;
-    fi;
-  endfor;
-  if n=1:
-    if typetrace="3D":
-      2[x,_T[1]]
-    else:
-      rotation(x,_t[1],180)
-    fi
-  elseif n=2:
-    x reflectedabout(_t[1],_t[2])
-  elseif n=3:%Par rapport a un plan
-    2[x,ProjectionsurPlan(x,_T[1],_T[2],_T[3])]
-  fi
-enddef;
-
-%------------------------------------------------
-% Droites
-%------------------------------------------------
-vardef segment(expr aa,bb)=
-  save Seg;
-  path Seg;
-  if typetrace="mainlevee":
-    Seg=aa{dir(angle(bb-aa)+5)}..bb{dir(angle(bb-aa)+5)}
-  elseif typetrace="3D":
-    Seg=Projette(aa)--Projette(bb)
-  else:
-    Seg=aa--bb
-  fi;
-  Seg
-enddef;
-
-vardef droite(expr AA,BB)=
-  save Dro;
-  path Dro;
-  if typetrace="mainlevee":
-    Dro=(_tfig/abs(AA-BB))[BB,AA]{dir(angle(BB-AA)+10)}..segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
-  elseif typetrace="3D":
-    Dro=(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(BB),Projette(AA)]--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
-  else:
-    Dro=(_tfig/abs(AA-BB))[BB,AA]--(_tfig/abs(AA-BB))[AA,BB]
-  fi;
-  Dro
-enddef;
-vardef demidroite(expr AA,BB)=
-  save Dem;
-  path Dem;
-  if typetrace="mainlevee":
-    Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
-  elseif typetrace="3D":
-    Dem=Projette(AA)--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
-  else:
-    Dem=AA--(_tfig/abs(AA-BB))[AA,BB]
-  fi;
-  Dem
-enddef;
-
-vardef bissectrice(expr AA,BB,CC)=
-  save $;
-  path $;
-  if typetrace="mainlevee":
-    $=rotation(demidroite(BB,CentreCercleI(AA,BB,CC)),BB,-5+uniformdeviate(10))
-  else:
-    $=demidroite(BB,CentreCercleI(AA,BB,CC))
-  fi;
-  $
-enddef;
-
-vardef mediatrice(expr AA,BB)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90))
-enddef;
-%main levee : passer par la perpendiculaire passant par le milieu.
-
-vardef perpendiculaire(expr AA,BB,II)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90)) shifted (II-iso(AA,BB))
-enddef;
-
-vardef parallele(expr AA,BB,II)=droite(AA,BB) shifted (II-(projection(II,AA,BB)))
-enddef;
-
-%%%%%%%%%%
-%Polygone/Ligne brisée
-%%%%%%%%%
-vardef polygone(text t)=
-  pair aaa[];
-  j:=0;
-  for p_=t: if pair p_:
-      j:=j+1;
-      aaa[j]=p_;
-    elseif color p_:
-      j:=j+1;
-      aaa[j]=Projette(p_);
-    fi;
-  endfor;
-  aaa[j+1]:=aaa[1];
-  save $;
-  path $;
-  $=aaa1--
-    for k=2 upto j:
-    aaa[k]--
-  endfor
-  cycle;
-  $
-enddef;
-
-vardef chemin(text t)=
-  pair aaa[];
-  j:=0;
-  for p_=t: if pair p_:
-      j:=j+1;
-      aaa[j]=p_;
-    elseif color p_:
-      j:=j+1;
-      aaa[j]=Projette(p_);
-    fi;
-  endfor;
-  if typetrace="mainlevee":
-    save $;
-    picture $;
-    $=image(
-      for k=1 upto (j-1):
-	trace segment(aaa[k],aaa[k+1]);
-      endfor;
-      );
-  else:
-    save $;
-    path $;
-    $=aaa1
-    for k=2 upto j:
-      --aaa[k]
-    endfor;
-  fi;
-  $
-enddef;
-
-%------------------------------------------------
-%Sucres
-%------------------------------------------------
-vardef hachurage(expr chemin, angle, ecart, trace)=
-  save $;
-  picture $;
-  path support;
-  support=((u*(-37,0))--(u*(37,0))) rotated angle;
-  if trace=1:
-    drawoptions(dashed evenly);
-  elseif trace=2:
-    drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
-  elseif trace=3:
-    drawoptions(dashed withdots);
-  fi;
-  $ = image(
-    for j=-200 upto 200:
-      if ((support shifted (ecart*j*(u,0))) intersectiontimes chemin)<>(-1,-1):
-	draw support shifted (ecart*j*(u,0));
-      fi
-    endfor;
-    );
-  clip $ to chemin;
-  drawoptions();
-  $
-enddef;
-%fleche pour coter un segment [AB] (Jacques Marot)
-vardef cotation(expr aa,bb,ecart,decalage,cote)=
-  pair m[] ;
-  save $;
-  picture $;
-  m3=unitvector(bb-aa) rotated 90;
-  m1=aa+ecart*m3;
-  m2=bb+ecart*m3;
-  $=image(
-    pickup pencircle scaled 0.2bp;
-    drawdblarrow m1--m2 ;
-    draw aa--m1 dashed evenly;
-    draw bb--m2 dashed evenly;
-    label(cote rotated angle(m2-m1),(m1+m2)/2+decalage*m3);
-    );
-  $
-enddef;
-
-vardef appelation(expr aa,bb,decalage,cote)=
-  save $;
-  pair m[],AA,BB;
-  if color aa:
-    AA=Projette(aa);
-  else:
-    AA=aa;
-  fi;
-  if color bb:
-    BB=Projette(bb);
-  else:
-    BB=bb;
-  fi;
-  m3=unitvector(BB-AA) rotated 90;
-  picture $;
-  $=image(
-    label(cote rotated angle(BB-AA),(BB+AA)/2+decalage*m3);
-    );
-  $
-enddef;
-
-vardef cotationmil(expr aa,bb,ecart,decalage,cote)= %Christophe
-  pair m[],AA,BB;
-  save $;
-  picture cot;
-   if color aa:
-    AA=Projette(aa)
-  else:
-    AA=aa
-  fi;
-  if color bb:
-    BB=Projette(bb)
-  else:
-    BB=bb
-  fi;
-  m3=unitvector(BB-AA) rotated 90;
-  m1=AA+ecart*m3;
-  m2=BB+ecart*m3;
-  cot=image(
-    pickup pencircle scaled 0.2bp;
-    drawarrow (1/2[m1,m2]+decalage*unitvector(m1-m2))--m1;
-    drawarrow (1/2[m1,m2]-decalage*unitvector(m1-m2))--m2;
-    draw AA--m1 dashed evenly;
-    draw BB--m2 dashed evenly;
-    label(cote rotated angle(m2-m1),(m1+m2)/2);
-    );
-  cot
-enddef;
-
-%%%%%%%%%%
-%francisation
-%%%%%%%%%
-def trace expr o =
-    if path o: draw o else: draw o fi
-enddef;
-def remplis expr o =
-    if path o: fill o else: fill o fi
-enddef;
-
-%3D - basé sur donymodule
-color Sommet[];
-
-color Co[];
-Co0=jaune;
-Co1=violet;
-Co2=orange;
-Co3=ciel;
-Co4=vert;
-Co5=bleu;
-Co6=rouge;
-
-string pointilles;
-
-string typerepre;
-typerepre:="proj";
-
-%generalite
-vardef Projette(expr X)=
-  pair $;
-  Xobs := -redpart(X)*Aux1 + greenpart(X)*Aux3;
-  Yobs := -redpart(X)*Aux5 - greenpart(X)*Aux6 + bluepart(X)*Aux4;
-  if typerepre="proj":
-    Zobs := -redpart(X)*Aux7 - greenpart(X)*Aux8 - bluepart(X)*Aux2 + Rho;
-    XProj := DE*Xobs/Zobs;
-    YProj := DE*Yobs/Zobs;
-  elseif typerepre="persp":
-    XProj := DE*Xobs;
-    YProj := DE*Yobs;
-  fi;
-  $=(XProj,YProj);
-  $
-enddef;
-
-vardef Initialisation(expr r,t,p,d)=
-  Rho:=r;
-  Theta:=t;
-  Phi:=p;
-  DE:=d;
-  Aux1:=sind(Theta);
-  Aux2:=sind(Phi);
-  Aux3:=cosd(Theta);
-  Aux4:=cosd(Phi);
-  Aux5:=Aux3*Aux2;
-  Aux6:=Aux1*Aux2;
-  Aux7:=Aux3*Aux4;
-  Aux8:=Aux1*Aux4;
-  pointilles:="oui";
-enddef;
-
-%vues cachees
-
-vardef Face(text t)=
-  j:=0;
-  for p_=t :
-    if numeric p_:
-      a[j]:=p_;
-      j:=j+1;
-    fi;
-  endfor;
-  for k=1 upto (j-1):
-    Fc[a0*100+(k-1)]:=a[k];
-  endfor;
-enddef;
-
-vardef Oeil=(Rho*Aux7,Rho*Aux8,Rho*Aux2)
-enddef;
-
-vardef Vision(expr num)=
-  save bb;
-  color bb;
-  bb=(redpart(Oeil-Sommet[num]),greenpart(Oeil-Sommet[num]),bluepart(Oeil-Sommet[num]));  
-  bb
-enddef;
-
-vardef Normal(expr vecun,vecde,vectr)=
-  save aa;
-  color aa;
-  P1:=redpart(vecde-vecun);
-  P2:=greenpart(vecde-vecun);
-  P3:=bluepart(vecde-vecun);
-  Q1:=redpart(vectr-vecun);
-  Q2:=greenpart(vectr-vecun);
-  Q3:=bluepart(vectr-vecun);
-  aa=(P2*Q3-Q2*P3,P3*Q1-Q3*P1,P1*Q2-Q1*P2);
-  aa
-enddef;
-
-vardef ProduitScalaire(expr wec,mor)=
-  redpart(wec)*redpart(mor)+greenpart(wec)*greenpart(mor)+bluepart(wec)*bluepart(mor)
-enddef;
-
-vardef Distance(expr aa,bb)=%Entre deux points
-  sqrt((redpart(bb)-redpart(aa))*(redpart(bb)-redpart(aa))+(greenpart(bb)-greenpart(aa))*(greenpart(bb)-greenpart(aa))+(bluepart(bb)-bluepart(aa))*(bluepart(bb)-bluepart(aa)))
-enddef;
-
-vardef Module(expr aa)=%module d'un vecteur
-sqrt((redpart(aa))**2+(greenpart(aa))**2+(bluepart(aa)**2))
-enddef;
-
-color CoulTrace;
-CoulTrace=black;
-
-vardef DessineObjet=
-  for l=1 upto NF:
-    color cc,dd;
-    dd=Vision(Fc[l*100+1]);
-    cc=Normal(Sommet[Fc[l*100+1]],Sommet[Fc[l*100+2]],Sommet[Fc[l*100+3]]);
-    if (ProduitScalaire(dd,cc)<0):
-      if pointilles="oui":
-	drawoptions(dashed dashpattern(on3pt off6pt) withcolor CoulTrace);
-	trace for k=1 upto Fc[100*l]:
-	  Projette(Sommet[Fc[100*l+k]])--
-	endfor
-	cycle;
-      fi;
-    else:
-      trace for k=1 upto Fc[100*l]:
-	Projette(Sommet[Fc[100*l+k]])--
-      endfor
-      cycle withcolor CoulTrace;
-    fi;
-    drawoptions();
-  endfor;
-enddef;
-
-%%Transformations
-
-%Translations
-
-vardef TranslateSommets(expr v)=
-  for k=1 upto NbS:
-    Sommet[k]:=Sommet[k]+v;
-  endfor;
-enddef;
-
-vardef SymetriePlanZ(expr vv)=
-  for k=1 upto NbS:
-    w:=vv-bluepart(Sommet[k]);
-    Sommet[k]:=(redpart(Sommet[k]),greenpart(Sommet[k]),w);
-  endfor;
-enddef;
-
-vardef IntersectionDroite(expr aa,bb,cc,dd)=
-  save tt;
-  color tt;
-  tt=whatever[aa,bb];
-  tt=whatever[cc,dd];
-  tt
-enddef;
-
-%%denis Roegel----------
-vardef Intersectionplandroite(expr aa,bb,cc,dd,ee)=
-  save int;
-  boolean int;
-  color gg,caaa[];
-  caaa3=Normal(aa,bb,cc)/Module(Normal(aa,bb,cc));
-  caaa1=aa-dd;
-  caaa2=ee-dd;
-  if ProduitScalaire(caaa2,caaa3)<>0:
-    caaa4=caaa2*(ProduitScalaire(caaa1,caaa3)/ProduitScalaire(caaa2,caaa3));
-    int:=true;
-  else: % the line is parallel to the plane
-    int:=false;
-  fi;
-  int
-enddef;
-
-vardef IntersectionPlanDroite(expr aa,bb,cc,dd,ee)=%plan (aa,bb,cc) droite(dd,ee)
-  if Intersectionplandroite(aa,bb,cc,dd,ee):
-    gg=dd+caaa4;
-  fi;
-  gg
-enddef;
-
-vardef ProjectionsurPlan(expr aa,bb,cc,dd)=%Projection du point aa sur le plan (bbccdd)
-  save di,vc;
-  color va,vb,vc;
-  va=Normal(bb,cc,dd)/Module(Normal(bb,cc,dd));
-  vb=aa-bb;
-  di=-ProduitScalaire(vb,va);
-  va:=di*va;
-  vb:=vb+va;
-  vc=bb+vb;
-  vc
-enddef;
-
-vardef Intersectionplanplan(expr AA,BB,CC,DD,EE,FF)=%besoin pour la suite
-  color trial[];
-  path INTer;
-  if Intersectionplandroite(DD,EE,FF,AA,BB):
-    trial1=IntersectionPlanDroite(DD,EE,FF,AA,BB);
-  else:% there is no intersection or the intersection is the line
-    trial1=IntersectionPlanDroite(DD,EE,FF,AA,1/2[BB,CC]);
-  fi;
-  if Intersectionplandroite(DD,EE,FF,AA,CC):
-    trial2=IntersectionPlanDroite(DD,EE,FF,AA,CC);
-  else:% there is no intersection or the intersection is the line
-    trial2=IntersectionPlanDroite(DD,EE,FF,CC,1/2[BB,AA]);%modif de cp
-  fi;
-  %INTer=segment(10[trial1,trial2],10[trial2,trial1]);
-  INTer=droite(trial1,trial2);
-  INTer
-enddef;
-
-vardef IntersectionPlanPlan(expr aa,bb,cc,dd,ee,ff)=
-  %a verifier
-  save da,db,dc,int,INTER;
-  boolean int;
-  path INTER;
-  da=Module(aa-ProjectionsurPlan(aa,dd,ee,ff));
-  %show da;
-  db=Module(bb-ProjectionsurPlan(bb,dd,ee,ff));
-  %show db;
-  dc=Module(cc-ProjectionsurPlan(cc,dd,ee,ff));
-  %show dc;
-  if (da=db) and (db=dc): % the two planes are parallel
-    int:=false;
-  else:
-    int:=true;
-    if (da=db):
-      INTER=droite(aa,bb);
-    elseif (db=dc):
-      INTER=droite(bb,cc);
-    elseif (dc=da):
-      INTER=droite(cc,aa);
-    elseif (da>=db) and (da>=dc):
-      INTER=Intersectionplanplan(aa,bb,cc,dd,ee,ff);
-    elseif (db>=da) and (db>=dc):
-      INTER=Intersectionplanplan(bb,cc,aa,dd,ee,ff);
-    elseif (dc>=da) and (dc>=db):
-      INTER=Intersectionplanplan(cc,aa,bb,dd,ee,ff);
-    fi;
-  fi;
-  INTER
-enddef;
-%%---------------------
-
-%Cube
-numeric arete;
-arete=1;
-
-vardef Cube(text t)=
-  picture cub;
-  cub=image(
-  NbS:=8;
-  Sommet1:=(arete,0,0);
-  Sommet2:=(arete,arete,0);
-  Sommet3:=(0,arete,0);
-  Sommet4:=(0,0,0);
-  Sommet5:=(0,0,arete);
-  Sommet6:=(arete,0,arete);
-  Sommet7:=(arete,arete,arete);
-  Sommet8:=(0,arete,arete);
-%%Faces
-  NF:=6;
-  Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
-  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
-  Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
-  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
-  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
-  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
-  DessineObjet;
-  k:=1;
-  for p_=t:
-    if color p_:
-      p_=Sommet[k];
-      k:=k+1;
-    fi
-  endfor;
-  );
-cub
-enddef;
-
-vardef cube=
-  typetrace:="3D";
-  typerepre:="persp";
-  Initialisation(1500,30,20,100);
-  picture cub;
-  cub=image(
-      NbS:=8;
-    Sommet1:=(arete,0,0);
-    Sommet2:=(arete,arete,0);
-    Sommet3:=(0,arete,0);
-    Sommet4:=(0,0,0);
-    Sommet5:=(0,0,arete);
-    Sommet6:=(arete,0,arete);
-    Sommet7:=(arete,arete,arete);
-    Sommet8:=(0,arete,arete);
-%%Faces
-    NF:=6;
-    Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
-    Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
-    Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
-    Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
-    Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
-    Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
-    DessineObjet;
-    );
-  cub
-enddef;
-
-%Cube
-vardef Paveh(text t)=
-  picture paveh;
-  paveh=image(
-  NbS:=8;
-  Sommet1:=(0.75,0,0);
-  Sommet2:=(0.75,1.5,0);
-  Sommet3:=(0,1.5,0);
-  Sommet4:=(0,0,0);
-  Sommet5:=(0,0,1);
-  Sommet6:=(0.75,0,1);
-  Sommet7:=(0.75,1.5,1);
-  Sommet8:=(0,1.5,1);
-%%Faces
-  NF:=6;
-  Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
-  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
-  Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
-  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
-  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
-  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
-  DessineObjet;
-  k:=1;
-  for p_=t:
-    if color p_:
-      p_=Sommet[k];
-      k:=k+1;
-    fi
-  endfor;
-  );
-paveh
-enddef;
-
-%Cube
-vardef Pavev(text t)=
-  picture pavev;
-  pavev=image(
-  NbS:=8;
-  Sommet1:=(1,0,0);
-  Sommet2:=(1,0.75,0);
-  Sommet3:=(0,0.75,0);
-  Sommet4:=(0,0,0);
-  Sommet5:=(0,0,1.5);
-  Sommet6:=(1,0,1.5);
-  Sommet7:=(1,0.75,1.5);
-  Sommet8:=(0,0.75,1.5);
-%%Faces
-  NF:=6;
-  Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
-  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
-  Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
-  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
-  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
-  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
-  DessineObjet;
-  k:=1;
-  for p_=t:
-    if color p_:
-      p_=Sommet[k];
-      k:=k+1;
-    fi
-  endfor;
-  );
-pavev
-enddef;
-
-vardef Pave(text t)(expr aa,bb,cc)=
-  picture pave;
-  pave=image(
-  NbS:=8;
-  Sommet1:=(aa,0,0);
-  Sommet2:=(aa,bb,0);
-  Sommet3:=(0,bb,0);
-  Sommet4:=(0,0,0);
-  Sommet5:=(0,0,cc);
-  Sommet6:=(aa,0,cc);
-  Sommet7:=(aa,bb,cc);
-  Sommet8:=(0,bb,cc);
-%%Faces
-  NF:=6;
-  Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
-  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
-  Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
-  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
-  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
-  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
-  DessineObjet;
-  k:=1;
-  for p_=t:
-    if color p_:
-      p_=Sommet[k];
-      k:=k+1;
-    fi
-  endfor;
-  );
-pave
-enddef;
-
-vardef pave(expr aa,bb,cc)=
-  typetrace:="3D";
-  typerepre:="persp";
-  Initialisation(1500,30,20,100);
-  picture PAVE;
-  PAVE=image(
-      NbS:=8;
-    Sommet1:=(aa,0,0);
-    Sommet2:=(aa,bb,0);
-    Sommet3:=(0,bb,0);
-    Sommet4:=(0,0,0);
-    Sommet5:=(0,0,cc);
-    Sommet6:=(aa,0,cc);
-    Sommet7:=(aa,bb,cc);
-    Sommet8:=(0,bb,cc);
-%%Faces
-    NF:=6;
-    Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
-    Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
-    Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
-    Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
-    Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
-    Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
-    DessineObjet;
-    );
-  PAVE
-enddef;
-
-vardef Tetraedrer(text t)=
-  picture tetrar;
-  tetrar=image(
-    %Sommets
-    NbS:=4;
-    Sommet1:=(0,0,1);
-    Sommet2:=(-0.4714045,-0.8164965,-1/3);
-    Sommet3:=(0.942809,0,-1/3);
-    Sommet4:=(-0.4714045,0.8164965,-1/3);
-    %Faces
-    NF:=4;
-    Fc[100]:=3;Fc[101]:=1;Fc[102]:=2;Fc[103]:=3;
-    Fc[200]:=3;Fc[201]:=1;Fc[202]:=3;Fc[203]:=4;
-    Fc[300]:=3;Fc[301]:=1;Fc[302]:=4;Fc[303]:=2;
-    Fc[400]:=3;Fc[401]:=2;Fc[402]:=4;Fc[403]:=3;
-    DessineObjet;
-    k:=1;
-    for p_=t:
-      if color p_:
-	p_=Sommet[k];
-	k:=k+1;
-      fi
-    endfor;
-    );
-  tetrar
-enddef;
-
-endinput;

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-LaTeX.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,15 +0,0 @@
-vardef LATEX primary s =
-  write "verbatimtex" to "mptextmp.mp";
-  write "%&latex" to "mptextmp.mp";
-  write "\documentclass[]{article}" to "mptextmp.mp";
-  write "\usepackage{ProfCollege}" to "mptextmp.mp";
-  write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
-  write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
-  write "\usepackage{fourier}" to "mptextmp.mp";
-  write "\usepackage[french]{babel}" to "mptextmp.mp";
-  write "\begin{document}" to "mptextmp.mp";
-  write "etex" to "mptextmp.mp";
-  write "btex "&s&" etex" to "mptextmp.mp";
-  write EOF to "mptextmp.mp";
-  scantokens "input mptextmp"
-enddef;

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch-pdf.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,3378 +0,0 @@
-%%%%% epaisseur de tracés %%%%%%%%
-numeric eppen;
-eppen=0.25;
-
-pickup pencircle scaled eppen;
-defaultpen := savepen;
-
-%points pour placer les différents éléments
-pair _coinprec;%coinbasgauche de la boite précédente
-pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
-pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
-
-%paramètres
-numeric Nblignes; Nblignes:=1;
-pair DebutListe; DebutListe=(0,0);
-boolean NumeroteLignes; NumeroteLignes=false;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
-color CoulLignes; CoulLignes:=black;
-color ColBloc; % alias des couleurs de bloc
-
-vardef LATEXSCRATCH primary s =
-  write "verbatimtex" to "mptextmp.mp";
-  write "%&latex" to "mptextmp.mp";
-  write "\documentclass[12pt]{article}" to "mptextmp.mp";
-  write "\usepackage{ProfCollege}" to "mptextmp.mp";
-  write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
-  write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
-  write "\usepackage[sfdefault,lf]{carlito}" to "mptextmp.mp";
-  write "\usepackage{pifont}" to "mptextmp.mp";
-%  write "\usepackage[french]{babel}" to "mptextmp.mp";
-%  write "\usepackage[autolanguage]{numprint}" to "mptextmp.mp";
-%  write "\usepackage{amssymb}" to "mptextmp.mp";
-%  write "\usepackage{amsmath}" to "mptextmp.mp";
-%  write "\usepackage{mathrsfs}" to "mptextmp.mp";
-%  write "\usepackage{xcolor}" to "mptextmp.mp";
-%  write "\usepackage{calc}" to "mptextmp.mp";
-%  write "\newlength{\longbarreheight}" to "mptextmp.mp";
-%  write "\setlength{\longbarreheight}{2.1ex+3pt}" to "mptextmp.mp";
-%  write "\newlength{\longbarredepth}" to "mptextmp.mp";
-%  write "\setlength{\longbarredepth}{0.9ex+3pt}" to "mptextmp.mp";
-%  write "\def\longbarre{\vrule height\longbarreheight depth\longbarredepth width0pt}" to "mptextmp.mp";
-%  write "\usepackage{graphicx}" to "mptextmp.mp";
-%  write "\def\barre{\vrule height2.1ex depth.9ex width0pt}" to "mptextmp.mp";
-%  write "\def\demibarre{\vrule height1.4ex depth.6ex width0pt}" to "mptextmp.mp";
-  write "\begin{document}" to "mptextmp.mp";
-  write "etex" to "mptextmp.mp";
-  write "btex "&s&" etex" to "mptextmp.mp";
-  write EOF to "mptextmp.mp";
-  scantokens "input mptextmp"
-enddef;
-
-
-%Version3
-color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
-BleuMouvTrois=(76/255,151/255,255/255);
-dBleuMouvTrois=(66/255,128/255,215/255);
-VioletAppTrois=(153/255,102/255,255/255);
-dVioletAppTrois=(133/255,92/255,214/255);
-OrangeConTrois=(255/255,171/255,25/255);
-OrangeTrois=(255/255,140/255,26/255);
-OrangeListTrois=(255/255,102/255,26/255);
-SonTrois=(207/255,99/255,207/255);
-DSonTrois=(201/255,79/255,201/255);
-FondSonTrois=(15/255,189/255,140/255);
-EvenementTrois=(255/255,191/255,0);
-MessageTrois=(230/255,172/255,0);
-CapteurTrois=(92/255,177/255,214/255);
-CapFonceTrois=(71/255,168/255,209/255);
-StyloTrois=(15/255,189/255,140/255);
-OvalStyloTrois=(13/255,165/255,122/255);
-BlocTrois=(255/255,102/255,128/255);
-BlocDefTrois=(255/255,77/255,106/255);
-BlocDefLigneTrois=(255/255,51/255,85/255);
-ControleTrois=(255/255,171/255,25/255);
-CloneTrois=(236/255,156/255,19/255);
-FondOvalOp=(89/255,192/255,89/255);
-
-vardef FondOvalAppMenu=
-  save $; color $;
-  $=dVioletAppTrois;
-  $
-enddef;
-
-%%%%Alias
-def Place expr o =
-    if path o: draw o else: draw o fi
-enddef;
-
-%impression
-boolean print;
-print=false;
-
-numeric coefprint;
-coefprint:=0.95;
-
-%texte ou symbole droite gauche
-boolean symbole;
-symbole=true;
-
-%divers
-numeric eb;%ecart boite-texte
-eb:=3pt;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
-ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
-
-vardef Box(text t)=
-  save $; path $;
-  picture ox;
-  ox=image(
-      if string t:
-      string demitt;
-      demitt=t&"\barre";
-      label(LATEXSCRATCH(demitt),(0,0));
-    else:
-      draw t;
-    fi;
-    );
-  $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
-  $
-enddef;
-
-vardef RecBox(text t)=
-  save $; path $; path xo;
-  if string t:
-    string demit;
-    demit=t&"\demibarre";
-    xo=Box(demit);%on crée la boite contenant le texte
-  else:
-    xo=Box(t);
-  fi;
-    $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
-  $
-enddef;
-
-%%%%%%%%%%%%%%
-
-%%%%%%% Boites Ovales %%%%%%%%
-vardef OvalBox(text t)=
-  save $; path $; path xo;
-  if string t:
-    string demit;
-    demit=t&"\barre";
-    xo=Box(demit);%on crée la boite contenant le texte
-  else:
-    xo=Box(t);
-  fi;
-  $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
-  $
-enddef;
-
-vardef OvalVar(expr ar)=
-  save Ovar; picture Ovar;
-  save TAvar; path TAvar;
-  string TTv;
-  TTv=ar&"\barre";
-  TAvar=OvalBox(TTv);
-  Ovar=image(
-      fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
-    draw TAvar if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
-    );
-  Ovar:=Ovar shifted(-center Ovar);
-  Ovar
-enddef;
-
-vardef OvalList(text listelist)=
-  save CList;  picture CList;
-  path TAlist; picture LOCMt;
-  LOCMt=ColleBoxNew(listelist);
-  TAlist=OvalBox(LOCMt);
-  CList=image(
-    fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
-    draw LOCMt;
-    draw TAlist if print=false : withcolor coefprint*white fi;
-    );
-  CList:=CList shifted(-center CList);
-  CList
-enddef;
-
-vardef OvalBloc(expr ar)=
-  save $;  picture $;
-  path tabloc;
-  tabloc=OvalBox(ar);
-  $=image(
-    fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
-    draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
-    label(LATEXSCRATCH("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
-    );
-  $
-enddef;
-
-vardef OvalMiniBox(text t)=
-  save $; path $; path xo;
-  if string t:
-    string demit;
-    demit=t&"\demibarre";
-    xo=Box(demit);%on crée la boite contenant le texte
-  else:
-    xo=Box(t);
-  fi;
-  $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
-  $
-enddef;
-
-vardef DiamondBox(text t)=
-  save $; path $; path xo;
-  xo=Box(t);%on crée la boite contenant le texte
-  $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
-  $
-enddef;
-
-vardef OvalNb(expr ar)=
-  save Onb;  picture Onb;
-  path tanb;
-  tanb=OvalBox(ar);
-  Onb=image(
-    fill tanb withcolor white;
-    draw tanb if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH("\barre "&ar),(0,0));
-    );
-  Onb
-enddef;
-
-vardef OvalText(expr ar)=
-  save $; save TA;
-  picture $;
-  path TA;
-  TA=OvalBox(ar);
-  $=image(%
-    fill TA withcolor white;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH("\barre "&ar),(0,0));
-    );
-    $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef OvalOp(text listeop)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(listeop);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OvalApp(text listop)=
-  save $;  picture $;
-  save ta; path ta;
-  save TTap; picture TTap;
-  TTap=ColleBoxNew(listop);
-  ta=OvalBox(TTap);
-  $=image(
-      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    draw TTap;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef OvalSon(text listop)=
-  save $;  picture $;
-  save ta; path ta;
-  save TTap; picture TTap;
-  TTap=ColleBoxNew(listop);
-  ta=OvalBox(TTap);
-  $=image(
-      fill ta if print=false : withcolor SonTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    draw TTap;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef OvalMusique(expr ar)=
-  save $; save TA;
-  picture $;
-  if string ar:
-    picture TT;
-    TT=ColleBoxNew(DoubleNote,"tempo");
-    path TA;
-    TA=OvalBox(TT);
-    $=image(
-	fill TA if print : withcolor white else : withcolor StyloTrois fi;
-      draw TT if print=true : withcolor coefprint*white fi;
-      );
-  else:
-    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef OvalMouv(expr ar)=
-  save $;  picture $;
-  path ta; string TTm;
-  TTm=ar&"\longbarre";
-  ta=OvalBox(TTm);
-  $=image(
-    fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
-    );
-  $
-enddef;
-
-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";
-  fi;
-  path TAMC;
-  TAMC=OvalBox(TTm);
-  $=image(
-      fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
-    draw TAMC if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center TAMC);
-    );
-  $
-enddef;
-
-vardef OvalCap(text listecap)=
-  save Cap;  picture Cap;
-  save TAcap; path TAcap;
-  save LOCMcap; picture LOCMcap;
-  LOCMcap=ColleBoxNew(listecap);
-  TAcap=OvalBox(LOCMcap);
-  Cap=image(
-    fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
-    draw LOCMcap;
-    draw TAcap if print=false : withcolor coefprint*white fi;
-    );
-  Cap:=Cap shifted(-center Cap);
-  Cap
-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"
-  fi;
-  ta=OvalBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  ta=OvalBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center ta);
-    );
-  $
-enddef;
-
-vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
-
-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";
-  fi;
-  path TA;
-  TA=OvalBox(TTm);
-  $=image(%
-    fill TA if print : withcolor white else : withcolor DSonTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center TA);
-    );
-  $
-enddef;
-
-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";
-  fi;
-  path TA;
-  TA=OvalBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor CloneTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm), center TA);
-    );
-  $
-enddef;
-
-vardef OvalStylo(expr ar)=
-  save $; save TA;
-  picture $;
-  string TT,TTI;
-  if string ar:
-    if print:
-      TT=ar&"\hbox to1em{\barre}\blacktriangledown"
-    else:
-      TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
-    fi;
-    TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
-    path TA;
-    TA=OvalBox(TT);
-    $=image(
-	fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
-      draw TA if print=false : withcolor coefprint*white fi;
-      label(LATEXSCRATCH(TT),(0,0)) if print=false : withcolor white fi;
-      );
-  else:
-    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef OvalCouleur(expr redcc,greencc,bluecc)=
-  save $; picture $;
-  string TTv;
-  path tacol;
-  TTv="\phantom{10}\barre";
-  tacol=OvalBox(TTv);
-  $=image(
-      fill tacol withcolor (redcc,greencc,bluecc);
-    draw tacol;
-    );
-  $:=$ shifted(-center tacol);
-  $
-enddef;
-
-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";
-  fi;
-  path TA;
-  TA=OvalBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor MessageTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm), center TA);
-    );
-  $
-enddef;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
-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"
-  fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor FondOvalOp fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm), center TA);
-    );
-  $
-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;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor SonTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm), center TA);
-    );
-  $
-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";
-  fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center ta);
-    );
-  $
-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";
-    fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor OrangeTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm), center TA);
-    );
-  $
-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";
-  fi;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(LATEXSCRATCH(TTm), center TA);
-    );
-  $
-enddef;
-
-%%%%%%% Affichage Complet %%%%%%%%%%%%%
-vardef PuzzleBox(text t)=
-  save $; path $; path xo;
-  xo=Box(t);%on crée la boite contenant le texte
-  $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
-    (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
-    (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
-    (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
-    (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner xo+(0.625cm,0))--
-    (ulcorner xo+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
-    (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
-  $
-enddef;
-
-vardef BlocPuzzle(text nombloc)=
-  save Bpuzzle; picture Bpuzzle;
-  path TABp;   picture LOCMp;
-  LOCMp=ColleBoxNew(nombloc);
-  TABp=PuzzleBox(LOCMp);
-  Bpuzzle=image(
-    fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
-    draw LOCMp;
-    draw TABp  if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
-    );
-  Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
-  Bpuzzle
-enddef;
-
-vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
-  save Colle; picture Colle;
-  Colle=nullpicture;
-  numeric nbcolle;  nbcolle:=0;
-  save NBCOLLE; path NBCOLLE;
-  for p_ = t:
-    nbcolle:=nbcolle+1;
-  endfor;
-  picture HOLD;  HOLD:=nullpicture;
-  if unknown LONG: LONG:=0 fi;
-  if nbcolle=1:%On dessine
-    for p_ = t:
-      if string p_:
-	NBCOLLE:=Box(p_);
-	HOLD:=image(
-	    label(LATEXSCRATCH("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
-	  );
-	HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
-      else:
-	HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
-      fi;
-    endfor;
-    addto Colle also HOLD;
-    LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
-  else:%il faut coller les boites une à une
-    for p_ = t:
-      addto Colle also (ColleBoxNew(p_));
-    endfor;
-  fi;
-  Colle
-enddef;
-
-vardef CADRE(expr texti)=
-  save $;  path $;
-  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
-    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
-    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
-    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texti+(0.625cm,0))--
-    (ulcorner texti+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
-  $
-enddef;
-
-vardef AFFI(expr texta)=
-  path cadre;
-  cadre=CADRE(texta);
-  picture TEXT;
-  TEXT=image(%
-      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
-    draw texta;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef Affichage(expr textu)=
-  save $;
-  picture $;
-  $=AFFI(textu);
-  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%Pour les blocs de type contrôle
-vardef CADRECONTROLE(expr texti)=
-  save $;  path $;
-  path tracecadre;
-  $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
-    (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
-    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
-    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texti+(0.625cm,0))--
-    (ulcorner texti+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
-  tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
-    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
-    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texti+(0.625cm,0))--
-    (ulcorner texti+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
-    (llcorner texti+(-eb,-eb));
-  $
-enddef;
-
-vardef AFFICONTROLE(expr texta)=
-  path cadre;
-  cadre=CADRECONTROLE(texta);
-  picture TEXT;
-  TEXT=image(
-      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
-    draw texta;
-    draw tracecadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef AffichageControle(expr textu)=
-  save $;
-  picture $;
-  $=AFFICONTROLE(textu);
-  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $+(0.5cm,0);
-_coinprec:=_coinprec+(0,eb);
-coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CADREED(expr texti)=
-  save $; path $;
-  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
-    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
-    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
-    1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
-  $
-enddef;
-
-vardef AFFIED(expr texta)=
-  path cadre;
-  cadre=CADREED(texta);
-  picture TEXT;
-  TEXT=image(
-      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
-    draw texta;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef AffichageED(expr textu)=
-  save $;
-  picture $;
-  $=AFFIED(textu);
-  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%%% section Mouvement %%%%%%%%%%
-vardef Avancer(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
-  else:
-    texto=ColleBoxNew("avancer de",nbpas,"pas");
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Arcdroite=
-  save $;
-  picture $;
-  $=image(
-      path cc;
-    cc=fullcircle scaled 10pt;
-    drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
-    );
-  $
-enddef;
-
-vardef Arcgauche=
-  save $;
-  picture $;
-  $=image(
-      path cc;
-    cc=fullcircle scaled 10pt;
-    drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
-    );
-  $
-enddef;
-
-vardef Tournerd(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
-    fi;
-  else:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
-    fi;
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Tournerg(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
-    fi;
-  else:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
-    fi;
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Orienter(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
-  else:
-    texto=ColleBoxNew("s'orienter à",nbpas);
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Orienterdirection(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
-  else:
-    texto=ColleBoxNew("s'orienter vers",nbpas);
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
-
-vardef Aller(expr xa,ya)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Glisser(expr na,xa,ya)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Allera(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
-    ColBloc:=BleuMouvTrois;
-    $=Affichage(texto);
-  else:
-    message("");
-    message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
-    message("");  
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef Glissera(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string xa:
-    texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-else:
-  message("");
-  message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
-    message("");  
-  $=nullpicture;
-fi;
-  $
-enddef;
-
-vardef Ajouter(expr nba,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string xa:
-    texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-else:
-  message("");
-  message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
-  message("");  
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Mettre(expr xa,nba)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string xa:
-    texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
-    ColBloc:=BleuMouvTrois;
-    $=Affichage(texto);
-  else:
-    message("");
-    message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
-    message("");  
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef Rebondir=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("rebondir si le bord est atteint");
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef FixerSensRotation(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
-    ColBloc:=BleuMouvTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --FixerSensRotation-- admet un seul argument de type string");
-    $=nullpicture;
-  fi;
-  $
-enddef;  
-
-%%%% fin section Mouvement %%%%%%
-
-%%%%% Section Apparence %%%%%%%%%
-vardef DireT(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Dire(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef PenserT(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Penser(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Montrer=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("montrer");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Cacher=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("cacher");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Basculer(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --Basculer-- n'accepte qu'un argument string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
-
-vardef CostumeSuivant=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("costume suivant");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef ARSuivant=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("arrière-plan suivant");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef BasculerAR(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --BasculerAR-- n'accepte qu'un argument string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --BasculerARA-- n'accepte qu'un argument string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef AjouterEffet(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa:
-    texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffet(expr xa,nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa:
-    texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffet=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("annuler les effets graphiques");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef AnnulerEffets=AnnulerEffet enddef;
-
-vardef AjouterTaille(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreA(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTaille(expr art)=MettreA(art) enddef;
-
-vardef AllerPlan(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef DeplacerPlan(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa:
-    texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-%%%%fin Section Apparance%%%%%%%%%%%%
-
-%%%%%% Section Son%%%%%%%%%%%%
-vardef Jouer(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas :
-    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
-    ColBloc:=SonTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef JouerT(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
-    ColBloc:=SonTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef ArreterSon=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("arrêter tous les sons");
-  ColBloc:=SonTrois;;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef ArreterSons=ArreterSon enddef;
-
-vardef AjouterVol(expr xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef MettreVol(expr xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef AjouterEffetSon(expr nombre, effet)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string effet:
-    texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffetSon(expr effet,nombre)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string effet:
-    texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffetSon=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("annuler tous les effets sonores");
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-%Musique
-vardef Tambour(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string na:
-    texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Pause(expr na)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef JouerNote(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef ChoisirInstrument(expr na)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string na:
-    texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
-    ColBloc:=StyloTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef MettreTempo(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
-  ColBloc:=FondSonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef AjouterTempo(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
-ColBloc:=FondSonTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef DoubleNote=
-  save $;
-  picture $;
-  $=image(
-      draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
-      draw NoteImage shifted((-5,-2));
-    draw NoteImage shifted((3.5,2));
-    draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
-);
-  $:=$ shifted(-3,0);
-  $
-enddef;
-
-vardef NoteImage=
-  save $;
-  picture $;
-  $=image(
-      linecap := butt;
-    linejoin := mitered;
-    fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
-      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
-      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
-      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
-      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
-      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
-      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
-      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
-      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
-      --cycle if print=false: withcolor white fi;
-    pickup pencircle scaled 0.797011bp;
-    draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
-      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
-      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
-      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
-      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
-      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
-      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
-      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
-      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
-      --cycle if print=false: withcolor white fi;
-    pickup pencircle scaled eppen;
-    );
-  $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-%%%%%% fin Section Son %%%%%%%%%
-
-%%%%%% Section Stylo %%%%%%%%%
-vardef ImageCrayon=
-  save titi;
-  picture titi;
-  titi=image(%
-      draw CrayonImage shifted(-12,0);
-    draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
-     );
-  titi
-enddef;
-
-vardef Effacer=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"effacer tout");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Estampiller=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"estampiller");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef PoserStylo=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef ReleverStylo=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"relever le stylo");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef MettreCouleur(expr redc,greenc,bluec)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef AjouterCS(text t)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  numeric k; k=0;
-  for p_=t:
-    if k=1:string effet; effet=p_ fi;
-    if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
-    k:=k+1;
-  endfor;
-  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreCS(text t)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  numeric k; k=0;
-  for p_=t:
-    if k=0:string effet; effet=p_ fi;
-    if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
-    k:=k+1;
-  endfor;
-  texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-%taille du stylo
-vardef AjouterTS(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTS(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef CrayonImage=
-  picture cray;
-  cray=image(%
-      drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
-    linecap := butt;
-    linejoin := mitered;
-    fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
-    drawoptions (withcolor (0.349030,0.368640,0.450970));
-    pickup pencircle scaled 0.498140bp;
-    draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
-    drawoptions (withcolor (1.000000,1.000000,1.000000));
-    %pickup pencircle scaled 0.000000bp;
-    fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
-    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
-    pickup pencircle scaled 0.498140bp;
-    draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
-    drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
-    %pickup pencircle scaled 0.000000bp;
-    fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
-    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
-    pickup pencircle scaled 0.498140bp;
-    draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
-    draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
-    %pickup pencircle scaled 0.000000bp;
-    fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
-    fill (6.496090,12.082000)--cycle;
-    pickup pencircle scaled 0.498140bp;
-    draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
-    draw (6.496090,12.082000);
-    drawoptions();
-    pickup pencircle scaled 0bp;
-    draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
-    pickup pencircle scaled eppen;
-    );
-  cray:=cray shifted((0,-9pt));
-  cray
-enddef;
-
-%%%%%% Fin Section Stylo %%%%%%%%
-
-%%%%%% Section Contrôle %%%%%%%%%
-color colControle;
-colControle:=OrangeConTrois;
-
-vardef AffichageStop=
-  path cadre;
-  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
-    (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
-    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texto+(0.625cm,0))--
-    (ulcorner texto+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
-  picture TEXT;
-  TEXT=image(
-      fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-    draw texto;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-pair coindebutbloc[];
-numeric numblocrep;
-numblocrep:=0;
-
-vardef Repeter(expr xa)=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
-LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-ColBloc:=OrangeConTrois;
-$=AffichageControle(texto);
-$
-enddef;
-
-vardef RepeterI=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  texto=ColleBoxNew("répéter indéfiniment");
-  LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-  ColBloc:=OrangeConTrois;
-  $=AffichageControle(texto);
-  $
-enddef;
-
-vardef RepeterJ(expr xa)=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  if picture xa:
-    texto=ColleBoxNew("répéter jusqu'à ce que",xa);
-    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-    ColBloc:=OrangeConTrois;
-    $=AffichageControle(texto);
-  else:
-    message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef FinBlocRepeter=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  _coinprec:=_coinprec-(0.5cm,0);
-  drawoptions();
-  texto=image(
-      labeloffset:=0;
-    label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  labeloffset:=3;
-  );
-path cadre;
-cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
-  (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
-  {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
-  (ulcorner texto+(0.5cm,eb)){dir-90}..
-  {dir0}(ulcorner texto+(0.5cm+eb,0))--
-  (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
-  {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
-  (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
-  {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
-  (urcorner texto+(-eb,0)){dir0}..
-  {dir-90}(urcorner texto+(0,-eb))--
-  (lrcorner texto+(0,eb)){dir-90}..
-  {dir180}(lrcorner texto+(-eb,0))--
-  (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-  {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-  (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-  {dir180}(llcorner texto+(0.125+0.375cm,0))--
-  (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-  {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
-  cycle;
-$=image(
-    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  AA:=ahangle;
-  ahangle:=90;
-  drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
-  ahangle:=AA;
-  draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
-    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
-    (ulcorner texto+(0.5cm,eb)){dir-90}..
-    {dir0}(ulcorner texto+(0.5cm+eb,0))--
-    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
-    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
-    (urcorner texto+(-eb,0)){dir0}..
-    {dir-90}(urcorner texto+(0,-eb))--
-    (lrcorner texto+(0,eb)){dir-90}..
-    {dir180}(lrcorner texto+(-eb,0))--
-    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.375cm,0))--
-    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-    {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
-  );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-vardef FinBlocRepeterI=FinBlocRepeter enddef;
-
-vardef Si(expr xa)=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  if picture xa:
-    texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
-    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-    ColBloc:=OrangeConTrois;
-    $=AffichageControle(texto);
-  else:
-    message("La commande -- Si -- n'admet qu'un argument de type picture.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef FinBlocSi=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  _coinprec:=_coinprec-(0.5cm,0);
-  drawoptions();
-  texto=image(
-      labeloffset:=0;
-    label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  labeloffset:=3;
-  );
-path cadre;
-if BlocStopAvant=false:
-  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
-    (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
-    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
-    (ulcorner texto+(0.5cm,eb)){dir-90}..
-    {dir0}(ulcorner texto+(0.5cm+eb,0))--
-    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
-    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
-    (urcorner texto+(-eb,0)){dir0}..
-    {dir-90}(urcorner texto+(0,-eb))--
-    (lrcorner texto+(0,eb)){dir-90}..
-    {dir180}(lrcorner texto+(-eb,0))--
-    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.375cm,0))--
-    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-    {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
-    cycle;
-else:
-  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
-    (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-    (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-    {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-    (urcorner texto+(-eb,0)){dir0}..
-    {dir-90}(urcorner texto+(0,-eb))--
-    (lrcorner texto+(0,eb)){dir-90}..
-    {dir180}(lrcorner texto+(-eb,0))--
-    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.375cm,0))--
-    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-    {dir90}(llcorner texto+(0.125,0)+(0,eb))--
-    cycle;
-fi;
-$=image(
-    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  if BlocStopAvant=false:
-    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
-      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-      (ulcorner texto+(0.125+0.875cm,0)){dir0}..
-      {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-      (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-      {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-      (urcorner texto+(-eb,0)){dir0}..
-      {dir-90}(urcorner texto+(0,-eb))--
-      (lrcorner texto+(0,eb)){dir-90}..
-      {dir180}(lrcorner texto+(-eb,0))--
-      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.375cm,0))--
-      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
-      (coindebutbloc[numblocrep]+(0.125,0.125))
-       withcolor CoulLignes;
-  else:
-    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-      (urcorner texto+(-eb,0)){dir0}..
-      {dir-90}(urcorner texto+(0,-eb))--
-      (lrcorner texto+(0,eb)){dir-90}..
-      {dir180}(lrcorner texto+(-eb,0))--
-      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.375cm,0))--
-      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
-      (coindebutbloc[numblocrep]+(0.125,0.125))
-      withcolor CoulLignes;
-  fi;
-  );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-boolean BlocStopAvant;
-BlocStopAvant=false;
-
-vardef Sinon=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  _coinprec:=_coinprec-(0.5cm,0);
-  drawoptions();
-  texto=image(
-      labeloffset:=0;
-    label.lrt(LATEXSCRATCH("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
-  labeloffset:=3;
-  );
-  path cadre;
-  if BlocStopAvant=false:
-      cadre=(llcorner texto+(0.125,0))--
-	(coindebutbloc[numblocrep]+(0.125,0.125))--
-	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
-	cycle;
-    else:
-      cadre=(llcorner texto+(0.125,0))--
-	(coindebutbloc[numblocrep]+(0.125,0.125))--
-	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
-	cycle;
-    fi;
-$=image(
-    fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw texto;
-    if BlocStopAvant=false:
-      draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))--
-	(llcorner texto+(0.125+0.5cm+eb,0))
-	 withcolor CoulLignes;
-    else:
-            draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))
-	withcolor CoulLignes;
-    fi;
-    draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
-    );
-  _coinprec:=(llcorner $)+(0.5cm,0);
-  _coinprec:=_coinprec+(0,eb);
-  coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
-  $
-enddef;
-
-vardef Attendre(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
-ColBloc:=OrangeConTrois;
-$=Affichage(texto);
-$
-enddef;
-  
-vardef AttendreJ(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if picture xa:
-    texto=ColleBoxNew("attendre jusqu'à ce que",xa);
-    ColBloc:=OrangeConTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef Stop(expr nbpas)=
-  LONG:=0;
-  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";
-  fi;
-  texto=image(
-      path ti;
-    ti=Box("stop");
-    label(LATEXSCRATCH("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
-    if picture nbpas:
-      picture ta;
-      ta=nbpas;
-      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
-      draw ta;
-      drawoptions();
-    else:
-      path ta;
-      ta=RecBox(TTm);%
-      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
-      if print=false : fill ta withcolor ControleTrois fi;
-      draw ta withcolor 0.95white;
-      label(LATEXSCRATCH(TTm),center ta);
-      drawoptions();
-    fi;
-  );
-$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec;%+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CommencerClone=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand je commence comme un clone");
-  ColBloc:=ControleTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef CreerClone(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
-    ColBloc:=ControleTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- CreerClone -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef SupprimerClone=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      path ti;
-    ti=Box("supprimer ce clone");
-    label(LATEXSCRATCH("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
-    );
-  $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%fin Section Contrôle%%%
-
-%%%%%%%% Section Evenements %%%%%
-vardef Drapeau=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef QPresse(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
-    ColBloc:=EvenementTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QPresse -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef QLutinPresse=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand ce sprite est cliqué");
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef QSpritePresse=QLutinPresse enddef;
-
-vardef QScenePressee=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand la scène est cliquée");
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef QBasculeAR(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
-    ColBloc:=EvenementTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QBasculeAR -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef QVolumeSup(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-else:
-  message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef QRecevoirMessage(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
-    ColBloc:=EvenementTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef EnvoyerMessage(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
-    ColBloc:=EvenementTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef EnvoyerMessageA(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
-    ColBloc:=EvenementTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef DrapeauImage=
-  save $; picture $;
-  $=image(
-      linecap := butt;
-    linejoin := rounded;
-    if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
-    fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
-      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
-      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
-      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
-      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
-      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
-      --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
-      --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
-      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
-      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
-      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
-      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
-      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
-      --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
-%    drawoptions (withcolor (0,0.625,0));
-    fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
-      --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
-      --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
-      --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
-      --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
-      --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
-      --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
-      --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
-      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
-      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
-      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
-      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
-      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
-      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
-      --(78.234398,706.906006)--cycle;
-%    drawoptions (withcolor (0,0.625,0));
-    fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
-      --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
-      --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
-      --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
-      --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
-      --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
-      --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
-      --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
-      --(83.332001,706.440979)--cycle;
-%    drawoptions (withcolor (0,0.625,0));
-%pickup pencircle scaled 0.199253bp;
-    draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
-      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
-      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
-      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
-      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
-      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
-      --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
-      --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
-      --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
-      --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
-      --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
-      --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
-      --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
-      --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
-      --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
-      --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
-      --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
-      --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
-      --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
-      --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
-      --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
-      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
-      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
-      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
-      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
-      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
-      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
-      --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
-      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
-      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
-      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
-      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
-      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
-      --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
-    %pickup pencircle scaled 0.8bp;
-    draw (72.000000,699)--(72.000000,720);
-    drawoptions();
-    );
-  $:=$ rotatedabout((72.000000,699),-15);
-  $
-enddef;
-%%Fin section Evenement%%%
-
-%%%% Section Bloc %%%%
-vardef AffichageBlocDef=
-  path cadre;
-  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
-      (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
-      {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
-      (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
-      {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
-      (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
-      (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
-      (ulcorner texto+(0,2eb)){dir180}..
-      {dir-90}(ulcorner texto+(-eb,eb))--
-      cycle;
-  picture TEXT;
-  TEXT=image(
-    fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
-    draw texto;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef Bloc(text nomblocbloc)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      picture CBbloc;
-    CBbloc=ColleBoxNew(nomblocbloc);
-    draw CBbloc;
-    );
-  ColBloc:=BlocTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef NouveauBloc(text nbpasbloc)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      picture CB;
-    CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
-    draw CB;
-    );
-$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%%% Fin Section Bloc%%%%
-
-%%% Section Divers%%%
-vardef CommandeVide(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  if string commande :
-    texto=image(
-	label.lrt(LATEXSCRATCH("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-    );
-else:
-  texto=commande;
-fi;
-ColBloc:=white;
-$=Affichage(texto);
-$
-enddef;
-
-vardef LigneVide=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  );
-TEXT=image(
-    path cadre;
-  cadre=CADRE(texto);
-  unfill cadre;
-  %draw (urcorner texto+(0,eb))--
-  %  (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
-  %  {dir180}(ulcorner texto+(0.625cm,0))--
-  %  (ulcorner texto+(0.375cm,0)){dir180}..
-  %  {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
-  %  (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LigneVideVar(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  if string texto:
-    texto=image(
-	label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-    );
-else:
-  texto=commande;
-fi;
-TEXT=image(
-    path cadre;
-  cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
-    (llcorner texto+(0.375cm,0)+(-eb,-eb))--
-    (llcorner texto+(0.375cm,0)+(0,-2eb))--
-    (llcorner texto+(0.625cm,0)+(0,-2eb))--
-    (llcorner texto+(0.625cm,0)+(eb,-eb))--
-    (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
-    (ulcorner texto+(0.625cm,0)+(eb,eb))--
-    (ulcorner texto+(0.625cm,0))--
-    (ulcorner texto+(0.375cm,0))--
-    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
-  fill cadre withcolor white;
-%  draw (urcorner texto+(0,eb))--
-%    (ulcorner texto+(0.625cm,0)+(eb,eb))--
-%    (ulcorner texto+(0.625cm,0))--
-%    (ulcorner texto+(0.375cm,0))--
-%    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
-%    (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LignePointilles=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(LATEXSCRATCH("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  );
-TEXT=image(
-    path cadre;
-  cadre=CADRE(texto);
-  fill cadre withcolor white;
-  draw %(urcorner texto+(0,eb))--
-    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texto+(0.625cm,0))--
-    (ulcorner texto+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
-    %--(ulcorner texto+(0,eb))
-    withpen pencircle scaled 0.01;
-  draw texto;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef Commentaires(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(LATEXSCRATCH("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
-  );
-TEXT=image(
-    path cadre;
-  cadre=CADRE(texto);
-  fill cadre withcolor white;
-  draw texto;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-$
-enddef;
-
-color colcom;
-colcom=0.5white;
-
-vardef CommentairesLigne(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  TEXT=image(
-      label.rt(LATEXSCRATCH(commande), _coincom) withcolor colcom;
-  );
-$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
-$
-enddef;
-
-vardef BlocGris(expr ar)=
-  LONG:=0;
-  save $;  picture $;
-  path ta; string TTm;
-  TTm=ar&"\barre";
-  ta=OvalMiniBox(TTm);
-  $=image(
-    fill ta withcolor 0.975white;
-    draw ta withcolor 0.85white;
-    label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
-    );
-$
-enddef;
-
-vardef BlocGrisMulti(text argris)=
-  LONG:=0;
-  save $;  picture $;
-  path ta; picture TTm;
-  TTm=ColleBox(argris);
-  ta=OvalMiniBox(TTm);
-  $=image(
-    fill ta withcolor grisBloc;
-    draw TTm;
-%    label(LALATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
-    );
-$
-enddef;
-
-boolean BlocE;
-BlocE:=false;
-
-vardef BlocUser(expr colblocuser)(text textbloc)=
-  LONG:=0;
-  save $;
-  picture $;
-  save TA;  path TA; picture BUTB; picture texto; picture TEXT;
-  BUTB=ColleBoxNew(textbloc);
-  TA=Box(BUTB);
-  texto=image(
-      draw BUTB;
-    );
-  ColBloc:=colblocuser;
-  if BlocE=false:
-    $=Affichage(texto);
-  else:
-    $=AffichageED(texto);
-  fi;
-  $
-enddef;
-
-vardef BlocCouleur(expr colblocuser)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      label.lrt(LATEXSCRATCH("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  );
-ColBloc:=colblocuser;
-$=Affichage(texto);
-$
-enddef;
-%% fin Section Divers %%%
-
-%% Section Capteur %%%%
-vardef Demander(expr nbpas)=
-  LONG:=0;
-  save Dem;
-  picture Dem,texto;
-  if string nbpas:
-    texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
-    ColBloc:=CapteurTrois;
-    Dem=Affichage(texto);
-  else:
-    message("La commande -- Demander -- admet un argument de type string.");
-    Dem=nullpicture;
-  fi;
-  Dem
-enddef;
-
-vardef ReinitChrono=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("réinitialiser le chronomètre");
-  ColBloc:=CapteurTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef MettreGlissement(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
-    ColBloc:=CapteurTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- MettreGlissement -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%video
-
-vardef CameraImage=
-  LONG:=0;
-  save $;
-  picture $;
-  $=image(
-      pair A,B,C,D,E,F;
-    A=(0,0);
-    B-A=(10,0);
-    C-B=(0,10);
-    D-C=A-B;
-    E-B=(4,1.5);
-    F-C=(4,-1.5);
-    numeric EB;
-    EB=2pt;
-    path camera;
-    camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
-    fill camera withcolor (77,77,77)/255;
-    draw camera withcolor (77,77,77)*0.95/255;
-    path cc;
-    cc=fullcircle scaled 6;
-    color coul[];
-    if print:
-      coul0:=0.9white;
-      coul1:=0.933white;
-      coul2:=0.966white;
-      coul3:=white;
-    else:
-      coul0=(75,205,169)/255;
-      coul1=(16,230,212)/255;
-      coul2=(224,247,241)/255;
-      coul3=(1,1,1);
-    fi;
-    for k=0 upto 3:
-      fill (cc shifted(B+(10,3*k))) withcolor coul[k];
-      draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
-    endfor;
-    draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
-    pickup pencircle scaled eppen;
-    );
-  $:=$ scaled 0.8;
-  $
-enddef;
-
-vardef ImageCamera=
-  save titi;
-  picture titi;
-  titi=image(
-      draw CameraImage shifted(-12,-5);
-      draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
-    );
-  titi
-enddef;
-
-vardef ActiverVideo(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
-    ColBloc:=StyloTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- ActiverVideo -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef TransparenceVideo(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
-    ColBloc:=StyloTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- TransparenceVideo -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef QuandMV(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
-    ColBloc:=StyloTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QuandMV -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef VideoSur(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if (string nbpas) and (string xa):
-    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
-    %ColBloc:=StyloTrois;
-    path ta;
-    ta=OvalBox(texto);
-    $=image(
-    fill ta withcolor if print: coefprint*white else: StyloTrois fi;
-    draw ta withcolor CoulLignes;
-    %label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
-  draw texto;
-    );
-  else:
-    message("La commande -- VideoSur -- admet deux arguments de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%% fin Section Capteur %%%
-
-%%% Section Variables %%%
-vardef MettreVar(expr nbpas,xa)=
-  LONG:=0;
-  save MV;
-  picture MV,texto;
-  if string nbpas :
-    texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
-    ColBloc:=OrangeTrois;
-    MV=Affichage(texto);
-  else:
-    message("La commande -- MettreVar -- admet un premier paramètre de type string.");
-    MV=nullpicture;
-  fi;
-  MV
-enddef;
-
-vardef AjouterVar(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
-  ColBloc:=OrangeTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef MontrerVar(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-    texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
-    ColBloc:=OrangeTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef CacherVar(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-    texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
-    ColBloc:=OrangeTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- CacherVar -- admet un premier paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%Liste
-vardef AjouterListe(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
-  ColBloc:=OrangeListTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef SupprimerListe(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
-  ColBloc:=OrangeListTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef SupprimerListeAll(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-      texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-else:
-  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-fi;
-$
-enddef;
-
-vardef InsererListe(expr xa,nbpas,ya)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string ya :
-      texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef RemplacerListe(expr xa,nbpas,ya)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-    texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
-  ColBloc:=OrangeListTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MontrerListe(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- MontrerListe -- admet un paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef CacherListe(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- CacherListe -- admet un paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%%% Section Operateur %%%
-
-vardef OpAdd(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpSous(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpMul(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpDiv(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpAlea(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpRegrouper(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpLettre(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpLongueur(expr pasun)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpArrondi(expr pasun)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpFonction(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef TestOpSup(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpInf(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpEgal(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpEt(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpOu(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpNon(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpContient(expr pasun,pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef AppCostume(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef AppAP(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef CapDistance(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef CapTemps(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef CapNumero(expr pasun,pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapToucheObjet(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapCouleur(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapCouleurs(expr pasun,pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapTouche(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapSouris=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("souris pressée ?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestListeContient(expr nbpas,nbbas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef ListeElement(expr nbpas,nbbas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef ListePosition(expr nbpas,nbbas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef ListeLongueur(expr nbpas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Scratch.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,3346 +0,0 @@
-%%%%% epaisseur de tracés %%%%%%%%
-numeric eppen;
-eppen=0.25;
-
-pickup pencircle scaled eppen;
-defaultpen := savepen;
-
-%points pour placer les différents éléments
-pair _coinprec;%coinbasgauche de la boite précédente
-pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
-pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
-
-%paramètres
-numeric Nblignes; Nblignes:=1;
-pair DebutListe; DebutListe=(0,0);
-boolean NumeroteLignes; NumeroteLignes=false;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
-color CoulLignes; CoulLignes:=black;
-color ColBloc; % alias des couleurs de bloc
-
-%Version3
-color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
-BleuMouvTrois=(76/255,151/255,255/255);
-dBleuMouvTrois=(66/255,128/255,215/255);
-VioletAppTrois=(153/255,102/255,255/255);
-dVioletAppTrois=(133/255,92/255,214/255);
-OrangeConTrois=(255/255,171/255,25/255);
-OrangeTrois=(255/255,140/255,26/255);
-OrangeListTrois=(255/255,102/255,26/255);
-SonTrois=(207/255,99/255,207/255);
-DSonTrois=(201/255,79/255,201/255);
-FondSonTrois=(15/255,189/255,140/255);
-EvenementTrois=(255/255,191/255,0);
-MessageTrois=(230/255,172/255,0);
-CapteurTrois=(92/255,177/255,214/255);
-CapFonceTrois=(71/255,168/255,209/255);
-StyloTrois=(15/255,189/255,140/255);
-OvalStyloTrois=(13/255,165/255,122/255);
-BlocTrois=(255/255,102/255,128/255);
-BlocDefTrois=(255/255,77/255,106/255);
-BlocDefLigneTrois=(255/255,51/255,85/255);
-ControleTrois=(255/255,171/255,25/255);
-CloneTrois=(236/255,156/255,19/255);
-FondOvalOp=(89/255,192/255,89/255);
-
-vardef FondOvalAppMenu=
-  save $; color $;
-  $=dVioletAppTrois;
-  $
-enddef;
-
-%%%%Alias
-def Place expr o =
-    if path o: draw o else: draw o fi
-enddef;
-
-%impression
-boolean print;
-print=false;
-
-numeric coefprint;
-coefprint:=0.95;
-
-%texte ou symbole droite gauche
-boolean symbole;
-symbole=true;
-
-%divers
-numeric eb;%ecart boite-texte
-eb:=3pt;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
-ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
-
-vardef Box(text t)=
-  save $; path $;
-  picture ox;
-  ox=image(
-      if string t:
-      string demitt;
-      demitt=t&"\barre";
-      label(TEX(demitt),(0,0));
-    else:
-      draw t;
-    fi;
-    );
-  $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
-  $
-enddef;
-
-vardef RecBox(text t)=
-  save $; path $; path xo;
-  if string t:
-    string demit;
-    demit=t&"\demibarre";
-    xo=Box(demit);%on crée la boite contenant le texte
-  else:
-    xo=Box(t);
-  fi;
-    $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
-  $
-enddef;
-
-%%%%%%%%%%%%%%
-
-%%%%%%% Boites Ovales %%%%%%%%
-vardef OvalBox(text t)=
-  save $; path $; path xo;
-  if string t:
-    string demit;
-    demit=t&"\barre";
-    xo=Box(demit);%on crée la boite contenant le texte
-  else:
-    xo=Box(t);
-  fi;
-  $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
-  $
-enddef;
-
-vardef OvalVar(expr ar)=
-  save Ovar; picture Ovar;
-  save TAvar; path TAvar;
-  string TTv;
-  TTv=ar&"\barre";
-  TAvar=OvalBox(TTv);
-  Ovar=image(
-      fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
-    draw TAvar if print=false : withcolor coefprint*white fi;
-    label(TEX("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
-    );
-  Ovar:=Ovar shifted(-center Ovar);
-  Ovar
-enddef;
-
-vardef OvalList(text listelist)=
-  save CList;  picture CList;
-  path TAlist; picture LOCMt;
-  LOCMt=ColleBoxNew(listelist);
-  TAlist=OvalBox(LOCMt);
-  CList=image(
-    fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
-    draw LOCMt;
-    draw TAlist if print=false : withcolor coefprint*white fi;
-    );
-  CList:=CList shifted(-center CList);
-  CList
-enddef;
-
-vardef OvalBloc(expr ar)=
-  save $;  picture $;
-  path tabloc;
-  tabloc=OvalBox(ar);
-  $=image(
-    fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
-    draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
-    label(TEX("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
-    );
-  $
-enddef;
-
-vardef OvalMiniBox(text t)=
-  save $; path $; path xo;
-  if string t:
-    string demit;
-    demit=t&"\barre";
-    xo=Box(demit);%on crée la boite contenant le texte
-  else:
-    xo=Box(t);
-  fi;
-  $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
-  $
-enddef;
-
-vardef DiamondBox(text t)=
-  save $; path $; path xo;
-  xo=Box(t);%on crée la boite contenant le texte
-  $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
-  $
-enddef;
-
-vardef OvalNb(expr ar)=
-  save Onb;  picture Onb;
-  path tanb;
-  tanb=OvalBox(ar);
-  Onb=image(
-    fill tanb withcolor white;
-    draw tanb if print=false : withcolor coefprint*white fi;
-    label(TEX("\barre "&ar),(0,0));
-    );
-  Onb
-enddef;
-
-vardef OvalText(expr ar)=
-  save $; save TA;
-  picture $;
-  path TA;
-  TA=OvalBox(ar);
-  $=image(%
-    fill TA withcolor white;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX("\barre "&ar),(0,0));
-    );
-    $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef OvalOp(text listeop)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(listeop);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OvalApp(text listop)=
-  save $;  picture $;
-  save ta; path ta;
-  save TTap; picture TTap;
-  TTap=ColleBoxNew(listop);
-  ta=OvalBox(TTap);
-  $=image(
-      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    draw TTap;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef OvalSon(text listop)=
-  save $;  picture $;
-  save ta; path ta;
-  save TTap; picture TTap;
-  TTap=ColleBoxNew(listop);
-  ta=OvalBox(TTap);
-  $=image(
-      fill ta if print=false : withcolor SonTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    draw TTap;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef OvalMusique(expr ar)=
-  save $; save TA;
-  picture $;
-  if string ar:
-    picture TT;
-    TT=ColleBoxNew(DoubleNote,"tempo");
-    path TA;
-    TA=OvalBox(TT);
-    $=image(
-	fill TA if print : withcolor white else : withcolor StyloTrois fi;
-      draw TT if print=true : withcolor coefprint*white fi;
-      );
-  else:
-    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef OvalMouv(expr ar)=
-  save $;  picture $;
-  path ta; string TTm;
-  TTm=ar&"\longbarre";
-  ta=OvalBox(TTm);
-  $=image(
-    fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
-    );
-  $
-enddef;
-
-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";
-  fi;
-  path TAMC;
-  TAMC=OvalBox(TTm);
-  $=image(
-      fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
-    draw TAMC if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center TAMC);
-    );
-  $
-enddef;
-
-vardef OvalCap(text listecap)=
-  save Cap;  picture Cap;
-  save TAcap; path TAcap;
-  save LOCMcap; picture LOCMcap;
-  LOCMcap=ColleBoxNew(listecap);
-  TAcap=OvalBox(LOCMcap);
-  Cap=image(
-    fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
-    draw LOCMcap;
-    draw TAcap if print=false : withcolor coefprint*white fi;
-    );
-  Cap:=Cap shifted(-center Cap);
-  Cap
-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"
-  fi;
-  ta=OvalBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  ta=OvalBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center ta);
-    );
-  $
-enddef;
-
-vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
-
-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";
-  fi;
-  path TA;
-  TA=OvalBox(TTm);
-  $=image(%
-    fill TA if print : withcolor white else : withcolor DSonTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center TA);
-    );
-  $
-enddef;
-
-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";
-  fi;
-  path TA;
-  TA=OvalBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor CloneTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm), center TA);
-    );
-  $
-enddef;
-
-vardef OvalStylo(expr ar)=
-  save $; save TA;
-  picture $;
-  string TT,TTI;
-  if string ar:
-    if print:
-      TT=ar&"\hbox to1em{\barre}\blacktriangledown"
-    else:
-      TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
-    fi;
-    TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
-    path TA;
-    TA=OvalBox(TT);
-    $=image(
-	fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
-      draw TA if print=false : withcolor coefprint*white fi;
-      label(TEX(TT),(0,0)) if print=false : withcolor white fi;
-      );
-  else:
-    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef OvalCouleur(expr redcc,greencc,bluecc)=
-  save $; picture $;
-  string TTv;
-  path tacol;
-  TTv="\phantom{10}\barre";
-  tacol=OvalBox(TTv);
-  $=image(
-      fill tacol withcolor (redcc,greencc,bluecc);
-    draw tacol;
-    );
-  $:=$ shifted(-center tacol);
-  $
-enddef;
-
-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";
-  fi;
-  path TA;
-  TA=OvalBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor MessageTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm), center TA);
-    );
-  $
-enddef;
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
-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"
-  fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor FondOvalOp fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm), center TA);
-    );
-  $
-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;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor SonTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm), center TA);
-    );
-  $
-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";
-  fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center ta);
-    );
-  $
-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";
-    fi;
-  ta=RecBox(TTm);
-  $=image(
-      fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
-    draw ta if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm),center ta);
-    );
-  $
-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";
-  fi;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor OrangeTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm), center TA);
-    );
-  $
-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";
-  fi;
-  path TA;
-  TA=RecBox(TTm);
-  $=image(
-      fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
-    draw TA if print=false : withcolor coefprint*white fi;
-    label(TEX(TTm), center TA);
-    );
-  $
-enddef;
-
-%%%%%%% Affichage Complet %%%%%%%%%%%%%
-vardef PuzzleBox(text t)=
-  save $; path $; path xo;
-  xo=Box(t);%on crée la boite contenant le texte
-  $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
-    (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
-    (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
-    (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
-    (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner xo+(0.625cm,0))--
-    (ulcorner xo+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
-    (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
-  $
-enddef;
-
-vardef BlocPuzzle(text nombloc)=
-  save Bpuzzle; picture Bpuzzle;
-  path TABp;   picture LOCMp;
-  LOCMp=ColleBoxNew(nombloc);
-  TABp=PuzzleBox(LOCMp);
-  Bpuzzle=image(
-    fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
-    draw LOCMp;
-    draw TABp  if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
-    );
-  Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
-  Bpuzzle
-enddef;
-
-vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
-  save Colle; picture Colle;
-  Colle=nullpicture;
-  numeric nbcolle;  nbcolle:=0;
-  save NBCOLLE; path NBCOLLE;
-  for p_ = t:
-    nbcolle:=nbcolle+1;
-  endfor;
-  picture HOLD;  HOLD:=nullpicture;
-  if unknown LONG: LONG:=0 fi;
-  if nbcolle=1:%On dessine
-    for p_ = t:
-      if string p_:
-	NBCOLLE:=Box(p_);
-	HOLD:=image(
-	    label(TEX("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
-	  );
-	HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
-      else:
-	HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
-      fi;
-    endfor;
-    addto Colle also HOLD;
-    LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
-  else:%il faut coller les boites une à une
-    for p_ = t:
-      addto Colle also (ColleBoxNew(p_));
-    endfor;
-  fi;
-  Colle
-enddef;
-
-vardef CADRE(expr texti)=
-  save $;  path $;
-  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
-    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
-    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
-    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texti+(0.625cm,0))--
-    (ulcorner texti+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
-  $
-enddef;
-
-vardef AFFI(expr texta)=
-  path cadre;
-  cadre=CADRE(texta);
-  picture TEXT;
-  TEXT=image(%
-      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
-    draw texta;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef Affichage(expr textu)=
-  save $;
-  picture $;
-  $=AFFI(textu);
-  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%Pour les blocs de type contrôle
-vardef CADRECONTROLE(expr texti)=
-  save $;  path $;
-  path tracecadre;
-  $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
-    (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
-    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
-    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texti+(0.625cm,0))--
-    (ulcorner texti+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
-  tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
-    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
-    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texti+(0.625cm,0))--
-    (ulcorner texti+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
-    (llcorner texti+(-eb,-eb));
-  $
-enddef;
-
-vardef AFFICONTROLE(expr texta)=
-  path cadre;
-  cadre=CADRECONTROLE(texta);
-  picture TEXT;
-  TEXT=image(
-      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
-    draw texta;
-    draw tracecadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef AffichageControle(expr textu)=
-  save $;
-  picture $;
-  $=AFFICONTROLE(textu);
-  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $+(0.5cm,0);
-_coinprec:=_coinprec+(0,eb);
-coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CADREED(expr texti)=
-  save $; path $;
-  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
-    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
-    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
-    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
-    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
-    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
-    1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
-  $
-enddef;
-
-vardef AFFIED(expr texta)=
-  path cadre;
-  cadre=CADREED(texta);
-  picture TEXT;
-  TEXT=image(
-      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
-    draw texta;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef AffichageED(expr textu)=
-  save $;
-  picture $;
-  $=AFFIED(textu);
-  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-%%% section Mouvement %%%%%%%%%%
-vardef Avancer(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
-  else:
-    texto=ColleBoxNew("avancer de",nbpas,"pas");
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Arcdroite=
-  save $;
-  picture $;
-  $=image(
-      path cc;
-    cc=fullcircle scaled 10pt;
-    drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
-    );
-  $
-enddef;
-
-vardef Arcgauche=
-  save $;
-  picture $;
-  $=image(
-      path cc;
-    cc=fullcircle scaled 10pt;
-    drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
-    );
-  $
-enddef;
-
-vardef Tournerd(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
-    fi;
-  else:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
-    fi;
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Tournerg(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
-    fi;
-  else:
-    if symbole=true:
-      texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
-    else:
-      texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
-    fi;
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Orienter(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
-  else:
-    texto=ColleBoxNew("s'orienter à",nbpas);
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Orienterdirection(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
-  else:
-    texto=ColleBoxNew("s'orienter vers",nbpas);
-  fi;
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
-
-vardef Aller(expr xa,ya)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Glisser(expr na,xa,ya)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Allera(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
-    ColBloc:=BleuMouvTrois;
-    $=Affichage(texto);
-  else:
-    message("");
-    message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
-    message("");  
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef Glissera(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string xa:
-    texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-else:
-  message("");
-  message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
-    message("");  
-  $=nullpicture;
-fi;
-  $
-enddef;
-
-vardef Ajouter(expr nba,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string xa:
-    texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-else:
-  message("");
-  message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
-  message("");  
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Mettre(expr xa,nba)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string xa:
-    texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
-    ColBloc:=BleuMouvTrois;
-    $=Affichage(texto);
-  else:
-    message("");
-    message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
-    message("");  
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef Rebondir=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("rebondir si le bord est atteint");
-  ColBloc:=BleuMouvTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef FixerSensRotation(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
-    ColBloc:=BleuMouvTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --FixerSensRotation-- admet un seul argument de type string");
-    $=nullpicture;
-  fi;
-  $
-enddef;  
-
-%%%% fin section Mouvement %%%%%%
-
-%%%%% Section Apparence %%%%%%%%%
-vardef DireT(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Dire(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef PenserT(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Penser(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef Montrer=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("montrer");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Cacher=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("cacher");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Basculer(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --Basculer-- n'accepte qu'un argument string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
-
-vardef CostumeSuivant=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("costume suivant");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef ARSuivant=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("arrière-plan suivant");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef BasculerAR(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --BasculerAR-- n'accepte qu'un argument string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --BasculerARA-- n'accepte qu'un argument string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef AjouterEffet(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa:
-    texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffet(expr xa,nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa:
-    texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffet=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("annuler les effets graphiques");
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef AnnulerEffets=AnnulerEffet enddef;
-
-vardef AjouterTaille(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreA(expr na)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
-ColBloc:=VioletAppTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTaille(expr art)=MettreA(art) enddef;
-
-vardef AllerPlan(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
-    ColBloc:=VioletAppTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef DeplacerPlan(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa:
-    texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
-  ColBloc:=VioletAppTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-%%%%fin Section Apparance%%%%%%%%%%%%
-
-%%%%%% Section Son%%%%%%%%%%%%
-vardef Jouer(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas :
-    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
-    ColBloc:=SonTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef JouerT(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string nbpas:
-    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
-    ColBloc:=SonTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef ArreterSon=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("arrêter tous les sons");
-  ColBloc:=SonTrois;;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef ArreterSons=ArreterSon enddef;
-
-vardef AjouterVol(expr xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef MettreVol(expr xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef AjouterEffetSon(expr nombre, effet)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string effet:
-    texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MettreEffetSon(expr effet,nombre)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string effet:
-    texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef AnnulerEffetSon=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew("annuler tous les effets sonores");
-  ColBloc:=SonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-%Musique
-vardef Tambour(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string na:
-    texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-else:
-  message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef Pause(expr na)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef JouerNote(expr na,xa)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef ChoisirInstrument(expr na)=
-  LONG:=0;
-  save $;
-  picture $, texto;
-  if string na:
-    texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
-    ColBloc:=StyloTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef MettreTempo(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
-  ColBloc:=FondSonTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef AjouterTempo(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
-ColBloc:=FondSonTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef DoubleNote=
-  save $;
-  picture $;
-  $=image(
-      draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
-      draw NoteImage shifted((-5,-2));
-    draw NoteImage shifted((3.5,2));
-    draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
-);
-  $:=$ shifted(-3,0);
-  $
-enddef;
-
-vardef NoteImage=
-  save $;
-  picture $;
-  $=image(
-      linecap := butt;
-    linejoin := mitered;
-    fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
-      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
-      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
-      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
-      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
-      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
-      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
-      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
-      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
-      --cycle if print=false: withcolor white fi;
-    pickup pencircle scaled 0.797011bp;
-    draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
-      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
-      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
-      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
-      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
-      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
-      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
-      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
-      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
-      --cycle if print=false: withcolor white fi;
-    pickup pencircle scaled eppen;
-    );
-  $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-%%%%%% fin Section Son %%%%%%%%%
-
-%%%%%% Section Stylo %%%%%%%%%
-vardef ImageCrayon=
-  save titi;
-  picture titi;
-  titi=image(%
-      draw CrayonImage shifted(-12,0);
-    draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
-     );
-  titi
-enddef;
-
-vardef Effacer=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"effacer tout");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef Estampiller=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"estampiller");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef PoserStylo=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef ReleverStylo=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"relever le stylo");
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-$
-enddef;
-
-vardef MettreCouleur(expr redc,greenc,bluec)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
-  ColBloc:=StyloTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef AjouterCS(text t)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  numeric k; k=0;
-  for p_=t:
-    if k=1:string effet; effet=p_ fi;
-    if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
-    k:=k+1;
-  endfor;
-  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreCS(text t)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  numeric k; k=0;
-  for p_=t:
-    if k=0:string effet; effet=p_ fi;
-    if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
-    k:=k+1;
-  endfor;
-  texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-%taille du stylo
-vardef AjouterTS(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef MettreTS(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
-ColBloc:=StyloTrois;
-$=Affichage(texto);
-$
-enddef;
-
-vardef CrayonImage=
-  picture cray;
-  cray=image(%
-      drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
-    linecap := butt;
-    linejoin := mitered;
-    fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
-    drawoptions (withcolor (0.349030,0.368640,0.450970));
-    pickup pencircle scaled 0.498140bp;
-    draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
-    drawoptions (withcolor (1.000000,1.000000,1.000000));
-    %pickup pencircle scaled 0.000000bp;
-    fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
-    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
-    pickup pencircle scaled 0.498140bp;
-    draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
-    drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
-    %pickup pencircle scaled 0.000000bp;
-    fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
-    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
-    pickup pencircle scaled 0.498140bp;
-    draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
-    draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
-    %pickup pencircle scaled 0.000000bp;
-    fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
-    fill (6.496090,12.082000)--cycle;
-    pickup pencircle scaled 0.498140bp;
-    draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
-    draw (6.496090,12.082000);
-    drawoptions();
-    pickup pencircle scaled 0bp;
-    draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
-    pickup pencircle scaled eppen;
-    );
-  cray:=cray shifted((0,-9pt));
-  cray
-enddef;
-
-%%%%%% Fin Section Stylo %%%%%%%%
-
-%%%%%% Section Contrôle %%%%%%%%%
-color colControle;
-colControle:=OrangeConTrois;
-
-vardef AffichageStop=
-  path cadre;
-  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
-    (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
-    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texto+(0.625cm,0))--
-    (ulcorner texto+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
-  picture TEXT;
-  TEXT=image(
-      fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-    draw texto;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-pair coindebutbloc[];
-numeric numblocrep;
-numblocrep:=0;
-
-vardef Repeter(expr xa)=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
-LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-ColBloc:=OrangeConTrois;
-$=AffichageControle(texto);
-$
-enddef;
-
-vardef RepeterI=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  texto=ColleBoxNew("répéter indéfiniment");
-  LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-  ColBloc:=OrangeConTrois;
-  $=AffichageControle(texto);
-  $
-enddef;
-
-vardef RepeterJ(expr xa)=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  if picture xa:
-    texto=ColleBoxNew("répéter jusqu'à ce que",xa);
-    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-    ColBloc:=OrangeConTrois;
-    $=AffichageControle(texto);
-  else:
-    message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef FinBlocRepeter=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  _coinprec:=_coinprec-(0.5cm,0);
-  drawoptions();
-  texto=image(
-      labeloffset:=0;
-    label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  labeloffset:=3;
-  );
-path cadre;
-cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
-  (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
-  {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
-  (ulcorner texto+(0.5cm,eb)){dir-90}..
-  {dir0}(ulcorner texto+(0.5cm+eb,0))--
-  (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
-  {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
-  (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
-  {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
-  (urcorner texto+(-eb,0)){dir0}..
-  {dir-90}(urcorner texto+(0,-eb))--
-  (lrcorner texto+(0,eb)){dir-90}..
-  {dir180}(lrcorner texto+(-eb,0))--
-  (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-  {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-  (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-  {dir180}(llcorner texto+(0.125+0.375cm,0))--
-  (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-  {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
-  cycle;
-$=image(
-    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  AA:=ahangle;
-  ahangle:=90;
-  drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
-  ahangle:=AA;
-  draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
-    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
-    (ulcorner texto+(0.5cm,eb)){dir-90}..
-    {dir0}(ulcorner texto+(0.5cm+eb,0))--
-    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
-    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
-    (urcorner texto+(-eb,0)){dir0}..
-    {dir-90}(urcorner texto+(0,-eb))--
-    (lrcorner texto+(0,eb)){dir-90}..
-    {dir180}(lrcorner texto+(-eb,0))--
-    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.375cm,0))--
-    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-    {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
-  );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-vardef FinBlocRepeterI=FinBlocRepeter enddef;
-
-vardef Si(expr xa)=
-  LONG:=0;
-  save $;
-  numblocrep:=numblocrep+1;
-  picture $,texto;
-  if picture xa:
-    texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
-    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
-    ColBloc:=OrangeConTrois;
-    $=AffichageControle(texto);
-  else:
-    message("La commande -- Si -- n'admet qu'un argument de type picture.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef FinBlocSi=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  _coinprec:=_coinprec-(0.5cm,0);
-  drawoptions();
-  texto=image(
-      labeloffset:=0;
-    label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  labeloffset:=3;
-  );
-path cadre;
-if BlocStopAvant=false:
-  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
-    (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
-    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
-    (ulcorner texto+(0.5cm,eb)){dir-90}..
-    {dir0}(ulcorner texto+(0.5cm+eb,0))--
-    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
-    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
-    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
-    (urcorner texto+(-eb,0)){dir0}..
-    {dir-90}(urcorner texto+(0,-eb))--
-    (lrcorner texto+(0,eb)){dir-90}..
-    {dir180}(lrcorner texto+(-eb,0))--
-    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.375cm,0))--
-    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-    {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
-    cycle;
-else:
-  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
-    (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-    (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-    {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-    (urcorner texto+(-eb,0)){dir0}..
-    {dir-90}(urcorner texto+(0,-eb))--
-    (lrcorner texto+(0,eb)){dir-90}..
-    {dir180}(lrcorner texto+(-eb,0))--
-    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-    {dir180}(llcorner texto+(0.125+0.375cm,0))--
-    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-    {dir90}(llcorner texto+(0.125,0)+(0,eb))--
-    cycle;
-fi;
-$=image(
-    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  if BlocStopAvant=false:
-    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
-      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-      (ulcorner texto+(0.125+0.875cm,0)){dir0}..
-      {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-      (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-      {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-      (urcorner texto+(-eb,0)){dir0}..
-      {dir-90}(urcorner texto+(0,-eb))--
-      (lrcorner texto+(0,eb)){dir-90}..
-      {dir180}(lrcorner texto+(-eb,0))--
-      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.375cm,0))--
-      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
-      (coindebutbloc[numblocrep]+(0.125,0.125))
-       withcolor CoulLignes;
-  else:
-    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-      (urcorner texto+(-eb,0)){dir0}..
-      {dir-90}(urcorner texto+(0,-eb))--
-      (lrcorner texto+(0,eb)){dir-90}..
-      {dir180}(lrcorner texto+(-eb,0))--
-      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
-      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
-      {dir180}(llcorner texto+(0.125+0.375cm,0))--
-      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
-      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
-      (coindebutbloc[numblocrep]+(0.125,0.125))
-      withcolor CoulLignes;
-  fi;
-  );
-_coinprec:=(llcorner $);
-_coinprec:=_coinprec+(0,eb);
-numblocrep:=numblocrep-1;
-$
-enddef;
-
-boolean BlocStopAvant;
-BlocStopAvant=false;
-
-vardef Sinon=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  _coinprec:=_coinprec-(0.5cm,0);
-  drawoptions();
-  texto=image(
-      labeloffset:=0;
-    label.lrt(TEX("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
-  labeloffset:=3;
-  );
-  path cadre;
-  if BlocStopAvant=false:
-      cadre=(llcorner texto+(0.125,0))--
-	(coindebutbloc[numblocrep]+(0.125,0.125))--
-	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
-	cycle;
-    else:
-      cadre=(llcorner texto+(0.125,0))--
-	(coindebutbloc[numblocrep]+(0.125,0.125))--
-	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
-	cycle;
-    fi;
-$=image(
-    fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
-  draw texto;
-    if BlocStopAvant=false:
-      draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))--
-	(llcorner texto+(0.125+0.5cm+eb,0))
-	 withcolor CoulLignes;
-    else:
-            draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
-	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
-	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
-	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
-	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
-	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
-	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
-	(urcorner texto+(-eb,0)){dir0}..
-	{dir-90}(urcorner texto+(0,-eb))--
-	(lrcorner texto+(0,eb)){dir-90}..
-	{dir180}(lrcorner texto+(-eb,0))--
-	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
-	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
-	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
-	{dir180}(llcorner texto+(0.125+0.875cm,0))
-	withcolor CoulLignes;
-    fi;
-    draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
-    );
-  _coinprec:=(llcorner $)+(0.5cm,0);
-  _coinprec:=_coinprec+(0,eb);
-  coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
-  $
-enddef;
-
-vardef Attendre(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
-ColBloc:=OrangeConTrois;
-$=Affichage(texto);
-$
-enddef;
-  
-vardef AttendreJ(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if picture xa:
-    texto=ColleBoxNew("attendre jusqu'à ce que",xa);
-    ColBloc:=OrangeConTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef Stop(expr nbpas)=
-  LONG:=0;
-  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";
-  fi;
-  texto=image(
-      path ti;
-    ti=Box("stop");
-    label(TEX("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
-    if picture nbpas:
-      picture ta;
-      ta=nbpas;
-      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
-      draw ta;
-      drawoptions();
-    else:
-      path ta;
-      ta=RecBox(TTm);%
-      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
-      if print=false : fill ta withcolor ControleTrois fi;
-      draw ta withcolor 0.95white;
-      label(TEX(TTm),center ta);
-      drawoptions();
-    fi;
-  );
-$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec;%+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef CommencerClone=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand je commence comme un clone");
-  ColBloc:=ControleTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef CreerClone(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
-    ColBloc:=ControleTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- CreerClone -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef SupprimerClone=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      path ti;
-    ti=Box("supprimer ce clone");
-    label(TEX("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
-    );
-  $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%fin Section Contrôle%%%
-
-%%%%%%%% Section Evenements %%%%%
-vardef Drapeau=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef QPresse(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
-    ColBloc:=EvenementTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QPresse -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef QLutinPresse=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand ce sprite est cliqué");
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef QSpritePresse=QLutinPresse enddef;
-
-vardef QScenePressee=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("quand la scène est cliquée");
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-  $
-enddef;
-
-vardef QBasculeAR(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
-    ColBloc:=EvenementTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QBasculeAR -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef QVolumeSup(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
-  ColBloc:=EvenementTrois;
-  $=AffichageED(texto);
-else:
-  message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef QRecevoirMessage(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
-    ColBloc:=EvenementTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef EnvoyerMessage(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
-    ColBloc:=EvenementTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef EnvoyerMessageA(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
-    ColBloc:=EvenementTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef DrapeauImage=
-  save $; picture $;
-  $=image(
-      linecap := butt;
-    linejoin := rounded;
-    if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
-    fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
-      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
-      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
-      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
-      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
-      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
-      --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
-      --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
-      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
-      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
-      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
-      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
-      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
-      --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
-%    drawoptions (withcolor (0,0.625,0));
-    fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
-      --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
-      --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
-      --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
-      --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
-      --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
-      --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
-      --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
-      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
-      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
-      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
-      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
-      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
-      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
-      --(78.234398,706.906006)--cycle;
-%    drawoptions (withcolor (0,0.625,0));
-    fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
-      --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
-      --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
-      --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
-      --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
-      --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
-      --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
-      --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
-      --(83.332001,706.440979)--cycle;
-%    drawoptions (withcolor (0,0.625,0));
-%pickup pencircle scaled 0.199253bp;
-    draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
-      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
-      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
-      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
-      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
-      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
-      --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
-      --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
-      --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
-      --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
-      --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
-      --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
-      --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
-      --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
-      --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
-      --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
-      --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
-      --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
-      --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
-      --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
-      --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
-      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
-      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
-      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
-      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
-      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
-      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
-      --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
-      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
-      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
-      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
-      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
-      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
-      --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
-    %pickup pencircle scaled 0.8bp;
-    draw (72.000000,699)--(72.000000,720);
-    drawoptions();
-    );
-  $:=$ rotatedabout((72.000000,699),-15);
-  $
-enddef;
-%%Fin section Evenement%%%
-
-%%%% Section Bloc %%%%
-vardef AffichageBlocDef=
-  path cadre;
-  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
-      (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
-      {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
-      (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
-      {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
-      (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
-      (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
-      (ulcorner texto+(0,2eb)){dir180}..
-      {dir-90}(ulcorner texto+(-eb,eb))--
-      cycle;
-  picture TEXT;
-  TEXT=image(
-    fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
-    draw texto;
-    draw cadre withcolor CoulLignes;
-    );
-  TEXT
-enddef;
-
-vardef Bloc(text nomblocbloc)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      picture CBbloc;
-    CBbloc=ColleBoxNew(nomblocbloc);
-    draw CBbloc;
-    );
-  ColBloc:=BlocTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef NouveauBloc(text nbpasbloc)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=image(
-      picture CB;
-    CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
-    draw CB;
-    );
-$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-%%%% Fin Section Bloc%%%%
-
-%%% Section Divers%%%
-vardef CommandeVide(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  if string commande :
-    texto=image(
-	label.lrt(TEX("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-    );
-else:
-  texto=commande;
-fi;
-ColBloc:=white;
-$=Affichage(texto);
-$
-enddef;
-
-vardef LigneVide=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  );
-TEXT=image(
-    path cadre;
-  cadre=CADRE(texto);
-  unfill cadre;
-  %draw (urcorner texto+(0,eb))--
-  %  (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
-  %  {dir180}(ulcorner texto+(0.625cm,0))--
-  %  (ulcorner texto+(0.375cm,0)){dir180}..
-  %  {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
-  %  (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LigneVideVar(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  if string texto:
-    texto=image(
-	label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-    );
-else:
-  texto=commande;
-fi;
-TEXT=image(
-    path cadre;
-  cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
-    (llcorner texto+(0.375cm,0)+(-eb,-eb))--
-    (llcorner texto+(0.375cm,0)+(0,-2eb))--
-    (llcorner texto+(0.625cm,0)+(0,-2eb))--
-    (llcorner texto+(0.625cm,0)+(eb,-eb))--
-    (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
-    (ulcorner texto+(0.625cm,0)+(eb,eb))--
-    (ulcorner texto+(0.625cm,0))--
-    (ulcorner texto+(0.375cm,0))--
-    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
-    (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
-  fill cadre withcolor white;
-%  draw (urcorner texto+(0,eb))--
-%    (ulcorner texto+(0.625cm,0)+(eb,eb))--
-%    (ulcorner texto+(0.625cm,0))--
-%    (ulcorner texto+(0.375cm,0))--
-%    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
-%    (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef LignePointilles=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(TEX("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  );
-TEXT=image(
-    path cadre;
-  cadre=CADRE(texto);
-  fill cadre withcolor white;
-  draw %(urcorner texto+(0,eb))--
-    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
-    {dir180}(ulcorner texto+(0.625cm,0))--
-    (ulcorner texto+(0.375cm,0)){dir180}..
-    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
-    %--(ulcorner texto+(0,eb))
-    withpen pencircle scaled 0.01;
-  draw texto;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
-_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
-if NumeroteLignes=true:
-  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
-  Nblignes:=Nblignes+1;
-fi;
-$
-enddef;
-
-vardef Commentaires(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(TEX("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
-  );
-TEXT=image(
-    path cadre;
-  cadre=CADRE(texto);
-  fill cadre withcolor white;
-  draw texto;
-  );
-$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
-_coinprec:=llcorner $;
-_coinprec:=_coinprec+(0,eb);
-$
-enddef;
-
-color colcom;
-colcom=0.5white;
-
-vardef CommentairesLigne(expr commande)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  TEXT=image(
-      label.rt(TEX(commande), _coincom) withcolor colcom;
-  );
-$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
-$
-enddef;
-
-vardef BlocGris(expr ar)=
-  LONG:=0;
-  save $;  picture $;
-  path ta; string TTm;
-  TTm=ar&"\barre";
-  ta=OvalMiniBox(TTm);
-  $=image(
-    fill ta withcolor 0.975white;
-    draw ta withcolor 0.85white;
-    label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
-    );
-$
-enddef;
-
-vardef BlocGrisMulti(text argris)=
-  LONG:=0;
-  save $;  picture $;
-  path ta; picture TTm;
-  TTm=ColleBoxNew(argris);
-  ta=OvalMiniBox(TTm);
-  $=image(
-    fill ta withcolor 0.975white;
-    draw ta;
-    %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
-    );
-$
-enddef;
-
-boolean BlocE;
-BlocE:=false;
-
-vardef BlocUser(expr colblocuser)(text textbloc)=
-  LONG:=0;
-  save $;
-  picture $;
-  save TA;  path TA; picture BUTB; picture texto; picture TEXT;
-  BUTB=ColleBoxNew(textbloc);
-  TA=Box(BUTB);
-  texto=image(
-      draw BUTB;
-    );
-  ColBloc:=colblocuser;
-  if BlocE=false:
-    $=Affichage(texto);
-  else:
-    $=AffichageED(texto);
-  fi;
-  $
-enddef;
-
-vardef BlocCouleur(expr colblocuser)=
-  LONG:=0;
-  save $;
-  picture $,texto,TEXT;
-  texto=image(
-      label.lrt(TEX("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
-  );
-ColBloc:=colblocuser;
-$=Affichage(texto);
-$
-enddef;
-%% fin Section Divers %%%
-
-%% Section Capteur %%%%
-vardef Demander(expr nbpas)=
-  LONG:=0;
-  save Dem;
-  picture Dem,texto;
-  if string nbpas:
-    texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
-    ColBloc:=CapteurTrois;
-    Dem=Affichage(texto);
-  else:
-    message("La commande -- Demander -- admet un argument de type string.");
-    Dem=nullpicture;
-  fi;
-  Dem
-enddef;
-
-vardef ReinitChrono=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  texto=ColleBoxNew("réinitialiser le chronomètre");
-  ColBloc:=CapteurTrois;
-  $=Affichage(texto);
-  $
-enddef;
-
-vardef MettreGlissement(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
-    ColBloc:=CapteurTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- MettreGlissement -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%video
-
-vardef CameraImage=
-  LONG:=0;
-  save $;
-  picture $;
-  $=image(
-      pair A,B,C,D,E,F;
-    A=(0,0);
-    B-A=(10,0);
-    C-B=(0,10);
-    D-C=A-B;
-    E-B=(4,1.5);
-    F-C=(4,-1.5);
-    numeric EB;
-    EB=2pt;
-    path camera;
-    camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
-    fill camera withcolor (77,77,77)/255;
-    draw camera withcolor (77,77,77)*0.95/255;
-    path cc;
-    cc=fullcircle scaled 6;
-    color coul[];
-    if print:
-      coul0:=0.9white;
-      coul1:=0.933white;
-      coul2:=0.966white;
-      coul3:=white;
-    else:
-      coul0=(75,205,169)/255;
-      coul1=(16,230,212)/255;
-      coul2=(224,247,241)/255;
-      coul3=(1,1,1);
-    fi;
-    for k=0 upto 3:
-      fill (cc shifted(B+(10,3*k))) withcolor coul[k];
-      draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
-    endfor;
-    draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
-    pickup pencircle scaled eppen;
-    );
-  $:=$ scaled 0.8;
-  $
-enddef;
-
-vardef ImageCamera=
-  save titi;
-  picture titi;
-  titi=image(
-      draw CameraImage shifted(-12,-5);
-      draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
-    );
-  titi
-enddef;
-
-vardef ActiverVideo(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
-    ColBloc:=StyloTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- ActiverVideo -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef TransparenceVideo(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
-    ColBloc:=StyloTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- TransparenceVideo -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef QuandMV(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas:
-    texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
-    ColBloc:=StyloTrois;
-    $=AffichageED(texto);
-  else:
-    message("La commande -- QuandMV -- admet un argument de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef VideoSur(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if (string nbpas) and (string xa):
-    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
-    %ColBloc:=StyloTrois;
-    path ta;
-    ta=OvalBox(texto);
-    $=image(
-    fill ta withcolor if print: coefprint*white else: StyloTrois fi;
-    draw ta withcolor CoulLignes;
-    %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
-  draw texto;
-    );
-  else:
-    message("La commande -- VideoSur -- admet deux arguments de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%% fin Section Capteur %%%
-
-%%% Section Variables %%%
-vardef MettreVar(expr nbpas,xa)=
-  LONG:=0;
-  save MV;
-  picture MV,texto;
-  if string nbpas :
-    texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
-    ColBloc:=OrangeTrois;
-    MV=Affichage(texto);
-  else:
-    message("La commande -- MettreVar -- admet un premier paramètre de type string.");
-    MV=nullpicture;
-  fi;
-  MV
-enddef;
-
-vardef AjouterVar(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
-  ColBloc:=OrangeTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef MontrerVar(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-    texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
-    ColBloc:=OrangeTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef CacherVar(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-    texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
-    ColBloc:=OrangeTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- CacherVar -- admet un premier paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%Liste
-vardef AjouterListe(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
-  ColBloc:=OrangeListTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef SupprimerListe(expr nbpas,xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
-  ColBloc:=OrangeListTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef SupprimerListeAll(expr nbpas)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-      texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-else:
-  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
-    $=nullpicture;
-fi;
-$
-enddef;
-
-vardef InsererListe(expr xa,nbpas,ya)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string ya :
-      texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef RemplacerListe(expr xa,nbpas,ya)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string nbpas :
-    texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
-  ColBloc:=OrangeListTrois;
-  $=Affichage(texto);
-else:
-  message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
-  $=nullpicture;
-fi;
-$
-enddef;
-
-vardef MontrerListe(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- MontrerListe -- admet un paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-vardef CacherListe(expr xa)=
-  LONG:=0;
-  save $;
-  picture $,texto;
-  if string xa :
-    texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
-    ColBloc:=OrangeListTrois;
-    $=Affichage(texto);
-  else:
-    message("La commande -- CacherListe -- admet un paramètre de type string.");
-    $=nullpicture;
-  fi;
-  $
-enddef;
-
-%%% Section Operateur %%%
-
-vardef OpAdd(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpSous(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpMul(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpDiv(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpAlea(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpRegrouper(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpLettre(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpLongueur(expr pasun)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpArrondi(expr pasun)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef OpFonction(expr pasun,pasdeux)=
-  save Oop; picture Oop;
-  save TAao; path TAao;
-  save LOPop; picture LOPop;
-  LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAao=OvalBox(LOPop);
-  Oop=image(
-      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LOPop;
-    draw TAao if print=false : withcolor coefprint*white fi;
-    );
-  Oop:=Oop shifted(-center Oop);
-  Oop
-enddef;
-
-vardef TestOpSup(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpInf(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpEgal(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpEt(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpOu(expr pasun, pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpNon(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestOpContient(expr pasun,pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef AppCostume(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef AppAP(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef CapDistance(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef CapTemps(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef CapNumero(expr pasun,pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapToucheObjet(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapCouleur(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapCouleurs(expr pasun,pasdeux)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapTouche(expr pasun)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestCapSouris=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("souris pressée ?");
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef TestListeContient(expr nbpas,nbbas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
-  TAa=DiamondBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef ListeElement(expr nbpas,nbbas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef ListePosition(expr nbpas,nbbas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-
-vardef ListeLongueur(expr nbpas)=
-  save $; picture $;
-  save TAa; path TAa;
-  save LTa; picture LTa;
-  LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
-  TAa=OvalBox(LTa);
-  $=image(
-      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
-    draw LTa;
-    draw TAa if print=false : withcolor coefprint*white fi;
-    );
-  $:=$ shifted(-center $);
-  $
-enddef;
-

Deleted: trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfC-Svgnames.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,153 +0,0 @@
-%D'après /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/svgnam.def
-color AliceBlue; AliceBlue = (.94,.972,1);
-color AntiqueWhite; AntiqueWhite = (.98,.92,.844);
-color Aqua; Aqua = (0,1,1);
-color Aquamarine; Aquamarine = (.498,1,.83);
-color Azure; Azure = (.94,1,1);
-color Beige; Beige = (.96,.96,.864);
-color Bisque; Bisque = (1,.894,.77);
-color Black; Black = (0,0,0);
-color BlanchedAlmond; BlanchedAlmond = (1,.92,.804);
-color Blue; Blue = (0,0,1);
-color BlueViolet; BlueViolet = (.54,.17,.888);
-color Brown; Brown = (.648,.165,.165);
-color BurlyWood; BurlyWood = (.87,.72,.53);
-color CadetBlue; CadetBlue = (.372,.62,.628);
-color Chartreuse; Chartreuse = (.498,1,0);
-color Chocolate; Chocolate = (.824,.41,.116);
-color Coral; Coral = (1,.498,.312);
-color CornflowerBlue; CornflowerBlue = (.392,.585,.93);
-color Cornsilk; Cornsilk = (1,.972,.864);
-color Crimson; Crimson = (.864,.08,.235);
-color Cyan; Cyan = (0,1,1);
-color DarkBlue; DarkBlue = (0,0,.545);
-color DarkCyan; DarkCyan = (0,.545,.545);
-color DarkGoldenrod; DarkGoldenrod = (.72,.525,.044);
-color DarkGray; DarkGray = (.664,.664,.664);
-color DarkGreen; DarkGreen = (0,.392,0);
-color DarkGrey; DarkGrey = (.664,.664,.664);
-color DarkKhaki; DarkKhaki = (.74,.716,.42);
-color DarkMagenta; DarkMagenta = (.545,0,.545);
-color DarkOliveGreen; DarkOliveGreen = (.332,.42,.185);
-color DarkOrange; DarkOrange = (1,.55,0);
-color DarkOrchid; DarkOrchid = (.6,.196,.8);
-color DarkRed; DarkRed = (.545,0,0);
-color DarkSalmon; DarkSalmon = (.912,.59,.48);
-color DarkSeaGreen; DarkSeaGreen = (.56,.736,.56);
-color DarkSlateBlue; DarkSlateBlue = (.284,.24,.545);
-color DarkSlateGray; DarkSlateGray = (.185,.31,.31);
-color DarkSlateGrey; DarkSlateGrey = (.185,.31,.31);
-color DarkTurquoise; DarkTurquoise = (0,.808,.82);
-color DarkViolet; DarkViolet = (.58,0,.828);
-color DeepPink; DeepPink = (1,.08,.576);
-color DeepSkyBlue; DeepSkyBlue = (0,.75,1);
-color DimGray; DimGray = (.41,.41,.41);
-color DimGrey; DimGrey = (.41,.41,.41);
-color DodgerBlue; DodgerBlue = (.116,.565,1);
-color FireBrick; FireBrick = (.698,.132,.132);
-color FloralWhite; FloralWhite = (1,.98,.94);
-color ForestGreen; ForestGreen = (.132,.545,.132);
-color Fuchsia; Fuchsia = (1,0,1);
-color Gainsboro; Gainsboro = (.864,.864,.864);
-color GhostWhite; GhostWhite = (.972,.972,1);
-color Gold; Gold = (1,.844,0);
-color Goldenrod; Goldenrod = (.855,.648,.125);
-color Gray; Gray = (.5,.5,.5);
-color Green; Green = (0,.5,0);
-color GreenYellow; GreenYellow = (.68,1,.185);
-color Grey; Grey = (.5,.5,.5);
-color Honeydew; Honeydew = (.94,1,.94);
-color HotPink; HotPink = (1,.41,.705);
-color IndianRed; IndianRed = (.804,.36,.36);
-color Indigo; Indigo = (.294,0,.51);
-color Ivory; Ivory = (1,1,.94);
-color Khaki; Khaki = (.94,.9,.55);
-color Lavender; Lavender = (.9,.9,.98);
-color LavenderBlush; LavenderBlush = (1,.94,.96);
-color LawnGreen; LawnGreen = (.488,.99,0);
-color LemonChiffon; LemonChiffon = (1,.98,.804);
-color LightBlue; LightBlue = (.68,.848,.9);
-color LightCoral; LightCoral = (.94,.5,.5);
-color LightCyan; LightCyan = (.88,1,1);
-color LightGoldenrod; LightGoldenrod = (.933,.867,.51);
-color LightGoldenrodYellow; LightGoldenrodYellow = (.98,.98,.824);
-color LightGray; LightGray = (.828,.828,.828);
-color LightGreen; LightGreen = (.565,.932,.565);
-color LightGrey; LightGrey = (.828,.828,.828);
-color LightPink; LightPink = (1,.712,.756);
-color LightSalmon; LightSalmon = (1,.628,.48);
-color LightSeaGreen; LightSeaGreen = (.125,.698,.668);
-color LightSkyBlue; LightSkyBlue = (.53,.808,.98);
-color LightSlateBlue; LightSlateBlue = (.518,.44,1);
-color LightSlateGray; LightSlateGray = (.468,.532,.6);
-color LightSlateGrey; LightSlateGrey = (.468,.532,.6);
-color LightSteelBlue; LightSteelBlue = (.69,.77,.87);
-color LightYellow; LightYellow = (1,1,.88);
-color Lime; Lime = (0,1,0);
-color LimeGreen; LimeGreen = (.196,.804,.196);
-color Linen; Linen = (.98,.94,.9);
-color Magenta; Magenta = (1,0,1);
-color Maroon; Maroon = (.5,0,0);
-color MediumAquamarine; MediumAquamarine = (.4,.804,.668);
-color MediumBlue; MediumBlue = (0,0,.804);
-color MediumOrchid; MediumOrchid = (.73,.332,.828);
-color MediumPurple; MediumPurple = (.576,.44,.86);
-color MediumSeaGreen; MediumSeaGreen = (.235,.7,.444);
-color MediumSlateBlue; MediumSlateBlue = (.484,.408,.932);
-color MediumSpringGreen; MediumSpringGreen = (0,.98,.604);
-color MediumTurquoise; MediumTurquoise = (.284,.82,.8);
-color MediumVioletRed; MediumVioletRed = (.78,.084,.52);
-color MidnightBlue; MidnightBlue = (.098,.098,.44);
-color MintCream; MintCream = (.96,1,.98);
-color MistyRose; MistyRose = (1,.894,.884);
-color Moccasin; Moccasin = (1,.894,.71);
-color NavajoWhite; NavajoWhite = (1,.87,.68);
-color Navy; Navy = (0,0,.5);
-color NavyBlue; NavyBlue = (0,0,.5);
-color OldLace; OldLace = (.992,.96,.9);
-color Olive; Olive = (.5,.5,0);
-color OliveDrab; OliveDrab = (.42,.556,.136);
-color Orange; Orange = (1,.648,0);
-color OrangeRed; OrangeRed = (1,.27,0);
-color Orchid; Orchid = (.855,.44,.84);
-color PaleGoldenrod; PaleGoldenrod = (.932,.91,.668);
-color PaleGreen; PaleGreen = (.596,.985,.596);
-color PaleTurquoise; PaleTurquoise = (.688,.932,.932);
-color PaleVioletRed; PaleVioletRed = (.86,.44,.576);
-color PapayaWhip; PapayaWhip = (1,.936,.835);
-color PeachPuff; PeachPuff = (1,.855,.725);
-color Peru; Peru = (.804,.52,.248);
-color Pink; Pink = (1,.752,.796);
-color Plum; Plum = (.868,.628,.868);
-color PowderBlue; PowderBlue = (.69,.88,.9);
-color Purple; Purple = (.5,0,.5);
-color Red; Red = (1,0,0);
-color RosyBrown; RosyBrown = (.736,.56,.56);
-color RoyalBlue; RoyalBlue = (.255,.41,.884);
-color SaddleBrown; SaddleBrown = (.545,.27,.075);
-color Salmon; Salmon = (.98,.5,.448);
-color SandyBrown; SandyBrown = (.956,.644,.376);
-color SeaGreen; SeaGreen = (.18,.545,.34);
-color Seashell; Seashell = (1,.96,.932);
-color Sienna; Sienna = (.628,.32,.176);
-color Silver; Silver = (.752,.752,.752);
-color SkyBlue; SkyBlue = (.53,.808,.92);
-color SlateBlue; SlateBlue = (.415,.352,.804);
-color SlateGray; SlateGray = (.44,.5,.565);
-color SlateGrey; SlateGrey = (.44,.5,.565);
-color Snow; Snow = (1,.98,.98);
-color SpringGreen; SpringGreen = (0,1,.498);
-color SteelBlue; SteelBlue = (.275,.51,.705);
-color Tan; Tan = (.824,.705,.55);
-color Teal; Teal = (0,.5,.5);
-color Thistle; Thistle = (.848,.75,.848);
-color Tomato; Tomato = (1,.39,.28);
-color Turquoise; Turquoise = (.25,.88,.815);
-color Violet; Violet = (.932,.51,.932);
-color VioletRed; VioletRed = (.816,.125,.565);
-color Wheat; Wheat = (.96,.87,.7);
-color White; White = (1,1,1);
-color WhiteSmoke; WhiteSmoke = (.96,.96,.96);
-color Yellow; Yellow = (1,1,0);
-color YellowGreen; YellowGreen = (.604,.804,.196);
-endinput

Added: trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,182 @@
+u:=1cm;
+
+vardef Afficheur(expr nb,creux)=
+  pair Aa[];
+  Aa1=u*(-0.5,-1);
+  Aa2-Aa1=u*(1,0);
+  Aa4-Aa2=u*(0,2);
+  Aa3=1/2[Aa2,Aa4];
+  Aa5-Aa4=Aa1-Aa2;
+  Aa6-Aa3=Aa1-Aa2;
+  pair Bb[];
+  Bb1=Aa1 xscaled0.7 yscaled 0.85;
+  Bb2=Aa2 xscaled0.7 yscaled 0.85;
+  Bb4=Aa4 xscaled0.7 yscaled 0.85;
+  Bb5=Aa5 xscaled0.7 yscaled 0.85;
+  Bb3=1/2[Bb2,Bb4];
+  Bb6=1/2[Bb1,Bb5];
+  Bb7=1/2[Bb6,Bb3]+(0,4);
+  Bb8=1/2[Bb6,Bb3]-(0,6);
+  pair Cc[];
+  Cc1=u*(0.4,-0.85)+(0,-1);
+  ecarth:=1.5;
+  ecartv:=0.05;
+  path ASegment[];
+  ASegment[1]=1/10[Bb1,Bb2]--9/10[Bb1,Bb2];
+  ASegment[2]=1/10[Bb2,Bb3]--9/10[Bb2,Bb3];
+  ASegment[3]=1/10[Bb3,Bb4]--9/10[Bb3,Bb4];
+  ASegment[4]=1/10[Bb4,Bb5]--9/10[Bb4,Bb5];
+  ASegment[5]=1/10[Bb5,Bb6]--9/10[Bb5,Bb6];
+  ASegment[6]=1/10[Bb6,Bb1]--9/10[Bb6,Bb1];
+  ASegment[7]=1/10[Bb6,Bb3]--9/10[Bb6,Bb3];
+  color fondsegment;
+  fondsegment=0.2[LightSteelBlue,white];
+  save $;
+  picture $;
+  $=image(
+      fill Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
+    draw Aa1--Aa2--Aa4--Aa5--cycle withcolor LightSteelBlue;
+    if creux=0:
+      fill (unitsquare scaled 2) shifted Cc1 withcolor fondsegment;
+    else:
+      fill (unitsquare scaled 2) shifted Cc1 withcolor Crimson;
+    fi;
+    if nb=1:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[2];
+      draw ASegment[3];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[1];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[6];
+      draw ASegment[7];
+      drawoptions();
+    fi;
+    if nb=2:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[3];
+      draw ASegment[4];
+      draw ASegment[6];
+      draw ASegment[7];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[2];
+      draw ASegment[5];
+      drawoptions();
+    fi;
+    if nb=3:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[4];
+      draw ASegment[7];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[5];
+      draw ASegment[6];
+      drawoptions();
+    fi;
+    if nb=4:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[5];
+      draw ASegment[7];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[1];
+      draw ASegment[4];
+      draw ASegment[6];
+      drawoptions();
+    fi;
+    if nb=5:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[7];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[3];
+      draw ASegment[6];
+      drawoptions();
+    fi;
+    if nb=6:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[6];
+      draw ASegment[7];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[3];
+      drawoptions();
+    fi;
+    if nb=7:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[4];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[1];
+      draw ASegment[5];
+      draw ASegment[6];
+      draw ASegment[7];
+      drawoptions();
+    fi;
+    if nb=8:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[6];
+      draw ASegment[7];
+      drawoptions();
+    fi;
+    if nb=9:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[7];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[6];
+      drawoptions();
+    fi;
+    if nb=0:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[6];
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[7];
+      drawoptions();
+    fi;
+    if nb=10:
+      drawoptions(withpen pensquare scaled2 withcolor Crimson);
+      fill (unitsquare scaled 2) shifted Bb7 withcolor Crimson;
+      fill (unitsquare scaled 2) shifted Bb8 withcolor Crimson;
+      drawoptions(withpen pensquare scaled2 withcolor fondsegment);
+      draw ASegment[1];
+      draw ASegment[2];
+      draw ASegment[3];
+      draw ASegment[4];
+      draw ASegment[5];
+      draw ASegment[6];
+      draw ASegment[7];
+      drawoptions();
+    fi;
+    );
+  $
+enddef;
+
+endinput;
+  


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCAfficheur.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,201 @@
+prologues:=3;
+
+path carre[];
+
+u:=0.5mm;
+
+vardef BlocAffichage=
+  for k=0 upto 34:
+    carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
+  endfor;
+enddef;
+
+vardef Affichage(expr decomp)=
+  save $;
+  picture $;
+  drawoptions(withpen pensquare scaled0.1);
+  $=image(%
+      for k=0 upto 34:
+      if (substring(k,k+1) of decomp)="1":
+	fill carre[k];
+      fi;
+    endfor;
+    );
+  drawoptions();
+  $
+enddef;
+
+nblignes:=0;
+
+boolean print;
+print:=false;
+
+color CouleurEcran;
+CouleurEcran=(107/255,148/255,107/255);
+
+boolean Math;
+Math=true;
+
+decahoriz:=0;
+
+vardef Test(expr cptk,cptnt)=
+  pair decalage;
+  if nblignes mod 2=0:
+    decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
+  else:
+    decalage:=u*(decahoriz,-8*(nblignes-1));
+    decahoriz:=decahoriz+6;
+  fi;
+  if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="e":if Math:
+	draw Affichage("00000000000000000001101000100010100") shifted(decalage);
+	decalage:=u*(decahoriz-1,-8*(nblignes-1));
+	draw Affichage("00000000001001010101101011010110010")  shifted(decalage);
+	decahoriz:=decahoriz+6;
+      else:
+	draw Affichage("00000000000111010001111111000001110") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
+	draw Affichage("00011000011110100001000000000000000") shifted(decalage);
+      else:
+	draw Affichage("00010000000011000010000101001001100") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
+	draw Affichage("11100001000100011100000000000000000") shifted(decalage);
+      else:
+	draw Affichage("10000100001001010100110001010010010") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
+	draw Affichage("11100010000010011100000000000000000") shifted(decalage);
+      else:
+	draw Affichage("01100001000010000100001000010001110") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
+	draw Affichage("00000000001111101010010100101010001") shifted(decalage);
+      else:
+	draw Affichage("00000000000110110011011110000100001") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
+	draw Affichage("00111001000010000100101000110000100") shifted(decalage);	
+      else:
+	draw Affichage("00000000001000110001100010111000100") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
+	draw Affichage("00000000000000000000000000000000000") shifted(decalage);
+      else:
+	draw Affichage("00000011000110000000011000110000000") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
+	  draw Affichage("00000001000000011111000000010000000") shifted(decalage);
+      else:
+	draw Affichage("00000011000110000000011000010001000") shifted(decalage);
+      fi;
+    elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
+    elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
+    fi;
+enddef;
+
+vardef LCD(text nt)(text rep)(expr NB)=
+  decahoriz:=0;
+  nblignes:=nblignes+1;
+  path Ecran;
+  Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+  fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+  draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+  for k=0 upto length(nt)-1:
+    BlocAffichage;
+    Test(k,nt);
+  endfor;
+  for k=1 upto NB:
+    nblignes:=nblignes+1;
+    Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+    fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+    draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+  endfor;
+  nblignes:=nblignes+1;
+  Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+  fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+  draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+  for k=0 upto length(rep)-1:
+    BlocAffichage;
+    Test(k,rep);
+  endfor;
+enddef;
+
+endinput;


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCCalculatrice.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,20 @@
+%Constantes
+u:=1cm;
+v:=(sqrt3)/2;
+pi:=3.141592654;
+e:=2.718281828;
+c:=57.29578; % conversion d'un radian en degres
+color rouge,vert,bleu,jaune,noir,blanc,orange,rose,violet,ciel,cielfonce,orangevif,gris;
+rouge=(1,0,0);
+bleu=(0,0,1);
+noir=(0,0,0);
+blanc=(1,1,1);
+orange=(1,0.5,0);
+violet=blanc-vert;
+rose=(1,0.7,0.7);
+cielfonce=0.9*(0.25,1,1);
+ciel=bleu+vert;
+orangevif=(1,0.25,0.1);
+vert=(0,1,0);
+jaune=rouge+vert;
+gris=0.8*white;


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCConstantes.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,1206 @@
+%===============================================
+%% PfC-Geometrie
+%% christophe.poulain at melusine.eu.org
+%%===============================================
+%------------------------------------------------
+% Appel fichier
+%------------------------------------------------
+%input PfC-Constantes;
+%------------------------------------------------
+% La figure (debut et fin) JMS/CP
+%------------------------------------------------
+path feuillet;
+numeric _tfig,_nfig;
+_tfig:=5cm;
+_nfig:=0;
+pair coinbg,coinbd,coinhd,coinhg;
+
+string typetrace;
+typetrace="normal";
+
+def feuille(expr xa,ya,xb,yb) =
+  feuillet := (xa,ya)--(xa,yb)--(xb,yb)--(xb,ya)--cycle;
+  coinbg := (xa,ya);
+  coinbd := (xb,ya);
+  coinhd := (xb,yb);
+  coinhg := (xa,yb);
+  %modifie le 29.09.04
+  z.so=(xpart(coinbg/1cm),ypart(coinbg/1cm));
+  z.ne=(xpart(coinhd/1cm),ypart(coinhd/1cm));
+  %fin modification
+  extra_endfig := "clip currentpicture to feuillet;" & extra_endfig;
+enddef;
+
+def Figure(expr xa,ya,xb,yb) =
+  feuille(xa,ya,xb,yb);
+  _tfig:= if (xb-xa)>(yb-ya): xb-xa else: yb-ya fi;
+  _tfig:=2*_tfig;
+enddef;
+
+%%-----------------------------------------------
+%% Les marques (JMS)
+%%-----------------------------------------------
+string marque_p;
+marque_p := "non";
+marque_r := 20;
+marque_a := 20;
+marque_s := 5;
+marque_ang := 10;
+m_c := 10 ;%Pour la croix du marquage des points
+
+%------------------------------------------------
+% Les tables
+%------------------------------------------------
+numeric _tn;
+_tn:=0;
+pair _t[];
+color _T[];
+
+%%-----------------------------------------------
+%% Procedures d'affichage
+%%-----------------------------------------------
+def MarquePoint(expr p)=
+  if typetrace="3D":
+    %JMS
+    if marque_p = "plein":
+      fill fullcircle scaled (marque_r/5) shifted Projette(p);
+    elseif marque_p = "creux":
+      fill fullcircle scaled (marque_r/5) shifted (Projette(p)) withcolor white;
+      draw fullcircle scaled (marque_r/5) shifted (Projette(p));
+        %fin JMS
+    elseif marque_p = "croix":
+      draw (Projette(p) shifted (-u/10,u/10))--(Projette(p) shifted (u/10,-u/10));
+      draw (Projette(p) shifted (-u/10,-u/10))--(Projette(p) shifted (u/10,u/10));
+    elseif marque_p = "tiretv":
+      draw (Projette(p) shifted (0,u/10))--(Projette(p) shifted(0,-u/10));
+    elseif marque_p = "tireth":
+      draw (Projette(p) shifted (u/10,0))--(Projette(p) shifted(-u/10,0));
+    fi;
+  else:
+    if marque_p = "plein":
+      fill fullcircle scaled (marque_r/5) shifted p;
+    elseif marque_p = "creux":
+      fill fullcircle scaled (marque_r/5) shifted p withcolor white;
+      draw fullcircle scaled (marque_r/5) shifted p;
+    elseif marque_p = "croix":
+      draw (p shifted (-u/m_c,u/m_c))--(p shifted (u/m_c,-u/m_c));
+      draw (p shifted (-u/m_c,-u/m_c))--(p shifted (u/m_c,u/m_c));
+    elseif marque_p = "tiretv":
+      draw (p shifted (0,u/10))--(p shifted(0,-u/10));
+    elseif marque_p = "tireth":
+      draw (p shifted (u/10,0))--(p shifted(-u/10,0));
+    fi;
+  fi;
+enddef;
+
+vardef pointe(text t) =
+  for p_ = t: if (pair p_) or (color p_): MarquePoint(p_); fi endfor;
+enddef;
+
+%------------------------------------------------
+% Points
+%------------------------------------------------
+%JMS
+vardef iso(text t) =
+  save s,n; numeric n;
+  if typetrace="3D":
+    color s; s := (0,0,0) ; n := 0;
+    for p_ = t: s := s + p_; n := n + 1 ; endfor;
+  else:
+    pair s; s := (0,0) ; n := 0;
+    for p_ = t: s := s + p_; n := n + 1 ; endfor;
+  fi;
+  if n>0: (1/n)*s fi
+enddef;
+
+vardef milieu(expr AA,BB)=
+  save $;
+  pair $;
+  if typetrace="mainlevee":
+    $=point((length segment(AA,BB))*(1/2+(-1+uniformdeviate(2))/10)) of segment(AA,BB)
+  else:
+    $=iso(AA,BB)
+  fi;
+  $
+enddef;
+
+vardef CentreCercleI(expr aa,bb,cc)=
+  save $,a,c;
+  pair $;
+  numeric a,c;
+  a=(angle(aa-cc)-angle(bb-cc))/2;
+  c=(angle(cc-bb)-angle(aa-bb))/2;
+  ($-cc) rotated a shifted cc=whatever[aa,cc];
+  ($-bb) rotated c shifted bb=whatever[bb,cc];
+  $
+enddef;
+
+%------------------------------------------------
+% Cercles
+%------------------------------------------------
+%Cercle connaissant le centre A et le rayon q
+vardef cercle(expr aa, q)=fullcircle scaled (2*q) shifted aa
+enddef;
+%Cercle de centre A et passant par B
+vardef cerclepoint(expr aa,bb)=fullcircle scaled (2*abs(aa-bb)) shifted aa
+enddef;
+%Cercle connaissant le diametre [AB]
+vardef cercledia(expr aa,bb)=cercles(iso(aa,bb),bb)
+  %fullcircle scaled (2*abs(1/2[aa,bb]-bb)) shifted (1/2[aa,bb])
+enddef;
+%Cercles complets
+vardef cercles(text t)=
+  save Cer;
+  save n;
+  n:=0;
+  for p_=t:
+    if pair p_:
+      n:=n+1;
+      _t[n]:=p_;
+    fi
+    if numeric p_:
+      rayon:=p_;
+    fi;
+    if color p_:
+      n:=n+1;
+      _T[n]:=p_;
+    fi;
+  endfor;
+  if typetrace="3D":%centre aa passant par bb dans le plan (ccddee) généralement aa=cc
+    path Cer;
+    color ptcer[];
+    for k=0 step 5 until 360 :
+      ptcer[k div 5]-_T[1]=Distance(_T[1],_T[2])*((_T[4]-_T[3])*cosd(k)/Distance(_T[3],_T[4])+(_T[5]-_T[3])*sind(k)/Distance(_T[3],_T[5]));
+    endfor;
+    Cer=Projette(ptcer0)
+      for k=0 step 5 until 360 :
+      ..Projette(ptcer[k div 5])
+    endfor
+    ..cycle;
+  else:
+    path Cer;
+    if n=1 : Cer=fullcircle scaled (2*rayon) shifted _t[1];
+    elseif n=2 : Cer=fullcircle scaled (2*abs(_t[1]-_t[2])) shifted _t[1];
+    elseif n=3 : Cer=cercles(CentreCercleC(_t[1],_t[2],_t[3]),_t[1]);
+    fi
+  fi
+  Cer
+enddef;
+
+%Point particulier sur le cercle
+vardef pointarc(expr cercla,angle)=
+  point(arctime((angle/360)*arclength cercla) of cercla) of cercla
+enddef;
+
+%Arc de cercle AB de centre 0(dans le sens direct) : les points A et B doivent etre sur le cercle.
+vardef arccercle(expr aa,bb,oo)=
+  path tempo;
+  path arc;
+  tempo=fullcircle scaled (2*abs(aa-oo)) shifted oo;
+  if (angle(aa-oo)=0) or (angle(aa-oo)>0) :
+    if (angle(bb-oo)=0) or (angle(bb-oo)>0):
+      if (angle(aa-oo)<angle(bb-oo)):
+	arc=subpath(angle(aa-oo)*(length tempo)/360,angle(bb-oo)*(length tempo)/360) of tempo;
+      else:
+	arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+      fi;
+    elseif (angle(bb-oo)<0):
+      arc=subpath(angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+    fi;
+  elseif (angle(aa-oo)<0):
+    if (angle(bb-oo)=0) or (angle(bb-oo)>0):
+      arc=subpath(length tempo+angle(aa-oo)*(length tempo)/360,length tempo+angle(bb-oo)*(length tempo)/360) of tempo;
+    elseif (angle(bb-oo)<0):
+      if (angle(aa-oo)=angle(bb-oo)) or (angle(aa-oo)<angle(bb-oo)):
+	arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+      else:
+	arc=subpath((length tempo)+angle(aa-oo)*(length tempo)/360,2*(length tempo)+angle(bb-oo)*(length tempo)/360) of tempo;
+      fi;
+    fi;
+  fi;
+  arc
+enddef;
+
+vardef coupdecompas(expr ab,ac,ad)=arccercle(pointarc(cercles(ab,ac),angle(ac-ab)-ad),pointarc(cercles(ab,ac),angle(ac-ab)+ad),ab)
+enddef;
+
+%------------------------------------------------
+% Procedures de codage
+%------------------------------------------------
+%Codage de l'angle droit de sommet B
+vardef codeperp(expr aa,bb,cc,m)=%normalement m=5
+  save codep;
+  path codep;
+  if typetrace="3D":
+    codep=(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(aa)-Projette(bb))+m*unitvector(Projette(cc)-Projette(bb)))--(Projette(bb)+m*unitvector(Projette(cc)-Projette(bb)));
+  else:
+    codep=(bb+m*unitvector(aa-bb))--(bb+m*unitvector(aa-bb)+m*unitvector(cc-bb))--(bb+m*unitvector(cc-bb));
+  fi;
+  codep
+enddef;
+
+%Codage d'un milieu
+vardef codemil(expr AA,BB, n) =%extremites-angle de codage
+  save $,a,b,c,d;
+  path $;
+  pair a,b,c,d;
+  a=1/2[AA,BB];
+  b=(a+marque_s*unitvector(BB-AA))-(a-marque_s*unitvector(BB-AA));
+  c=b rotated n shifted a;
+  d=2[c,a];
+  $=c--d;
+  $
+enddef;
+%Codage de deux segments egaux
+vardef codesegments(expr aa,bb,cc,dd,n)=%extremites des segments(4)-type de codage
+  save $,v,w;
+  picture $;
+  pair AA,BB,CC,DD;
+  $=image(
+    if typetrace="3D":
+      AA=Projette(aa);      BB=Projette(bb);      CC=Projette(cc);      DD=Projette(dd);
+    else:
+      AA=aa;BB=bb;CC=cc;DD=dd;
+    fi;
+    if n=5 :
+      draw fullcircle scaled 0.1cm shifted (1/2[AA,BB]);
+      draw fullcircle scaled 0.1cm shifted (1/2[CC,DD]);
+    elseif n=4 :
+      pair v,w;
+      v=1/2[AA,BB];
+      w=1/2[CC,DD];
+      draw codemil(AA,BB,60);
+      draw codemil(AA,BB,120);
+      draw codemil(CC,DD,60);
+      draw codemil(CC,DD,120);
+    elseif n=3 :
+      draw codemil(AA,BB,60);
+      draw codemil(AA,BB,60) shifted (2*unitvector(AA-BB));
+      draw codemil(AA,BB,60) shifted (2*unitvector(BB-AA));
+      draw codemil(CC,DD,60);
+      draw codemil(CC,DD,60) shifted (2*unitvector(CC-DD));
+      draw codemil(CC,DD,60) shifted (2*unitvector(DD-CC));
+    elseif n=2 :
+      draw codemil(AA,BB,60) shifted unitvector(AA-BB);
+      draw codemil(AA,BB,60) shifted unitvector(BB-AA);
+      draw codemil(CC,DD,60) shifted unitvector(CC-DD);
+      draw codemil(CC,DD,60) shifted unitvector(DD-CC);
+    elseif n=1 :
+      draw codemil(AA,BB,60);
+      draw codemil(CC,DD,60);
+    fi;
+    );
+    $
+  enddef;
+
+%Codage de plusieurs segments de meme longueur
+  vardef Codelongueur(text t)=
+  save result;
+  picture result;
+  pair tt[];
+  k:=0;
+  for p_=t:
+    if pair p_:
+      k:=k+1;
+      tt[k]=p_;
+    elseif color p_:
+      k:=k+1;
+      tt[k]=Projette(p_);
+    elseif numeric p_:
+      co:=p_;
+    fi;
+  endfor;
+  result=image(
+    if co=5:
+      for j=1 upto (k div 2):
+	draw fullcircle scaled 0.1cm shifted (1/2[tt[2*j-1],tt[2*j]]);
+      endfor;
+    elseif co=4:
+      for j=1 upto (k div 2):
+	draw codemil(tt[2*j-1],tt[2*j],60);
+	draw codemil(tt[2*j-1],tt[2*j],120);
+      endfor;
+    elseif co=3:
+      for j=1 upto (k div 2):
+	draw codemil(tt[2*j-1],tt[2*j],60);
+	draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j-1]-tt[2*j]));
+	draw codemil(tt[2*j-1],tt[2*j],60) shifted (2*unitvector(tt[2*j]-tt[2*j-1]));
+      endfor;
+    elseif co=2:
+      for j=1 upto (k div 2):
+	draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j-1]-tt[2*j]);
+	draw codemil(tt[2*j-1],tt[2*j],60) shifted unitvector(tt[2*j]-tt[2*j-1]);
+      endfor;
+    elseif co=1:
+      for j=1 upto (k div 2):
+	draw codemil(tt[2*j-1],tt[2*j],60);
+      endfor;
+    fi;
+    );
+  result
+enddef;
+
+%Codage de l'angle abc non oriente (mais donne dans le sens direct) n fois avec des mesures differentes
+vardef codeangle@#(expr aa,bb,cc,nb,nom)=
+  save s,p,$;
+  path p;
+  picture $;
+  $=image(
+    trace marqueangle(aa,bb,cc,nb);
+    label.@#(nom,w);
+    );
+  $
+enddef;
+
+vardef Marqueangle(expr aa,bb,mark)=%codage d'un angle forme par les demi-droites aa et bb dans le sens direct avec la marque mark
+  save $;
+  picture $;
+  path conf,rr;
+  pair w,tangent;
+  numeric t,tt;
+  conf=fullcircle scaled (2*marque_a) shifted (aa intersectionpoint bb);
+  numeric te;
+  te=angle((conf intersectionpoint aa)-(aa intersectionpoint bb));
+  rr=(conf intersectionpoint aa){dir(90+angle((conf intersectionpoint aa)-(aa intersectionpoint bb)))}..(conf intersectionpoint bb);
+  t=length rr/2;
+  w=point(t) of rr;
+  tangent=unitvector(direction t of rr);
+  $=image(
+    trace rr;
+    if mark=1:
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
+    elseif mark=2:
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted tangent;
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-tangent);
+    elseif mark=3:
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90);
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(1.5*tangent);
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,90) shifted(-1.5*tangent);
+    elseif mark=4:
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,45);
+      trace rotation((w shifted(5*tangent))--(w shifted(-5*tangent)),w,-45);
+    fi;
+    );
+  $
+enddef;
+
+vardef marqueangle(expr aa,bb,cc,mark)=%codage d'un angle de sommet bb dans le sens direct par la marque mark.
+  save $;
+  picture $;
+  path conf,rr;
+  pair w,tangent;
+  numeric t;
+  if typetrace="mainlevee":
+    conf=fullcircle scaled (2*marque_a) shifted bb;
+    rr=(conf intersectionpoint demidroite(bb,aa)){dir(90+angle(aa-bb))}..(conf intersectionpoint demidroite(bb,cc));
+    w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
+    t=length rr/2;
+    tangent=unitvector(direction t of rr);
+    $=image(
+	trace rr;
+      if mark=1:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+      elseif mark=2:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
+      elseif mark=3:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
+      elseif mark=4:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
+      fi;
+      );
+  else:
+    rr=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb);
+    w=rr intersectionpoint droite(bb,CentreCercleI(aa,bb,cc));
+    t=length rr/2;
+    tangent=unitvector(direction t of rr);
+    $=image(
+	if mark=5:
+	drawarrow rr;
+      else:
+	trace rr;
+      fi;
+      if mark=1:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+      elseif mark=2:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted tangent;
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-tangent);
+      elseif mark=3:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90);
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(1.marque_s*tangent);
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,90) shifted(-1.marque_s*tangent);
+      elseif mark=4:
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,45);
+	trace rotation((w shifted(marque_s*tangent))--(w shifted(-marque_s*tangent)),w,-45);
+      fi;
+      );
+  fi;
+  $
+enddef;
+
+vardef coloreangle(expr aa,bb,cc)=arccercle(bb+marque_a*unitvector(aa-bb),bb+marque_a*unitvector(cc-bb),bb)--bb--cycle
+enddef;
+
+vardef Codeangle(expr aa,bb,cc,nb,nom)=
+  save s,p,$;
+  path p;
+  picture $;
+  $=image(
+    trace marqueangle(aa,bb,cc,nb);
+    label(nom,w shifted(marque_ang*unitvector(w-bb)));
+    );
+  $
+enddef;
+
+vardef marquesegment(expr aa,bb)=
+  save tr;
+  picture tr;
+  if typetrace="3D":
+    tr=image(%
+	typetrace:="normal";
+      trace rotation(segment(Projette(aa)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(aa)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(aa),90);
+      trace rotation(segment(Projette(bb)-marque_s*unitvector(Projette(bb)-Projette(aa)),Projette(bb)+marque_s*unitvector(Projette(bb)-Projette(aa))),Projette(bb),90);
+      typetrace:="3D";
+      );
+  else:
+    tr=image(%
+	trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
+      trace rotation(segment(bb-marque_s*unitvector(bb-aa),bb+marque_s*unitvector(bb-aa)),bb,90);
+      );
+  fi;
+  tr
+enddef;
+
+vardef marquedemidroite(expr aa,bb)=
+  save tr;
+  picture tr;
+  tr=image(
+    trace rotation(segment(aa-marque_s*unitvector(bb-aa),aa+marque_s*unitvector(bb-aa)),aa,90);
+    );
+  tr
+enddef;
+
+%------------------------------------------------
+% Transformations
+%------------------------------------------------
+vardef projection(expr m,a,b) =
+  save h; pair h;
+  h - m = whatever * (b-a) rotated 90;
+  h = whatever [a,b];
+  if typetrace="mainlevee":
+    h:=h shifted((-2+uniformdeviate(4))*unitvector(a-b))
+  fi;
+  h
+enddef;
+  
+vardef homothetie(expr objet,CTR,rapport)=
+  ((objet shifted (-CTR)) scaled rapport) shifted CTR
+enddef;
+
+vardef rotation(expr p,c,a)=
+  p rotatedaround(c,a)
+enddef;
+
+vardef symetrie(expr x)(text t)=
+  save n;
+  n:=0;
+  for p_=t: if pair p_:
+      n:=n+1;
+      _t[n]:=p_;
+    elseif color p_:
+      n:=n+1;
+      _T[n]:=p_;
+    fi;
+  endfor;
+  if n=1:
+    if typetrace="3D":
+      2[x,_T[1]]
+    else:
+      rotation(x,_t[1],180)
+    fi
+  elseif n=2:
+    x reflectedabout(_t[1],_t[2])
+  elseif n=3:%Par rapport a un plan
+    2[x,ProjectionsurPlan(x,_T[1],_T[2],_T[3])]
+  fi
+enddef;
+
+%------------------------------------------------
+% Droites
+%------------------------------------------------
+vardef segment(expr aa,bb)=
+  save Seg;
+  path Seg;
+  if typetrace="mainlevee":
+    Seg=aa{dir(angle(bb-aa)+5)}..bb{dir(angle(bb-aa)+5)}
+  elseif typetrace="3D":
+    Seg=Projette(aa)--Projette(bb)
+  else:
+    Seg=aa--bb
+  fi;
+  Seg
+enddef;
+
+vardef droite(expr AA,BB)=
+  save Dro;
+  path Dro;
+  if typetrace="mainlevee":
+    Dro=(_tfig/abs(AA-BB))[BB,AA]{dir(angle(BB-AA)+10)}..segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
+  elseif typetrace="3D":
+    Dro=(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(BB),Projette(AA)]--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
+  else:
+    Dro=(_tfig/abs(AA-BB))[BB,AA]--(_tfig/abs(AA-BB))[AA,BB]
+  fi;
+  Dro
+enddef;
+vardef demidroite(expr AA,BB)=
+  save Dem;
+  path Dem;
+  if typetrace="mainlevee":
+    Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
+  elseif typetrace="3D":
+    Dem=Projette(AA)--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
+  else:
+    Dem=AA--(_tfig/abs(AA-BB))[AA,BB]
+  fi;
+  Dem
+enddef;
+
+vardef bissectrice(expr AA,BB,CC)=
+  save $;
+  path $;
+  if typetrace="mainlevee":
+    $=rotation(demidroite(BB,CentreCercleI(AA,BB,CC)),BB,-5+uniformdeviate(10))
+  else:
+    $=demidroite(BB,CentreCercleI(AA,BB,CC))
+  fi;
+  $
+enddef;
+
+vardef mediatrice(expr AA,BB)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90))
+enddef;
+%main levee : passer par la perpendiculaire passant par le milieu.
+
+vardef perpendiculaire(expr AA,BB,II)=droite(iso(AA,BB),rotation(BB,iso(AA,BB),90)) shifted (II-iso(AA,BB))
+enddef;
+
+vardef parallele(expr AA,BB,II)=droite(AA,BB) shifted (II-(projection(II,AA,BB)))
+enddef;
+
+%%%%%%%%%%
+%Polygone/Ligne brisée
+%%%%%%%%%
+vardef polygone(text t)=
+  pair aaa[];
+  j:=0;
+  for p_=t: if pair p_:
+      j:=j+1;
+      aaa[j]=p_;
+    elseif color p_:
+      j:=j+1;
+      aaa[j]=Projette(p_);
+    fi;
+  endfor;
+  aaa[j+1]:=aaa[1];
+  save $;
+  path $;
+  $=aaa1--
+    for k=2 upto j:
+    aaa[k]--
+  endfor
+  cycle;
+  $
+enddef;
+
+vardef chemin(text t)=
+  pair aaa[];
+  j:=0;
+  for p_=t: if pair p_:
+      j:=j+1;
+      aaa[j]=p_;
+    elseif color p_:
+      j:=j+1;
+      aaa[j]=Projette(p_);
+    fi;
+  endfor;
+  if typetrace="mainlevee":
+    save $;
+    picture $;
+    $=image(
+      for k=1 upto (j-1):
+	trace segment(aaa[k],aaa[k+1]);
+      endfor;
+      );
+  else:
+    save $;
+    path $;
+    $=aaa1
+    for k=2 upto j:
+      --aaa[k]
+    endfor;
+  fi;
+  $
+enddef;
+
+%------------------------------------------------
+%Sucres
+%------------------------------------------------
+vardef hachurage(expr chemin, angle, ecart, trace)=
+  save $;
+  picture $;
+  path support;
+  support=((u*(-37,0))--(u*(37,0))) rotated angle;
+  if trace=1:
+    drawoptions(dashed evenly);
+  elseif trace=2:
+    drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
+  elseif trace=3:
+    drawoptions(dashed withdots);
+  fi;
+  $ = image(
+    for j=-200 upto 200:
+      if ((support shifted (ecart*j*(u,0))) intersectiontimes chemin)<>(-1,-1):
+	draw support shifted (ecart*j*(u,0));
+      fi
+    endfor;
+    );
+  clip $ to chemin;
+  drawoptions();
+  $
+enddef;
+%fleche pour coter un segment [AB] (Jacques Marot)
+vardef cotation(expr aa,bb,ecart,decalage,cote)=
+  pair m[] ;
+  save $;
+  picture $;
+  m3=unitvector(bb-aa) rotated 90;
+  m1=aa+ecart*m3;
+  m2=bb+ecart*m3;
+  $=image(
+    pickup pencircle scaled 0.2bp;
+    drawdblarrow m1--m2 ;
+    draw aa--m1 dashed evenly;
+    draw bb--m2 dashed evenly;
+    label(cote rotated angle(m2-m1),(m1+m2)/2+decalage*m3);
+    );
+  $
+enddef;
+
+vardef appelation(expr aa,bb,decalage,cote)=
+  save $;
+  pair m[],AA,BB;
+  if color aa:
+    AA=Projette(aa);
+  else:
+    AA=aa;
+  fi;
+  if color bb:
+    BB=Projette(bb);
+  else:
+    BB=bb;
+  fi;
+  m3=unitvector(BB-AA) rotated 90;
+  picture $;
+  $=image(
+    label(cote rotated angle(BB-AA),(BB+AA)/2+decalage*m3);
+    );
+  $
+enddef;
+
+vardef cotationmil(expr aa,bb,ecart,decalage,cote)= %Christophe
+  pair m[],AA,BB;
+  save $;
+  picture cot;
+   if color aa:
+    AA=Projette(aa)
+  else:
+    AA=aa
+  fi;
+  if color bb:
+    BB=Projette(bb)
+  else:
+    BB=bb
+  fi;
+  m3=unitvector(BB-AA) rotated 90;
+  m1=AA+ecart*m3;
+  m2=BB+ecart*m3;
+  cot=image(
+    pickup pencircle scaled 0.2bp;
+    drawarrow (1/2[m1,m2]+decalage*unitvector(m1-m2))--m1;
+    drawarrow (1/2[m1,m2]-decalage*unitvector(m1-m2))--m2;
+    draw AA--m1 dashed evenly;
+    draw BB--m2 dashed evenly;
+    label(cote rotated angle(m2-m1),(m1+m2)/2);
+    );
+  cot
+enddef;
+
+%%%%%%%%%%
+%francisation
+%%%%%%%%%
+def trace expr o =
+    if path o: draw o else: draw o fi
+enddef;
+def remplis expr o =
+    if path o: fill o else: fill o fi
+enddef;
+
+%3D - basé sur donymodule
+color Sommet[];
+
+color Co[];
+Co0=jaune;
+Co1=violet;
+Co2=orange;
+Co3=ciel;
+Co4=vert;
+Co5=bleu;
+Co6=rouge;
+
+string pointilles;
+
+string typerepre;
+typerepre:="proj";
+
+%generalite
+vardef Projette(expr X)=
+  pair $;
+  Xobs := -redpart(X)*Aux1 + greenpart(X)*Aux3;
+  Yobs := -redpart(X)*Aux5 - greenpart(X)*Aux6 + bluepart(X)*Aux4;
+  if typerepre="proj":
+    Zobs := -redpart(X)*Aux7 - greenpart(X)*Aux8 - bluepart(X)*Aux2 + Rho;
+    XProj := DE*Xobs/Zobs;
+    YProj := DE*Yobs/Zobs;
+  elseif typerepre="persp":
+    XProj := DE*Xobs;
+    YProj := DE*Yobs;
+  fi;
+  $=(XProj,YProj);
+  $
+enddef;
+
+vardef Initialisation(expr r,t,p,d)=
+  Rho:=r;
+  Theta:=t;
+  Phi:=p;
+  DE:=d;
+  Aux1:=sind(Theta);
+  Aux2:=sind(Phi);
+  Aux3:=cosd(Theta);
+  Aux4:=cosd(Phi);
+  Aux5:=Aux3*Aux2;
+  Aux6:=Aux1*Aux2;
+  Aux7:=Aux3*Aux4;
+  Aux8:=Aux1*Aux4;
+  pointilles:="oui";
+enddef;
+
+%vues cachees
+
+vardef Face(text t)=
+  j:=0;
+  for p_=t :
+    if numeric p_:
+      a[j]:=p_;
+      j:=j+1;
+    fi;
+  endfor;
+  for k=1 upto (j-1):
+    Fc[a0*100+(k-1)]:=a[k];
+  endfor;
+enddef;
+
+vardef Oeil=(Rho*Aux7,Rho*Aux8,Rho*Aux2)
+enddef;
+
+vardef Vision(expr num)=
+  save bb;
+  color bb;
+  bb=(redpart(Oeil-Sommet[num]),greenpart(Oeil-Sommet[num]),bluepart(Oeil-Sommet[num]));  
+  bb
+enddef;
+
+vardef Normal(expr vecun,vecde,vectr)=
+  save aa;
+  color aa;
+  P1:=redpart(vecde-vecun);
+  P2:=greenpart(vecde-vecun);
+  P3:=bluepart(vecde-vecun);
+  Q1:=redpart(vectr-vecun);
+  Q2:=greenpart(vectr-vecun);
+  Q3:=bluepart(vectr-vecun);
+  aa=(P2*Q3-Q2*P3,P3*Q1-Q3*P1,P1*Q2-Q1*P2);
+  aa
+enddef;
+
+vardef ProduitScalaire(expr wec,mor)=
+  redpart(wec)*redpart(mor)+greenpart(wec)*greenpart(mor)+bluepart(wec)*bluepart(mor)
+enddef;
+
+vardef Distance(expr aa,bb)=%Entre deux points
+  sqrt((redpart(bb)-redpart(aa))*(redpart(bb)-redpart(aa))+(greenpart(bb)-greenpart(aa))*(greenpart(bb)-greenpart(aa))+(bluepart(bb)-bluepart(aa))*(bluepart(bb)-bluepart(aa)))
+enddef;
+
+vardef Module(expr aa)=%module d'un vecteur
+sqrt((redpart(aa))**2+(greenpart(aa))**2+(bluepart(aa)**2))
+enddef;
+
+color CoulTrace;
+CoulTrace=black;
+
+vardef DessineObjet=
+  for l=1 upto NF:
+    color cc,dd;
+    dd=Vision(Fc[l*100+1]);
+    cc=Normal(Sommet[Fc[l*100+1]],Sommet[Fc[l*100+2]],Sommet[Fc[l*100+3]]);
+    if (ProduitScalaire(dd,cc)<0):
+      if pointilles="oui":
+	drawoptions(dashed dashpattern(on3pt off6pt) withcolor CoulTrace);
+	trace for k=1 upto Fc[100*l]:
+	  Projette(Sommet[Fc[100*l+k]])--
+	endfor
+	cycle;
+      fi;
+    else:
+      trace for k=1 upto Fc[100*l]:
+	Projette(Sommet[Fc[100*l+k]])--
+      endfor
+      cycle withcolor CoulTrace;
+    fi;
+    drawoptions();
+  endfor;
+enddef;
+
+%%Transformations
+
+%Translations
+
+vardef TranslateSommets(expr v)=
+  for k=1 upto NbS:
+    Sommet[k]:=Sommet[k]+v;
+  endfor;
+enddef;
+
+vardef SymetriePlanZ(expr vv)=
+  for k=1 upto NbS:
+    w:=vv-bluepart(Sommet[k]);
+    Sommet[k]:=(redpart(Sommet[k]),greenpart(Sommet[k]),w);
+  endfor;
+enddef;
+
+vardef IntersectionDroite(expr aa,bb,cc,dd)=
+  save tt;
+  color tt;
+  tt=whatever[aa,bb];
+  tt=whatever[cc,dd];
+  tt
+enddef;
+
+%%denis Roegel----------
+vardef Intersectionplandroite(expr aa,bb,cc,dd,ee)=
+  save int;
+  boolean int;
+  color gg,caaa[];
+  caaa3=Normal(aa,bb,cc)/Module(Normal(aa,bb,cc));
+  caaa1=aa-dd;
+  caaa2=ee-dd;
+  if ProduitScalaire(caaa2,caaa3)<>0:
+    caaa4=caaa2*(ProduitScalaire(caaa1,caaa3)/ProduitScalaire(caaa2,caaa3));
+    int:=true;
+  else: % the line is parallel to the plane
+    int:=false;
+  fi;
+  int
+enddef;
+
+vardef IntersectionPlanDroite(expr aa,bb,cc,dd,ee)=%plan (aa,bb,cc) droite(dd,ee)
+  if Intersectionplandroite(aa,bb,cc,dd,ee):
+    gg=dd+caaa4;
+  fi;
+  gg
+enddef;
+
+vardef ProjectionsurPlan(expr aa,bb,cc,dd)=%Projection du point aa sur le plan (bbccdd)
+  save di,vc;
+  color va,vb,vc;
+  va=Normal(bb,cc,dd)/Module(Normal(bb,cc,dd));
+  vb=aa-bb;
+  di=-ProduitScalaire(vb,va);
+  va:=di*va;
+  vb:=vb+va;
+  vc=bb+vb;
+  vc
+enddef;
+
+vardef Intersectionplanplan(expr AA,BB,CC,DD,EE,FF)=%besoin pour la suite
+  color trial[];
+  path INTer;
+  if Intersectionplandroite(DD,EE,FF,AA,BB):
+    trial1=IntersectionPlanDroite(DD,EE,FF,AA,BB);
+  else:% there is no intersection or the intersection is the line
+    trial1=IntersectionPlanDroite(DD,EE,FF,AA,1/2[BB,CC]);
+  fi;
+  if Intersectionplandroite(DD,EE,FF,AA,CC):
+    trial2=IntersectionPlanDroite(DD,EE,FF,AA,CC);
+  else:% there is no intersection or the intersection is the line
+    trial2=IntersectionPlanDroite(DD,EE,FF,CC,1/2[BB,AA]);%modif de cp
+  fi;
+  %INTer=segment(10[trial1,trial2],10[trial2,trial1]);
+  INTer=droite(trial1,trial2);
+  INTer
+enddef;
+
+vardef IntersectionPlanPlan(expr aa,bb,cc,dd,ee,ff)=
+  %a verifier
+  save da,db,dc,int,INTER;
+  boolean int;
+  path INTER;
+  da=Module(aa-ProjectionsurPlan(aa,dd,ee,ff));
+  %show da;
+  db=Module(bb-ProjectionsurPlan(bb,dd,ee,ff));
+  %show db;
+  dc=Module(cc-ProjectionsurPlan(cc,dd,ee,ff));
+  %show dc;
+  if (da=db) and (db=dc): % the two planes are parallel
+    int:=false;
+  else:
+    int:=true;
+    if (da=db):
+      INTER=droite(aa,bb);
+    elseif (db=dc):
+      INTER=droite(bb,cc);
+    elseif (dc=da):
+      INTER=droite(cc,aa);
+    elseif (da>=db) and (da>=dc):
+      INTER=Intersectionplanplan(aa,bb,cc,dd,ee,ff);
+    elseif (db>=da) and (db>=dc):
+      INTER=Intersectionplanplan(bb,cc,aa,dd,ee,ff);
+    elseif (dc>=da) and (dc>=db):
+      INTER=Intersectionplanplan(cc,aa,bb,dd,ee,ff);
+    fi;
+  fi;
+  INTER
+enddef;
+%%---------------------
+
+%Cube
+numeric arete;
+arete=1;
+
+vardef Cube(text t)=
+  picture cub;
+  cub=image(
+  NbS:=8;
+  Sommet1:=(arete,0,0);
+  Sommet2:=(arete,arete,0);
+  Sommet3:=(0,arete,0);
+  Sommet4:=(0,0,0);
+  Sommet5:=(0,0,arete);
+  Sommet6:=(arete,0,arete);
+  Sommet7:=(arete,arete,arete);
+  Sommet8:=(0,arete,arete);
+%%Faces
+  NF:=6;
+  Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+  Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+  DessineObjet;
+  k:=1;
+  for p_=t:
+    if color p_:
+      p_=Sommet[k];
+      k:=k+1;
+    fi
+  endfor;
+  );
+cub
+enddef;
+
+vardef cube=
+  typetrace:="3D";
+  typerepre:="persp";
+  Initialisation(1500,30,20,100);
+  picture cub;
+  cub=image(
+      NbS:=8;
+    Sommet1:=(arete,0,0);
+    Sommet2:=(arete,arete,0);
+    Sommet3:=(0,arete,0);
+    Sommet4:=(0,0,0);
+    Sommet5:=(0,0,arete);
+    Sommet6:=(arete,0,arete);
+    Sommet7:=(arete,arete,arete);
+    Sommet8:=(0,arete,arete);
+%%Faces
+    NF:=6;
+    Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+    Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+    Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+    Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+    Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+    Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+    DessineObjet;
+    );
+  cub
+enddef;
+
+%Cube
+vardef Paveh(text t)=
+  picture paveh;
+  paveh=image(
+  NbS:=8;
+  Sommet1:=(0.75,0,0);
+  Sommet2:=(0.75,1.5,0);
+  Sommet3:=(0,1.5,0);
+  Sommet4:=(0,0,0);
+  Sommet5:=(0,0,1);
+  Sommet6:=(0.75,0,1);
+  Sommet7:=(0.75,1.5,1);
+  Sommet8:=(0,1.5,1);
+%%Faces
+  NF:=6;
+  Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+  Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+  DessineObjet;
+  k:=1;
+  for p_=t:
+    if color p_:
+      p_=Sommet[k];
+      k:=k+1;
+    fi
+  endfor;
+  );
+paveh
+enddef;
+
+%Cube
+vardef Pavev(text t)=
+  picture pavev;
+  pavev=image(
+  NbS:=8;
+  Sommet1:=(1,0,0);
+  Sommet2:=(1,0.75,0);
+  Sommet3:=(0,0.75,0);
+  Sommet4:=(0,0,0);
+  Sommet5:=(0,0,1.5);
+  Sommet6:=(1,0,1.5);
+  Sommet7:=(1,0.75,1.5);
+  Sommet8:=(0,0.75,1.5);
+%%Faces
+  NF:=6;
+  Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+  Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+  DessineObjet;
+  k:=1;
+  for p_=t:
+    if color p_:
+      p_=Sommet[k];
+      k:=k+1;
+    fi
+  endfor;
+  );
+pavev
+enddef;
+
+vardef Pave(text t)(expr aa,bb,cc)=
+  picture pave;
+  pave=image(
+  NbS:=8;
+  Sommet1:=(aa,0,0);
+  Sommet2:=(aa,bb,0);
+  Sommet3:=(0,bb,0);
+  Sommet4:=(0,0,0);
+  Sommet5:=(0,0,cc);
+  Sommet6:=(aa,0,cc);
+  Sommet7:=(aa,bb,cc);
+  Sommet8:=(0,bb,cc);
+%%Faces
+  NF:=6;
+  Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
+  Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+  Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
+  Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+  Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+  Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+  DessineObjet;
+  k:=1;
+  for p_=t:
+    if color p_:
+      p_=Sommet[k];
+      k:=k+1;
+    fi
+  endfor;
+  );
+pave
+enddef;
+
+vardef pave(expr aa,bb,cc)=
+  typetrace:="3D";
+  typerepre:="persp";
+  Initialisation(1500,30,20,100);
+  picture PAVE;
+  PAVE=image(
+      NbS:=8;
+    Sommet1:=(aa,0,0);
+    Sommet2:=(aa,bb,0);
+    Sommet3:=(0,bb,0);
+    Sommet4:=(0,0,0);
+    Sommet5:=(0,0,cc);
+    Sommet6:=(aa,0,cc);
+    Sommet7:=(aa,bb,cc);
+    Sommet8:=(0,bb,cc);
+%%Faces
+    NF:=6;
+    Fc[100]:=4;Fc[101]:=4;Fc[102]:=3;Fc[103]:=2;Fc[104]:=1;
+    Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+    Fc[300]:=4;Fc[301]:=4;Fc[302]:=1;Fc[303]:=6;Fc[304]:=5;
+    Fc[400]:=4;Fc[401]:=5;Fc[402]:=6;Fc[403]:=7;Fc[404]:=8;
+    Fc[500]:=4;Fc[501]:=2;Fc[502]:=3;Fc[503]:=8;Fc[504]:=7;
+    Fc[600]:=4;Fc[601]:=1;Fc[602]:=2;Fc[603]:=7;Fc[604]:=6;
+    DessineObjet;
+    );
+  PAVE
+enddef;
+
+vardef Tetraedrer(text t)=
+  picture tetrar;
+  tetrar=image(
+    %Sommets
+    NbS:=4;
+    Sommet1:=(0,0,1);
+    Sommet2:=(-0.4714045,-0.8164965,-1/3);
+    Sommet3:=(0.942809,0,-1/3);
+    Sommet4:=(-0.4714045,0.8164965,-1/3);
+    %Faces
+    NF:=4;
+    Fc[100]:=3;Fc[101]:=1;Fc[102]:=2;Fc[103]:=3;
+    Fc[200]:=3;Fc[201]:=1;Fc[202]:=3;Fc[203]:=4;
+    Fc[300]:=3;Fc[301]:=1;Fc[302]:=4;Fc[303]:=2;
+    Fc[400]:=3;Fc[401]:=2;Fc[402]:=4;Fc[403]:=3;
+    DessineObjet;
+    k:=1;
+    for p_=t:
+      if color p_:
+	p_=Sommet[k];
+	k:=k+1;
+      fi
+    endfor;
+    );
+  tetrar
+enddef;
+
+endinput;


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,15 @@
+vardef LATEX primary s =
+  write "verbatimtex" to "mptextmp.mp";
+  write "%&latex" to "mptextmp.mp";
+  write "\documentclass[]{article}" to "mptextmp.mp";
+  write "\usepackage{ProfCollege}" to "mptextmp.mp";
+  write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
+  write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
+  write "\usepackage{fourier}" to "mptextmp.mp";
+  write "\usepackage[french]{babel}" to "mptextmp.mp";
+  write "\begin{document}" to "mptextmp.mp";
+  write "etex" to "mptextmp.mp";
+  write "btex "&s&" etex" to "mptextmp.mp";
+  write EOF to "mptextmp.mp";
+  scantokens "input mptextmp"
+enddef;


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,3346 @@
+%%%%% epaisseur de tracés %%%%%%%%
+numeric eppen;
+eppen=0.25;
+
+pickup pencircle scaled eppen;
+defaultpen := savepen;
+
+%points pour placer les différents éléments
+pair _coinprec;%coinbasgauche de la boite précédente
+pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
+pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
+
+%paramètres
+numeric Nblignes; Nblignes:=1;
+pair DebutListe; DebutListe=(0,0);
+boolean NumeroteLignes; NumeroteLignes=false;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
+color CoulLignes; CoulLignes:=black;
+color ColBloc; % alias des couleurs de bloc
+
+%Version3
+color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
+BleuMouvTrois=(76/255,151/255,255/255);
+dBleuMouvTrois=(66/255,128/255,215/255);
+VioletAppTrois=(153/255,102/255,255/255);
+dVioletAppTrois=(133/255,92/255,214/255);
+OrangeConTrois=(255/255,171/255,25/255);
+OrangeTrois=(255/255,140/255,26/255);
+OrangeListTrois=(255/255,102/255,26/255);
+SonTrois=(207/255,99/255,207/255);
+DSonTrois=(201/255,79/255,201/255);
+FondSonTrois=(15/255,189/255,140/255);
+EvenementTrois=(255/255,191/255,0);
+MessageTrois=(230/255,172/255,0);
+CapteurTrois=(92/255,177/255,214/255);
+CapFonceTrois=(71/255,168/255,209/255);
+StyloTrois=(15/255,189/255,140/255);
+OvalStyloTrois=(13/255,165/255,122/255);
+BlocTrois=(255/255,102/255,128/255);
+BlocDefTrois=(255/255,77/255,106/255);
+BlocDefLigneTrois=(255/255,51/255,85/255);
+ControleTrois=(255/255,171/255,25/255);
+CloneTrois=(236/255,156/255,19/255);
+FondOvalOp=(89/255,192/255,89/255);
+
+vardef FondOvalAppMenu=
+  save $; color $;
+  $=dVioletAppTrois;
+  $
+enddef;
+
+%%%%Alias
+def Place expr o =
+    if path o: draw o else: draw o fi
+enddef;
+
+%impression
+boolean print;
+print=false;
+
+numeric coefprint;
+coefprint:=0.95;
+
+%texte ou symbole droite gauche
+boolean symbole;
+symbole=true;
+
+%divers
+numeric eb;%ecart boite-texte
+eb:=3pt;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
+ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
+
+vardef Box(text t)=
+  save $; path $;
+  picture ox;
+  ox=image(
+      if string t:
+      string demitt;
+      demitt=t&"\barre";
+      label(TEX(demitt),(0,0));
+    else:
+      draw t;
+    fi;
+    );
+  $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
+  $
+enddef;
+
+vardef RecBox(text t)=
+  save $; path $; path xo;
+  if string t:
+    string demit;
+    demit=t&"\demibarre";
+    xo=Box(demit);%on crée la boite contenant le texte
+  else:
+    xo=Box(t);
+  fi;
+    $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
+  $
+enddef;
+
+%%%%%%%%%%%%%%
+
+%%%%%%% Boites Ovales %%%%%%%%
+vardef OvalBox(text t)=
+  save $; path $; path xo;
+  if string t:
+    string demit;
+    demit=t&"\barre";
+    xo=Box(demit);%on crée la boite contenant le texte
+  else:
+    xo=Box(t);
+  fi;
+  $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+  $
+enddef;
+
+vardef OvalVar(expr ar)=
+  save Ovar; picture Ovar;
+  save TAvar; path TAvar;
+  string TTv;
+  TTv=ar&"\barre";
+  TAvar=OvalBox(TTv);
+  Ovar=image(
+      fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
+    draw TAvar if print=false : withcolor coefprint*white fi;
+    label(TEX("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
+    );
+  Ovar:=Ovar shifted(-center Ovar);
+  Ovar
+enddef;
+
+vardef OvalList(text listelist)=
+  save CList;  picture CList;
+  path TAlist; picture LOCMt;
+  LOCMt=ColleBoxNew(listelist);
+  TAlist=OvalBox(LOCMt);
+  CList=image(
+    fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
+    draw LOCMt;
+    draw TAlist if print=false : withcolor coefprint*white fi;
+    );
+  CList:=CList shifted(-center CList);
+  CList
+enddef;
+
+vardef OvalBloc(expr ar)=
+  save $;  picture $;
+  path tabloc;
+  tabloc=OvalBox(ar);
+  $=image(
+    fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
+    draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+    label(TEX("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
+    );
+  $
+enddef;
+
+vardef OvalMiniBox(text t)=
+  save $; path $; path xo;
+  if string t:
+    string demit;
+    demit=t&"\barre";
+    xo=Box(demit);%on crée la boite contenant le texte
+  else:
+    xo=Box(t);
+  fi;
+  $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+  $
+enddef;
+
+vardef DiamondBox(text t)=
+  save $; path $; path xo;
+  xo=Box(t);%on crée la boite contenant le texte
+  $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
+  $
+enddef;
+
+vardef OvalNb(expr ar)=
+  save Onb;  picture Onb;
+  path tanb;
+  tanb=OvalBox(ar);
+  Onb=image(
+    fill tanb withcolor white;
+    draw tanb if print=false : withcolor coefprint*white fi;
+    label(TEX("\barre "&ar),(0,0));
+    );
+  Onb
+enddef;
+
+vardef OvalText(expr ar)=
+  save $; save TA;
+  picture $;
+  path TA;
+  TA=OvalBox(ar);
+  $=image(%
+    fill TA withcolor white;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX("\barre "&ar),(0,0));
+    );
+    $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef OvalOp(text listeop)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(listeop);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OvalApp(text listop)=
+  save $;  picture $;
+  save ta; path ta;
+  save TTap; picture TTap;
+  TTap=ColleBoxNew(listop);
+  ta=OvalBox(TTap);
+  $=image(
+      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    draw TTap;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef OvalSon(text listop)=
+  save $;  picture $;
+  save ta; path ta;
+  save TTap; picture TTap;
+  TTap=ColleBoxNew(listop);
+  ta=OvalBox(TTap);
+  $=image(
+      fill ta if print=false : withcolor SonTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    draw TTap;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef OvalMusique(expr ar)=
+  save $; save TA;
+  picture $;
+  if string ar:
+    picture TT;
+    TT=ColleBoxNew(DoubleNote,"tempo");
+    path TA;
+    TA=OvalBox(TT);
+    $=image(
+	fill TA if print : withcolor white else : withcolor StyloTrois fi;
+      draw TT if print=true : withcolor coefprint*white fi;
+      );
+  else:
+    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef OvalMouv(expr ar)=
+  save $;  picture $;
+  path ta; string TTm;
+  TTm=ar&"\longbarre";
+  ta=OvalBox(TTm);
+  $=image(
+    fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
+    );
+  $
+enddef;
+
+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}";
+  fi;
+  path TAMC;
+  TAMC=OvalBox(TTm);
+  $=image(
+      fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
+    draw TAMC if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center TAMC);
+    );
+  $
+enddef;
+
+vardef OvalCap(text listecap)=
+  save Cap;  picture Cap;
+  save TAcap; path TAcap;
+  save LOCMcap; picture LOCMcap;
+  LOCMcap=ColleBoxNew(listecap);
+  TAcap=OvalBox(LOCMcap);
+  Cap=image(
+    fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
+    draw LOCMcap;
+    draw TAcap if print=false : withcolor coefprint*white fi;
+    );
+  Cap:=Cap shifted(-center Cap);
+  Cap
+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}\blacktriangledown}"
+  fi;
+  ta=OvalBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center ta);
+    );
+  $
+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}";
+  fi;
+  ta=OvalBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center ta);
+    );
+  $
+enddef;
+
+vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
+
+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}";
+  fi;
+  path TA;
+  TA=OvalBox(TTm);
+  $=image(%
+    fill TA if print : withcolor white else : withcolor DSonTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center TA);
+    );
+  $
+enddef;
+
+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}";
+  fi;
+  path TA;
+  TA=OvalBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor CloneTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm), center TA);
+    );
+  $
+enddef;
+
+vardef OvalStylo(expr ar)=
+  save $; save TA;
+  picture $;
+  string TT,TTI;
+  if string ar:
+    if print:
+      TT=ar&"\hbox to1em{\barre}\blacktriangledown"
+    else:
+      TT=ar&"\hbox to1em{\barre}{\color{white}\blacktriangledown}"
+    fi;
+    TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
+    path TA;
+    TA=OvalBox(TT);
+    $=image(
+	fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
+      draw TA if print=false : withcolor coefprint*white fi;
+      label(TEX(TT),(0,0)) if print=false : withcolor white fi;
+      );
+  else:
+    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef OvalCouleur(expr redcc,greencc,bluecc)=
+  save $; picture $;
+  string TTv;
+  path tacol;
+  TTv="\phantom{10}\barre";
+  tacol=OvalBox(TTv);
+  $=image(
+      fill tacol withcolor (redcc,greencc,bluecc);
+    draw tacol;
+    );
+  $:=$ shifted(-center tacol);
+  $
+enddef;
+
+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}";
+  fi;
+  path TA;
+  TA=OvalBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor MessageTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm), center TA);
+    );
+  $
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
+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}"
+  fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center ta);
+    );
+  $
+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}";
+  fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center ta);
+    );
+  $
+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}";
+  fi;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor FondOvalOp fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm), center TA);
+    );
+  $
+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;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor SonTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm), center TA);
+    );
+  $
+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}";
+  fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center ta);
+    );
+  $
+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}";
+    fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm),center ta);
+    );
+  $
+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}";
+  fi;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor OrangeTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm), center TA);
+    );
+  $
+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}";
+  fi;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(TEX(TTm), center TA);
+    );
+  $
+enddef;
+
+%%%%%%% Affichage Complet %%%%%%%%%%%%%
+vardef PuzzleBox(text t)=
+  save $; path $; path xo;
+  xo=Box(t);%on crée la boite contenant le texte
+  $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
+    (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
+    (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
+    (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
+    (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner xo+(0.625cm,0))--
+    (ulcorner xo+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
+    (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
+  $
+enddef;
+
+vardef BlocPuzzle(text nombloc)=
+  save Bpuzzle; picture Bpuzzle;
+  path TABp;   picture LOCMp;
+  LOCMp=ColleBoxNew(nombloc);
+  TABp=PuzzleBox(LOCMp);
+  Bpuzzle=image(
+    fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
+    draw LOCMp;
+    draw TABp  if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+    );
+  Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
+  Bpuzzle
+enddef;
+
+vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
+  save Colle; picture Colle;
+  Colle=nullpicture;
+  numeric nbcolle;  nbcolle:=0;
+  save NBCOLLE; path NBCOLLE;
+  for p_ = t:
+    nbcolle:=nbcolle+1;
+  endfor;
+  picture HOLD;  HOLD:=nullpicture;
+  if unknown LONG: LONG:=0 fi;
+  if nbcolle=1:%On dessine
+    for p_ = t:
+      if string p_:
+	NBCOLLE:=Box(p_);
+	HOLD:=image(
+	    label(TEX("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
+	  );
+	HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
+      else:
+	HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
+      fi;
+    endfor;
+    addto Colle also HOLD;
+    LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
+  else:%il faut coller les boites une à une
+    for p_ = t:
+      addto Colle also (ColleBoxNew(p_));
+    endfor;
+  fi;
+  Colle
+enddef;
+
+vardef CADRE(expr texti)=
+  save $;  path $;
+  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texti+(0.625cm,0))--
+    (ulcorner texti+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+  $
+enddef;
+
+vardef AFFI(expr texta)=
+  path cadre;
+  cadre=CADRE(texta);
+  picture TEXT;
+  TEXT=image(%
+      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+    draw texta;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef Affichage(expr textu)=
+  save $;
+  picture $;
+  $=AFFI(textu);
+  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%Pour les blocs de type contrôle
+vardef CADRECONTROLE(expr texti)=
+  save $;  path $;
+  path tracecadre;
+  $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
+    (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texti+(0.625cm,0))--
+    (ulcorner texti+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+  tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texti+(0.625cm,0))--
+    (ulcorner texti+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
+    (llcorner texti+(-eb,-eb));
+  $
+enddef;
+
+vardef AFFICONTROLE(expr texta)=
+  path cadre;
+  cadre=CADRECONTROLE(texta);
+  picture TEXT;
+  TEXT=image(
+      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+    draw texta;
+    draw tracecadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef AffichageControle(expr textu)=
+  save $;
+  picture $;
+  $=AFFICONTROLE(textu);
+  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $+(0.5cm,0);
+_coinprec:=_coinprec+(0,eb);
+coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CADREED(expr texti)=
+  save $; path $;
+  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+    1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
+  $
+enddef;
+
+vardef AFFIED(expr texta)=
+  path cadre;
+  cadre=CADREED(texta);
+  picture TEXT;
+  TEXT=image(
+      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+    draw texta;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef AffichageED(expr textu)=
+  save $;
+  picture $;
+  $=AFFIED(textu);
+  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%%% section Mouvement %%%%%%%%%%
+vardef Avancer(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
+  else:
+    texto=ColleBoxNew("avancer de",nbpas,"pas");
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Arcdroite=
+  save $;
+  picture $;
+  $=image(
+      path cc;
+    cc=fullcircle scaled 10pt;
+    drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+    );
+  $
+enddef;
+
+vardef Arcgauche=
+  save $;
+  picture $;
+  $=image(
+      path cc;
+    cc=fullcircle scaled 10pt;
+    drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+    );
+  $
+enddef;
+
+vardef Tournerd(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
+    fi;
+  else:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
+    fi;
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Tournerg(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
+    fi;
+  else:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
+    fi;
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Orienter(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
+  else:
+    texto=ColleBoxNew("s'orienter à",nbpas);
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Orienterdirection(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
+  else:
+    texto=ColleBoxNew("s'orienter vers",nbpas);
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
+
+vardef Aller(expr xa,ya)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Glisser(expr na,xa,ya)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Allera(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
+    ColBloc:=BleuMouvTrois;
+    $=Affichage(texto);
+  else:
+    message("");
+    message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
+    message("");  
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef Glissera(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string xa:
+    texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+else:
+  message("");
+  message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
+    message("");  
+  $=nullpicture;
+fi;
+  $
+enddef;
+
+vardef Ajouter(expr nba,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string xa:
+    texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+else:
+  message("");
+  message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
+  message("");  
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Mettre(expr xa,nba)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string xa:
+    texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
+    ColBloc:=BleuMouvTrois;
+    $=Affichage(texto);
+  else:
+    message("");
+    message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
+    message("");  
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef Rebondir=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("rebondir si le bord est atteint");
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef FixerSensRotation(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
+    ColBloc:=BleuMouvTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --FixerSensRotation-- admet un seul argument de type string");
+    $=nullpicture;
+  fi;
+  $
+enddef;  
+
+%%%% fin section Mouvement %%%%%%
+
+%%%%% Section Apparence %%%%%%%%%
+vardef DireT(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Dire(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef PenserT(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Penser(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Montrer=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("montrer");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Cacher=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("cacher");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Basculer(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --Basculer-- n'accepte qu'un argument string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
+
+vardef CostumeSuivant=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("costume suivant");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef ARSuivant=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("arrière-plan suivant");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef BasculerAR(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --BasculerAR-- n'accepte qu'un argument string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --BasculerARA-- n'accepte qu'un argument string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef AjouterEffet(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa:
+    texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffet(expr xa,nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa:
+    texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffet=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("annuler les effets graphiques");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef AnnulerEffets=AnnulerEffet enddef;
+
+vardef AjouterTaille(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreA(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTaille(expr art)=MettreA(art) enddef;
+
+vardef AllerPlan(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef DeplacerPlan(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa:
+    texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+%%%%fin Section Apparance%%%%%%%%%%%%
+
+%%%%%% Section Son%%%%%%%%%%%%
+vardef Jouer(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas :
+    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
+    ColBloc:=SonTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef JouerT(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
+    ColBloc:=SonTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef ArreterSon=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("arrêter tous les sons");
+  ColBloc:=SonTrois;;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef ArreterSons=ArreterSon enddef;
+
+vardef AjouterVol(expr xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef MettreVol(expr xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef AjouterEffetSon(expr nombre, effet)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string effet:
+    texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffetSon(expr effet,nombre)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string effet:
+    texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffetSon=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("annuler tous les effets sonores");
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+%Musique
+vardef Tambour(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string na:
+    texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Pause(expr na)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef JouerNote(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef ChoisirInstrument(expr na)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string na:
+    texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
+    ColBloc:=StyloTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef MettreTempo(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
+  ColBloc:=FondSonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef AjouterTempo(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
+ColBloc:=FondSonTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef DoubleNote=
+  save $;
+  picture $;
+  $=image(
+      draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
+      draw NoteImage shifted((-5,-2));
+    draw NoteImage shifted((3.5,2));
+    draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+);
+  $:=$ shifted(-3,0);
+  $
+enddef;
+
+vardef NoteImage=
+  save $;
+  picture $;
+  $=image(
+      linecap := butt;
+    linejoin := mitered;
+    fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+      --cycle if print=false: withcolor white fi;
+    pickup pencircle scaled 0.797011bp;
+    draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+      --cycle if print=false: withcolor white fi;
+    pickup pencircle scaled eppen;
+    );
+  $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+%%%%%% fin Section Son %%%%%%%%%
+
+%%%%%% Section Stylo %%%%%%%%%
+vardef ImageCrayon=
+  save titi;
+  picture titi;
+  titi=image(%
+      draw CrayonImage shifted(-12,0);
+    draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+     );
+  titi
+enddef;
+
+vardef Effacer=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"effacer tout");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Estampiller=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"estampiller");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef PoserStylo=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef ReleverStylo=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"relever le stylo");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef MettreCouleur(expr redc,greenc,bluec)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef AjouterCS(text t)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  numeric k; k=0;
+  for p_=t:
+    if k=1:string effet; effet=p_ fi;
+    if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+    k:=k+1;
+  endfor;
+  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreCS(text t)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  numeric k; k=0;
+  for p_=t:
+    if k=0:string effet; effet=p_ fi;
+    if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+    k:=k+1;
+  endfor;
+  texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+%taille du stylo
+vardef AjouterTS(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTS(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef CrayonImage=
+  picture cray;
+  cray=image(%
+      drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+    linecap := butt;
+    linejoin := mitered;
+    fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+    drawoptions (withcolor (0.349030,0.368640,0.450970));
+    pickup pencircle scaled 0.498140bp;
+    draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+    drawoptions (withcolor (1.000000,1.000000,1.000000));
+    %pickup pencircle scaled 0.000000bp;
+    fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
+    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+    pickup pencircle scaled 0.498140bp;
+    draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
+    drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+    %pickup pencircle scaled 0.000000bp;
+    fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+    pickup pencircle scaled 0.498140bp;
+    draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+    draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
+    %pickup pencircle scaled 0.000000bp;
+    fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+    fill (6.496090,12.082000)--cycle;
+    pickup pencircle scaled 0.498140bp;
+    draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+    draw (6.496090,12.082000);
+    drawoptions();
+    pickup pencircle scaled 0bp;
+    draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
+    pickup pencircle scaled eppen;
+    );
+  cray:=cray shifted((0,-9pt));
+  cray
+enddef;
+
+%%%%%% Fin Section Stylo %%%%%%%%
+
+%%%%%% Section Contrôle %%%%%%%%%
+color colControle;
+colControle:=OrangeConTrois;
+
+vardef AffichageStop=
+  path cadre;
+  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+    (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
+    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texto+(0.625cm,0))--
+    (ulcorner texto+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
+  picture TEXT;
+  TEXT=image(
+      fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+    draw texto;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+pair coindebutbloc[];
+numeric numblocrep;
+numblocrep:=0;
+
+vardef Repeter(expr xa)=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
+LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ColBloc:=OrangeConTrois;
+$=AffichageControle(texto);
+$
+enddef;
+
+vardef RepeterI=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  texto=ColleBoxNew("répéter indéfiniment");
+  LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+  ColBloc:=OrangeConTrois;
+  $=AffichageControle(texto);
+  $
+enddef;
+
+vardef RepeterJ(expr xa)=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  if picture xa:
+    texto=ColleBoxNew("répéter jusqu'à ce que",xa);
+    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+    ColBloc:=OrangeConTrois;
+    $=AffichageControle(texto);
+  else:
+    message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef FinBlocRepeter=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  _coinprec:=_coinprec-(0.5cm,0);
+  drawoptions();
+  texto=image(
+      labeloffset:=0;
+    label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  labeloffset:=3;
+  );
+path cadre;
+cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+  (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+  {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+  (ulcorner texto+(0.5cm,eb)){dir-90}..
+  {dir0}(ulcorner texto+(0.5cm+eb,0))--
+  (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+  {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+  (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+  {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
+  (urcorner texto+(-eb,0)){dir0}..
+  {dir-90}(urcorner texto+(0,-eb))--
+  (lrcorner texto+(0,eb)){dir-90}..
+  {dir180}(lrcorner texto+(-eb,0))--
+  (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+  {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+  (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+  {dir180}(llcorner texto+(0.125+0.375cm,0))--
+  (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+  {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
+  cycle;
+$=image(
+    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  AA:=ahangle;
+  ahangle:=90;
+  drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
+  ahangle:=AA;
+  draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+    (ulcorner texto+(0.5cm,eb)){dir-90}..
+    {dir0}(ulcorner texto+(0.5cm+eb,0))--
+    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
+    (urcorner texto+(-eb,0)){dir0}..
+    {dir-90}(urcorner texto+(0,-eb))--
+    (lrcorner texto+(0,eb)){dir-90}..
+    {dir180}(lrcorner texto+(-eb,0))--
+    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.375cm,0))--
+    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+    {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+  );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+vardef FinBlocRepeterI=FinBlocRepeter enddef;
+
+vardef Si(expr xa)=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  if picture xa:
+    texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
+    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+    ColBloc:=OrangeConTrois;
+    $=AffichageControle(texto);
+  else:
+    message("La commande -- Si -- n'admet qu'un argument de type picture.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef FinBlocSi=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  _coinprec:=_coinprec-(0.5cm,0);
+  drawoptions();
+  texto=image(
+      labeloffset:=0;
+    label.lrt(TEX("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  labeloffset:=3;
+  );
+path cadre;
+if BlocStopAvant=false:
+  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+    (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+    (ulcorner texto+(0.5cm,eb)){dir-90}..
+    {dir0}(ulcorner texto+(0.5cm+eb,0))--
+    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
+    (urcorner texto+(-eb,0)){dir0}..
+    {dir-90}(urcorner texto+(0,-eb))--
+    (lrcorner texto+(0,eb)){dir-90}..
+    {dir180}(lrcorner texto+(-eb,0))--
+    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.375cm,0))--
+    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+    {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
+    cycle;
+else:
+  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+    (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+    (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+    {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+    (urcorner texto+(-eb,0)){dir0}..
+    {dir-90}(urcorner texto+(0,-eb))--
+    (lrcorner texto+(0,eb)){dir-90}..
+    {dir180}(lrcorner texto+(-eb,0))--
+    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.375cm,0))--
+    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+    {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+    cycle;
+fi;
+$=image(
+    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  if BlocStopAvant=false:
+    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
+      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+      (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+      {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+      (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+      {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+      (urcorner texto+(-eb,0)){dir0}..
+      {dir-90}(urcorner texto+(0,-eb))--
+      (lrcorner texto+(0,eb)){dir-90}..
+      {dir180}(lrcorner texto+(-eb,0))--
+      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.375cm,0))--
+      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+      (coindebutbloc[numblocrep]+(0.125,0.125))
+       withcolor CoulLignes;
+  else:
+    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+      (urcorner texto+(-eb,0)){dir0}..
+      {dir-90}(urcorner texto+(0,-eb))--
+      (lrcorner texto+(0,eb)){dir-90}..
+      {dir180}(lrcorner texto+(-eb,0))--
+      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.375cm,0))--
+      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+      (coindebutbloc[numblocrep]+(0.125,0.125))
+      withcolor CoulLignes;
+  fi;
+  );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+boolean BlocStopAvant;
+BlocStopAvant=false;
+
+vardef Sinon=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  _coinprec:=_coinprec-(0.5cm,0);
+  drawoptions();
+  texto=image(
+      labeloffset:=0;
+    label.lrt(TEX("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
+  labeloffset:=3;
+  );
+  path cadre;
+  if BlocStopAvant=false:
+      cadre=(llcorner texto+(0.125,0))--
+	(coindebutbloc[numblocrep]+(0.125,0.125))--
+	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
+	cycle;
+    else:
+      cadre=(llcorner texto+(0.125,0))--
+	(coindebutbloc[numblocrep]+(0.125,0.125))--
+	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
+	cycle;
+    fi;
+$=image(
+    fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw texto;
+    if BlocStopAvant=false:
+      draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))--
+	(llcorner texto+(0.125+0.5cm+eb,0))
+	 withcolor CoulLignes;
+    else:
+            draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))
+	withcolor CoulLignes;
+    fi;
+    draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+    );
+  _coinprec:=(llcorner $)+(0.5cm,0);
+  _coinprec:=_coinprec+(0,eb);
+  coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
+  $
+enddef;
+
+vardef Attendre(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
+ColBloc:=OrangeConTrois;
+$=Affichage(texto);
+$
+enddef;
+  
+vardef AttendreJ(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if picture xa:
+    texto=ColleBoxNew("attendre jusqu'à ce que",xa);
+    ColBloc:=OrangeConTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef Stop(expr nbpas)=
+  LONG:=0;
+  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}";
+  fi;
+  texto=image(
+      path ti;
+    ti=Box("stop");
+    label(TEX("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
+    if picture nbpas:
+      picture ta;
+      ta=nbpas;
+      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+      draw ta;
+      drawoptions();
+    else:
+      path ta;
+      ta=RecBox(TTm);%
+      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+      if print=false : fill ta withcolor ControleTrois fi;
+      draw ta withcolor 0.95white;
+      label(TEX(TTm),center ta);
+      drawoptions();
+    fi;
+  );
+$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec;%+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CommencerClone=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand je commence comme un clone");
+  ColBloc:=ControleTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef CreerClone(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
+    ColBloc:=ControleTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- CreerClone -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef SupprimerClone=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      path ti;
+    ti=Box("supprimer ce clone");
+    label(TEX("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
+    );
+  $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%fin Section Contrôle%%%
+
+%%%%%%%% Section Evenements %%%%%
+vardef Drapeau=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef QPresse(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
+    ColBloc:=EvenementTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QPresse -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef QLutinPresse=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand ce sprite est cliqué");
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef QSpritePresse=QLutinPresse enddef;
+
+vardef QScenePressee=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand la scène est cliquée");
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef QBasculeAR(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
+    ColBloc:=EvenementTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QBasculeAR -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef QVolumeSup(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+else:
+  message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef QRecevoirMessage(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
+    ColBloc:=EvenementTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef EnvoyerMessage(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
+    ColBloc:=EvenementTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef EnvoyerMessageA(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
+    ColBloc:=EvenementTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef DrapeauImage=
+  save $; picture $;
+  $=image(
+      linecap := butt;
+    linejoin := rounded;
+    if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
+    fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+      --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
+      --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
+      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+      --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
+%    drawoptions (withcolor (0,0.625,0));
+    fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
+      --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
+      --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
+      --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
+      --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
+      --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
+      --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
+      --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
+      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+      --(78.234398,706.906006)--cycle;
+%    drawoptions (withcolor (0,0.625,0));
+    fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
+      --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
+      --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
+      --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
+      --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
+      --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
+      --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
+      --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
+      --(83.332001,706.440979)--cycle;
+%    drawoptions (withcolor (0,0.625,0));
+%pickup pencircle scaled 0.199253bp;
+    draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+      --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
+      --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
+      --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
+      --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
+      --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
+      --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
+      --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
+      --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
+      --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
+      --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
+      --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
+      --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
+      --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
+      --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
+      --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
+      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+      --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
+      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+      --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
+    %pickup pencircle scaled 0.8bp;
+    draw (72.000000,699)--(72.000000,720);
+    drawoptions();
+    );
+  $:=$ rotatedabout((72.000000,699),-15);
+  $
+enddef;
+%%Fin section Evenement%%%
+
+%%%% Section Bloc %%%%
+vardef AffichageBlocDef=
+  path cadre;
+  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+      (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
+      {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
+      (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
+      {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
+      (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
+      (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
+      (ulcorner texto+(0,2eb)){dir180}..
+      {dir-90}(ulcorner texto+(-eb,eb))--
+      cycle;
+  picture TEXT;
+  TEXT=image(
+    fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
+    draw texto;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef Bloc(text nomblocbloc)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      picture CBbloc;
+    CBbloc=ColleBoxNew(nomblocbloc);
+    draw CBbloc;
+    );
+  ColBloc:=BlocTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef NouveauBloc(text nbpasbloc)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      picture CB;
+    CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
+    draw CB;
+    );
+$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%%% Fin Section Bloc%%%%
+
+%%% Section Divers%%%
+vardef CommandeVide(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  if string commande :
+    texto=image(
+	label.lrt(TEX("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+    );
+else:
+  texto=commande;
+fi;
+ColBloc:=white;
+$=Affichage(texto);
+$
+enddef;
+
+vardef LigneVide=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  );
+TEXT=image(
+    path cadre;
+  cadre=CADRE(texto);
+  unfill cadre;
+  %draw (urcorner texto+(0,eb))--
+  %  (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+  %  {dir180}(ulcorner texto+(0.625cm,0))--
+  %  (ulcorner texto+(0.375cm,0)){dir180}..
+  %  {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+  %  (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LigneVideVar(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  if string texto:
+    texto=image(
+	label.lrt(TEX("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+    );
+else:
+  texto=commande;
+fi;
+TEXT=image(
+    path cadre;
+  cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
+    (llcorner texto+(0.375cm,0)+(-eb,-eb))--
+    (llcorner texto+(0.375cm,0)+(0,-2eb))--
+    (llcorner texto+(0.625cm,0)+(0,-2eb))--
+    (llcorner texto+(0.625cm,0)+(eb,-eb))--
+    (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
+    (ulcorner texto+(0.625cm,0)+(eb,eb))--
+    (ulcorner texto+(0.625cm,0))--
+    (ulcorner texto+(0.375cm,0))--
+    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
+  fill cadre withcolor white;
+%  draw (urcorner texto+(0,eb))--
+%    (ulcorner texto+(0.625cm,0)+(eb,eb))--
+%    (ulcorner texto+(0.625cm,0))--
+%    (ulcorner texto+(0.375cm,0))--
+%    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+%    (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LignePointilles=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(TEX("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  );
+TEXT=image(
+    path cadre;
+  cadre=CADRE(texto);
+  fill cadre withcolor white;
+  draw %(urcorner texto+(0,eb))--
+    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texto+(0.625cm,0))--
+    (ulcorner texto+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
+    %--(ulcorner texto+(0,eb))
+    withpen pencircle scaled 0.01;
+  draw texto;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef Commentaires(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(TEX("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
+  );
+TEXT=image(
+    path cadre;
+  cadre=CADRE(texto);
+  fill cadre withcolor white;
+  draw texto;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+$
+enddef;
+
+color colcom;
+colcom=0.5white;
+
+vardef CommentairesLigne(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  TEXT=image(
+      label.rt(TEX(commande), _coincom) withcolor colcom;
+  );
+$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
+$
+enddef;
+
+vardef BlocGris(expr ar)=
+  LONG:=0;
+  save $;  picture $;
+  path ta; string TTm;
+  TTm=ar&"\barre";
+  ta=OvalMiniBox(TTm);
+  $=image(
+    fill ta withcolor 0.975white;
+    draw ta withcolor 0.85white;
+    label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
+    );
+$
+enddef;
+
+vardef BlocGrisMulti(text argris)=
+  LONG:=0;
+  save $;  picture $;
+  path ta; picture TTm;
+  TTm=ColleBoxNew(argris);
+  ta=OvalMiniBox(TTm);
+  $=image(
+    fill ta withcolor 0.975white;
+    draw ta;
+    %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
+    );
+$
+enddef;
+
+boolean BlocE;
+BlocE:=false;
+
+vardef BlocUser(expr colblocuser)(text textbloc)=
+  LONG:=0;
+  save $;
+  picture $;
+  save TA;  path TA; picture BUTB; picture texto; picture TEXT;
+  BUTB=ColleBoxNew(textbloc);
+  TA=Box(BUTB);
+  texto=image(
+      draw BUTB;
+    );
+  ColBloc:=colblocuser;
+  if BlocE=false:
+    $=Affichage(texto);
+  else:
+    $=AffichageED(texto);
+  fi;
+  $
+enddef;
+
+vardef BlocCouleur(expr colblocuser)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(TEX("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  );
+ColBloc:=colblocuser;
+$=Affichage(texto);
+$
+enddef;
+%% fin Section Divers %%%
+
+%% Section Capteur %%%%
+vardef Demander(expr nbpas)=
+  LONG:=0;
+  save Dem;
+  picture Dem,texto;
+  if string nbpas:
+    texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
+    ColBloc:=CapteurTrois;
+    Dem=Affichage(texto);
+  else:
+    message("La commande -- Demander -- admet un argument de type string.");
+    Dem=nullpicture;
+  fi;
+  Dem
+enddef;
+
+vardef ReinitChrono=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("réinitialiser le chronomètre");
+  ColBloc:=CapteurTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef MettreGlissement(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
+    ColBloc:=CapteurTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- MettreGlissement -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%video
+
+vardef CameraImage=
+  LONG:=0;
+  save $;
+  picture $;
+  $=image(
+      pair A,B,C,D,E,F;
+    A=(0,0);
+    B-A=(10,0);
+    C-B=(0,10);
+    D-C=A-B;
+    E-B=(4,1.5);
+    F-C=(4,-1.5);
+    numeric EB;
+    EB=2pt;
+    path camera;
+    camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
+    fill camera withcolor (77,77,77)/255;
+    draw camera withcolor (77,77,77)*0.95/255;
+    path cc;
+    cc=fullcircle scaled 6;
+    color coul[];
+    if print:
+      coul0:=0.9white;
+      coul1:=0.933white;
+      coul2:=0.966white;
+      coul3:=white;
+    else:
+      coul0=(75,205,169)/255;
+      coul1=(16,230,212)/255;
+      coul2=(224,247,241)/255;
+      coul3=(1,1,1);
+    fi;
+    for k=0 upto 3:
+      fill (cc shifted(B+(10,3*k))) withcolor coul[k];
+      draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
+    endfor;
+    draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
+    pickup pencircle scaled eppen;
+    );
+  $:=$ scaled 0.8;
+  $
+enddef;
+
+vardef ImageCamera=
+  save titi;
+  picture titi;
+  titi=image(
+      draw CameraImage shifted(-12,-5);
+      draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
+    );
+  titi
+enddef;
+
+vardef ActiverVideo(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
+    ColBloc:=StyloTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- ActiverVideo -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef TransparenceVideo(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
+    ColBloc:=StyloTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- TransparenceVideo -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef QuandMV(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
+    ColBloc:=StyloTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QuandMV -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef VideoSur(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if (string nbpas) and (string xa):
+    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
+    %ColBloc:=StyloTrois;
+    path ta;
+    ta=OvalBox(texto);
+    $=image(
+    fill ta withcolor if print: coefprint*white else: StyloTrois fi;
+    draw ta withcolor CoulLignes;
+    %label(TEX(TTm),center ta) if print=false : withcolor blanc fi;
+  draw texto;
+    );
+  else:
+    message("La commande -- VideoSur -- admet deux arguments de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%% fin Section Capteur %%%
+
+%%% Section Variables %%%
+vardef MettreVar(expr nbpas,xa)=
+  LONG:=0;
+  save MV;
+  picture MV,texto;
+  if string nbpas :
+    texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
+    ColBloc:=OrangeTrois;
+    MV=Affichage(texto);
+  else:
+    message("La commande -- MettreVar -- admet un premier paramètre de type string.");
+    MV=nullpicture;
+  fi;
+  MV
+enddef;
+
+vardef AjouterVar(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
+  ColBloc:=OrangeTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef MontrerVar(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+    texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
+    ColBloc:=OrangeTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef CacherVar(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+    texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
+    ColBloc:=OrangeTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- CacherVar -- admet un premier paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%Liste
+vardef AjouterListe(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
+  ColBloc:=OrangeListTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef SupprimerListe(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
+  ColBloc:=OrangeListTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef SupprimerListeAll(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+      texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+else:
+  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+fi;
+$
+enddef;
+
+vardef InsererListe(expr xa,nbpas,ya)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string ya :
+      texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef RemplacerListe(expr xa,nbpas,ya)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+    texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
+  ColBloc:=OrangeListTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MontrerListe(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- MontrerListe -- admet un paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef CacherListe(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- CacherListe -- admet un paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%%% Section Operateur %%%
+
+vardef OpAdd(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpSous(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpMul(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpDiv(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpAlea(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpRegrouper(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpLettre(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpLongueur(expr pasun)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpArrondi(expr pasun)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpFonction(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef TestOpSup(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpInf(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpEgal(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpEt(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpOu(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpNon(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpContient(expr pasun,pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef AppCostume(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef AppAP(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef CapDistance(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef CapTemps(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef CapNumero(expr pasun,pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapToucheObjet(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapCouleur(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapCouleurs(expr pasun,pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapTouche(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapSouris=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("souris pressée ?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestListeContient(expr nbpas,nbbas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef ListeElement(expr nbpas,nbbas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef ListePosition(expr nbpas,nbbas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef ListeLongueur(expr nbpas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,3378 @@
+%%%%% epaisseur de tracés %%%%%%%%
+numeric eppen;
+eppen=0.25;
+
+pickup pencircle scaled eppen;
+defaultpen := savepen;
+
+%points pour placer les différents éléments
+pair _coinprec;%coinbasgauche de la boite précédente
+pair _coincom;%coinbasdroite de la boite afin d'y mettre des commentaires
+pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
+
+%paramètres
+numeric Nblignes; Nblignes:=1;
+pair DebutListe; DebutListe=(0,0);
+boolean NumeroteLignes; NumeroteLignes=false;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
+color CoulLignes; CoulLignes:=black;
+color ColBloc; % alias des couleurs de bloc
+
+vardef LATEXSCRATCH primary s =
+  write "verbatimtex" to "mptextmp.mp";
+  write "%&latex" to "mptextmp.mp";
+  write "\documentclass[12pt]{article}" to "mptextmp.mp";
+  write "\usepackage{ProfCollege}" to "mptextmp.mp";
+  write "\usepackage[utf8]{inputenc}" to "mptextmp.mp";
+  write "\usepackage[T1]{fontenc}" to "mptextmp.mp";
+  write "\usepackage[sfdefault,lf]{carlito}" to "mptextmp.mp";
+  write "\usepackage{pifont}" to "mptextmp.mp";
+%  write "\usepackage[french]{babel}" to "mptextmp.mp";
+%  write "\usepackage[autolanguage]{numprint}" to "mptextmp.mp";
+%  write "\usepackage{amssymb}" to "mptextmp.mp";
+%  write "\usepackage{amsmath}" to "mptextmp.mp";
+%  write "\usepackage{mathrsfs}" to "mptextmp.mp";
+%  write "\usepackage{xcolor}" to "mptextmp.mp";
+%  write "\usepackage{calc}" to "mptextmp.mp";
+%  write "\newlength{\longbarreheight}" to "mptextmp.mp";
+%  write "\setlength{\longbarreheight}{2.1ex+3pt}" to "mptextmp.mp";
+%  write "\newlength{\longbarredepth}" to "mptextmp.mp";
+%  write "\setlength{\longbarredepth}{0.9ex+3pt}" to "mptextmp.mp";
+%  write "\def\longbarre{\vrule height\longbarreheight depth\longbarredepth width0pt}" to "mptextmp.mp";
+%  write "\usepackage{graphicx}" to "mptextmp.mp";
+%  write "\def\barre{\vrule height2.1ex depth.9ex width0pt}" to "mptextmp.mp";
+%  write "\def\demibarre{\vrule height1.4ex depth.6ex width0pt}" to "mptextmp.mp";
+  write "\begin{document}" to "mptextmp.mp";
+  write "etex" to "mptextmp.mp";
+  write "btex "&s&" etex" to "mptextmp.mp";
+  write EOF to "mptextmp.mp";
+  scantokens "input mptextmp"
+enddef;
+
+
+%Version3
+color BleuMouvTrois,dBleuMouvTrois,VioletAppTrois,dVioletAppTrois,OrangeConTrois,OrangeTrois,OrangeListTrois,SonTrois,DSonTrois,EvenementTrois,CapteurTrois,StyloTrois,BlocTrois,BlocDefTrois,BlocDefLigneTrois,MessageTrois,ControleTrois,CapFonceTrois,CloneTrois,FondSonTrois,OvalStyloTrois,FondOvalOp;
+BleuMouvTrois=(76/255,151/255,255/255);
+dBleuMouvTrois=(66/255,128/255,215/255);
+VioletAppTrois=(153/255,102/255,255/255);
+dVioletAppTrois=(133/255,92/255,214/255);
+OrangeConTrois=(255/255,171/255,25/255);
+OrangeTrois=(255/255,140/255,26/255);
+OrangeListTrois=(255/255,102/255,26/255);
+SonTrois=(207/255,99/255,207/255);
+DSonTrois=(201/255,79/255,201/255);
+FondSonTrois=(15/255,189/255,140/255);
+EvenementTrois=(255/255,191/255,0);
+MessageTrois=(230/255,172/255,0);
+CapteurTrois=(92/255,177/255,214/255);
+CapFonceTrois=(71/255,168/255,209/255);
+StyloTrois=(15/255,189/255,140/255);
+OvalStyloTrois=(13/255,165/255,122/255);
+BlocTrois=(255/255,102/255,128/255);
+BlocDefTrois=(255/255,77/255,106/255);
+BlocDefLigneTrois=(255/255,51/255,85/255);
+ControleTrois=(255/255,171/255,25/255);
+CloneTrois=(236/255,156/255,19/255);
+FondOvalOp=(89/255,192/255,89/255);
+
+vardef FondOvalAppMenu=
+  save $; color $;
+  $=dVioletAppTrois;
+  $
+enddef;
+
+%%%%Alias
+def Place expr o =
+    if path o: draw o else: draw o fi
+enddef;
+
+%impression
+boolean print;
+print=false;
+
+numeric coefprint;
+coefprint:=0.95;
+
+%texte ou symbole droite gauche
+boolean symbole;
+symbole=true;
+
+%divers
+numeric eb;%ecart boite-texte
+eb:=3pt;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Création des boites
+ecrt:=eb/2;%largeur de la bordure de départ des boites Box, OValBox...
+
+vardef Box(text t)=
+  save $; path $;
+  picture ox;
+  ox=image(
+      if string t:
+      string demitt;
+      demitt=t&"\barre";
+      label(LATEXSCRATCH(demitt),(0,0));
+    else:
+      draw t;
+    fi;
+    );
+  $=(llcorner ox+(0,-ecrt))--(lrcorner ox+(0,-ecrt))--(urcorner ox+(0,ecrt))--(ulcorner ox+(0,ecrt))--cycle;
+  $
+enddef;
+
+vardef RecBox(text t)=
+  save $; path $; path xo;
+  if string t:
+    string demit;
+    demit=t&"\demibarre";
+    xo=Box(demit);%on crée la boite contenant le texte
+  else:
+    xo=Box(t);
+  fi;
+    $=(llcorner xo+(-eb,eb)){dir-90}..{dir0}(llcorner xo)--(lrcorner xo){dir0}..{dir90}(lrcorner xo+(eb,eb))--(urcorner xo+(eb,-eb)){dir90}..{dir180}(urcorner xo)--(ulcorner xo){dir180}..{dir-90}(ulcorner xo+(-eb,-eb))--cycle;
+  $
+enddef;
+
+%%%%%%%%%%%%%%
+
+%%%%%%% Boites Ovales %%%%%%%%
+vardef OvalBox(text t)=
+  save $; path $; path xo;
+  if string t:
+    string demit;
+    demit=t&"\barre";
+    xo=Box(demit);%on crée la boite contenant le texte
+  else:
+    xo=Box(t);
+  fi;
+  $=(llcorner xo+(eb,0))--(lrcorner xo-(eb,0)){dir0}..{dir180}(urcorner xo+(-eb,0))--(ulcorner xo+(eb,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+  $
+enddef;
+
+vardef OvalVar(expr ar)=
+  save Ovar; picture Ovar;
+  save TAvar; path TAvar;
+  string TTv;
+  TTv=ar&"\barre";
+  TAvar=OvalBox(TTv);
+  Ovar=image(
+      fill TAvar if print=false : withcolor OrangeTrois else : withcolor white fi;
+    draw TAvar if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH("\barre\bfseries "&ar),(0,0)) if print=false : withcolor white fi;
+    );
+  Ovar:=Ovar shifted(-center Ovar);
+  Ovar
+enddef;
+
+vardef OvalList(text listelist)=
+  save CList;  picture CList;
+  path TAlist; picture LOCMt;
+  LOCMt=ColleBoxNew(listelist);
+  TAlist=OvalBox(LOCMt);
+  CList=image(
+    fill TAlist if print=false : withcolor OrangeListTrois else : withcolor white fi;
+    draw LOCMt;
+    draw TAlist if print=false : withcolor coefprint*white fi;
+    );
+  CList:=CList shifted(-center CList);
+  CList
+enddef;
+
+vardef OvalBloc(expr ar)=
+  save $;  picture $;
+  path tabloc;
+  tabloc=OvalBox(ar);
+  $=image(
+    fill tabloc if print=false : withcolor BlocTrois else: withcolor white fi;
+    draw tabloc if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+    label(LATEXSCRATCH("\bfseries\barre "&ar),(0,0)) if print=false : withcolor blanc fi;
+    );
+  $
+enddef;
+
+vardef OvalMiniBox(text t)=
+  save $; path $; path xo;
+  if string t:
+    string demit;
+    demit=t&"\demibarre";
+    xo=Box(demit);%on crée la boite contenant le texte
+  else:
+    xo=Box(t);
+  fi;
+  $=(llcorner xo+(eb/2,0))--(lrcorner xo-(eb/2,0)){dir0}..{dir180}(urcorner xo+(-eb/2,0))--(ulcorner xo+(eb/2,0)){dir180}..{dir0}cycle;%on "arrondit" la boite
+  $
+enddef;
+
+vardef DiamondBox(text t)=
+  save $; path $; path xo;
+  xo=Box(t);%on crée la boite contenant le texte
+  $=(llcorner xo-(eb,0))--(lrcorner xo+(eb,0))--(1/2[lrcorner xo,urcorner xo]+(4eb,0))--(urcorner xo+(eb,0))--(ulcorner xo-(eb,0))--(1/2[llcorner xo,ulcorner xo]+(-4eb,0))--cycle;
+  $
+enddef;
+
+vardef OvalNb(expr ar)=
+  save Onb;  picture Onb;
+  path tanb;
+  tanb=OvalBox(ar);
+  Onb=image(
+    fill tanb withcolor white;
+    draw tanb if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH("\barre "&ar),(0,0));
+    );
+  Onb
+enddef;
+
+vardef OvalText(expr ar)=
+  save $; save TA;
+  picture $;
+  path TA;
+  TA=OvalBox(ar);
+  $=image(%
+    fill TA withcolor white;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH("\barre "&ar),(0,0));
+    );
+    $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef OvalOp(text listeop)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(listeop);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OvalApp(text listop)=
+  save $;  picture $;
+  save ta; path ta;
+  save TTap; picture TTap;
+  TTap=ColleBoxNew(listop);
+  ta=OvalBox(TTap);
+  $=image(
+      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    draw TTap;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef OvalSon(text listop)=
+  save $;  picture $;
+  save ta; path ta;
+  save TTap; picture TTap;
+  TTap=ColleBoxNew(listop);
+  ta=OvalBox(TTap);
+  $=image(
+      fill ta if print=false : withcolor SonTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    draw TTap;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef OvalMusique(expr ar)=
+  save $; save TA;
+  picture $;
+  if string ar:
+    picture TT;
+    TT=ColleBoxNew(DoubleNote,"tempo");
+    path TA;
+    TA=OvalBox(TT);
+    $=image(
+	fill TA if print : withcolor white else : withcolor StyloTrois fi;
+      draw TT if print=true : withcolor coefprint*white fi;
+      );
+  else:
+    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef OvalMouv(expr ar)=
+  save $;  picture $;
+  path ta; string TTm;
+  TTm=ar&"\longbarre";
+  ta=OvalBox(TTm);
+  $=image(
+    fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH("\longbarre "&ar),center ta) if print=false : withcolor blanc fi;
+    );
+  $
+enddef;
+
+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";
+  fi;
+  path TAMC;
+  TAMC=OvalBox(TTm);
+  $=image(
+      fill TAMC if print : withcolor white else : withcolor CapFonceTrois fi;
+    draw TAMC if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center TAMC);
+    );
+  $
+enddef;
+
+vardef OvalCap(text listecap)=
+  save Cap;  picture Cap;
+  save TAcap; path TAcap;
+  save LOCMcap; picture LOCMcap;
+  LOCMcap=ColleBoxNew(listecap);
+  TAcap=OvalBox(LOCMcap);
+  Cap=image(
+    fill TAcap if print=false : withcolor CapteurTrois else : withcolor white fi;
+    draw LOCMcap;
+    draw TAcap if print=false : withcolor coefprint*white fi;
+    );
+  Cap:=Cap shifted(-center Cap);
+  Cap
+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"
+  fi;
+  ta=OvalBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor dBleuMouvTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center ta);
+    );
+  $
+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";
+  fi;
+  ta=OvalBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor FondOvalAppMenu else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center ta);
+    );
+  $
+enddef;
+
+vardef OvalSonMenu(expr art)=OvalMenuSon(art) enddef;
+
+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";
+  fi;
+  path TA;
+  TA=OvalBox(TTm);
+  $=image(%
+    fill TA if print : withcolor white else : withcolor DSonTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center TA);
+    );
+  $
+enddef;
+
+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";
+  fi;
+  path TA;
+  TA=OvalBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor CloneTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm), center TA);
+    );
+  $
+enddef;
+
+vardef OvalStylo(expr ar)=
+  save $; save TA;
+  picture $;
+  string TT,TTI;
+  if string ar:
+    if print:
+      TT=ar&"\hbox to1em{\barre}\blacktriangledown"
+    else:
+      TT=ar&"\hbox to1em{\barre}\color{white}\blacktriangledown"
+    fi;
+    TTI=ar&"\hbox to1em{\barre}\phantom{\blacktriangledown}";
+    path TA;
+    TA=OvalBox(TT);
+    $=image(
+	fill TA if print : withcolor white else : withcolor OvalStyloTrois fi;
+      draw TA if print=false : withcolor coefprint*white fi;
+      label(LATEXSCRATCH(TT),(0,0)) if print=false : withcolor white fi;
+      );
+  else:
+    message("La commande --OvalStylo-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef OvalCouleur(expr redcc,greencc,bluecc)=
+  save $; picture $;
+  string TTv;
+  path tacol;
+  TTv="\phantom{10}\barre";
+  tacol=OvalBox(TTv);
+  $=image(
+      fill tacol withcolor (redcc,greencc,bluecc);
+    draw tacol;
+    );
+  $:=$ shifted(-center tacol);
+  $
+enddef;
+
+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";
+  fi;
+  path TA;
+  TA=OvalBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor MessageTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm), center TA);
+    );
+  $
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Rectangles
+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"
+  fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor BleuMouvTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center ta);
+    );
+  $
+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";
+  fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor VioletAppTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center ta);
+    );
+  $
+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";
+  fi;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor FondOvalOp fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm), center TA);
+    );
+  $
+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;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor SonTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm), center TA);
+    );
+  $
+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";
+  fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor EvenementTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center ta);
+    );
+  $
+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";
+    fi;
+  ta=RecBox(TTm);
+  $=image(
+      fill ta if print=false : withcolor CapteurTrois else: withcolor white fi;
+    draw ta if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm),center ta);
+    );
+  $
+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";
+  fi;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor OrangeTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm), center TA);
+    );
+  $
+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";
+  fi;
+  path TA;
+  TA=RecBox(TTm);
+  $=image(
+      fill TA if print : withcolor white else : withcolor OrangeListTrois fi;
+    draw TA if print=false : withcolor coefprint*white fi;
+    label(LATEXSCRATCH(TTm), center TA);
+    );
+  $
+enddef;
+
+%%%%%%% Affichage Complet %%%%%%%%%%%%%
+vardef PuzzleBox(text t)=
+  save $; path $; path xo;
+  xo=Box(t);%on crée la boite contenant le texte
+  $=(llcorner xo+(-eb,0)){dir-90}..{dir0}(llcorner xo+(0,-eb))--
+    (llcorner xo+(0.375cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner xo+(0.375cm,0)+(0,-2eb))--
+    (llcorner xo+(0.625cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner xo+(0.625cm,0)+(eb,-eb))--
+    (lrcorner xo+(0,-eb)){dir0}..{dir90}(lrcorner xo+(eb,0))--(urcorner xo+(eb,0)){dir90}..{dir-180}(urcorner xo+(0,eb))--
+    (ulcorner xo+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner xo+(0.625cm,0))--
+    (ulcorner xo+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner xo+(0.375cm,0)+(-eb,eb))--
+    (ulcorner xo+(0,eb)){dir-180}..{dir-90}(ulcorner xo+(-eb,0))--cycle;
+  $
+enddef;
+
+vardef BlocPuzzle(text nombloc)=
+  save Bpuzzle; picture Bpuzzle;
+  path TABp;   picture LOCMp;
+  LOCMp=ColleBoxNew(nombloc);
+  TABp=PuzzleBox(LOCMp);
+  Bpuzzle=image(
+    fill TABp if print=false : withcolor BlocDefTrois else : withcolor white fi;
+    draw LOCMp;
+    draw TABp  if print=true : withcolor black else: withcolor BlocDefLigneTrois fi;
+    );
+  Bpuzzle:=Bpuzzle shifted(-center Bpuzzle+(0,-eb/2));
+  Bpuzzle
+enddef;
+
+vardef ColleBoxNew(text t)=%Pour coller plusieurs boites
+  save Colle; picture Colle;
+  Colle=nullpicture;
+  numeric nbcolle;  nbcolle:=0;
+  save NBCOLLE; path NBCOLLE;
+  for p_ = t:
+    nbcolle:=nbcolle+1;
+  endfor;
+  picture HOLD;  HOLD:=nullpicture;
+  if unknown LONG: LONG:=0 fi;
+  if nbcolle=1:%On dessine
+    for p_ = t:
+      if string p_:
+	NBCOLLE:=Box(p_);
+	HOLD:=image(
+	    label(LATEXSCRATCH("\sffamily\bfseries\longbarre "&p_),(0,0)) if print=false : withcolor white fi;%->ok
+	  );
+	HOLD:=(HOLD shifted ((xpart((center HOLD)-(llcorner HOLD))+LONG,0)));
+      else:
+	HOLD:=(p_ shifted ((xpart((center p_)-(llcorner p_))+LONG,0)));
+      fi;
+    endfor;
+    addto Colle also HOLD;
+    LONG:=LONG+abs(lrcorner Colle - llcorner Colle)+eb;
+  else:%il faut coller les boites une à une
+    for p_ = t:
+      addto Colle also (ColleBoxNew(p_));
+    endfor;
+  fi;
+  Colle
+enddef;
+
+vardef CADRE(expr texti)=
+  save $;  path $;
+  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texti+(0.625cm,0))--
+    (ulcorner texti+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texti+(0,eb)){dir-180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+  $
+enddef;
+
+vardef AFFI(expr texta)=
+  path cadre;
+  cadre=CADRE(texta);
+  picture TEXT;
+  TEXT=image(%
+      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+    draw texta;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef Affichage(expr textu)=
+  save $;
+  picture $;
+  $=AFFI(textu);
+  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%Pour les blocs de type contrôle
+vardef CADRECONTROLE(expr texti)=
+  save $;  path $;
+  path tracecadre;
+  $=(llcorner texti+(-eb,-eb))--%(llcorner texti+(0,-eb))--
+    (llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texti+(0.625cm,0))--
+    (ulcorner texti+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--cycle;
+  tracecadre=(llcorner texti+(0.5cm,0)+(0,-eb))--(llcorner texti+(0.875cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.875cm,0)+(0,-2eb))--
+    (llcorner texti+(1.125cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(1.125cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir180}(urcorner texti+(0,eb))--
+    (ulcorner texti+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texti+(0.625cm,0))--
+    (ulcorner texti+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texti+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texti+(0,eb)){dir180}..{dir-90}(ulcorner texti+(-eb,0))--
+    (llcorner texti+(-eb,-eb));
+  $
+enddef;
+
+vardef AFFICONTROLE(expr texta)=
+  path cadre;
+  cadre=CADRECONTROLE(texta);
+  picture TEXT;
+  TEXT=image(
+      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+    draw texta;
+    draw tracecadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef AffichageControle(expr textu)=
+  save $;
+  picture $;
+  $=AFFICONTROLE(textu);
+  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $+(0.5cm,0);
+_coinprec:=_coinprec+(0,eb);
+coindebutbloc[numblocrep]:=(llcorner $)+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CADREED(expr texti)=
+  save $; path $;
+  $=(llcorner texti+(-eb,0)){dir-90}..{dir0}(llcorner texti+(0,-eb))--
+    (llcorner texti+(0.375cm,0)+(-eb,-eb)){dir0}..
+    {dir0}(llcorner texti+(0.375cm,0)+(0,-2eb))--
+    (llcorner texti+(0.625cm,0)+(0,-2eb)){dir0}..
+    {dir0}(llcorner texti+(0.625cm,0)+(eb,-eb))--
+    (lrcorner texti+(0,-eb)){dir0}..{dir90}(lrcorner texti+(eb,0))--(urcorner texti+(eb,0)){dir90}..{dir-180}(urcorner texti+(0,eb))--
+    1/2[ulcorner texti+(-eb,eb),urcorner texti+(eb,eb)]{dir150}..{dir-150}(ulcorner texti+(-eb,eb))--cycle;
+  $
+enddef;
+
+vardef AFFIED(expr texta)=
+  path cadre;
+  cadre=CADREED(texta);
+  picture TEXT;
+  TEXT=image(
+      fill cadre withcolor if print=true :coefprint*white else: if unknown ColBloc : white else : ColBloc fi; fi;
+    draw texta;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef AffichageED(expr textu)=
+  save $;
+  picture $;
+  $=AFFIED(textu);
+  $:=$ shifted (if unknown _coinprec:(0,0) else :_coinprec fi - (ulcorner $));
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+%%% section Mouvement %%%%%%%%%%
+vardef Avancer(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("avancer de",OvalNb(nbpas),"pas");
+  else:
+    texto=ColleBoxNew("avancer de",nbpas,"pas");
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Arcdroite=
+  save $;
+  picture $;
+  $=image(
+      path cc;
+    cc=fullcircle scaled 10pt;
+    drawarrow reverse(subpath(0,0.75*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+    );
+  $
+enddef;
+
+vardef Arcgauche=
+  save $;
+  picture $;
+  $=image(
+      path cc;
+    cc=fullcircle scaled 10pt;
+    drawarrow (subpath(0.75*length cc,1.5*length cc) of cc) withpen pencircle scaled 2bp if print=false: withcolor white fi;
+    );
+  $
+enddef;
+
+vardef Tournerd(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcdroite,"de",OvalNb(nbpas),"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à droite de",OvalNb(nbpas),"degré(s)");
+    fi;
+  else:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcdroite,"de",nbpas,"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à droite de",nbpas,"degré(s)");
+    fi;
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Tournerg(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcgauche,"de",OvalNb(nbpas),"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à gauche de",OvalNb(nbpas),"degré(s)");
+    fi;
+  else:
+    if symbole=true:
+      texto=ColleBoxNew("tourner",Arcgauche,"de",nbpas,"degré(s)");
+    else:
+      texto=ColleBoxNew("tourner à gauche de",nbpas,"degré(s)");
+    fi;
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Orienter(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("s'orienter à",OvalNb(nbpas));
+  else:
+    texto=ColleBoxNew("s'orienter à",nbpas);
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Orienterdirection(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("s'orienter vers",OvalMouvMenu(nbpas));
+  else:
+    texto=ColleBoxNew("s'orienter vers",nbpas);
+  fi;
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef OrienterVers(expr nbpass)=Orienterdirection(nbpass) enddef;
+
+vardef Aller(expr xa,ya)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("aller à x:",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Glisser(expr na,xa,ya)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à x :",if string xa:OvalNb(xa) else: xa fi,"y:",if string ya:OvalNb(ya) else: ya fi);
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Allera(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("aller à",OvalMouvMenu(nbpas));
+    ColBloc:=BleuMouvTrois;
+    $=Affichage(texto);
+  else:
+    message("");
+    message("La commande -- Allera -- n'accepte qu'un type string comme argument.");
+    message("");  
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef Glissera(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string xa:
+    texto=ColleBoxNew("glisser en",if string na:OvalNb(na) else: na fi,"seconde(s) à",OvalMouvMenu(xa));
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+else:
+  message("");
+  message("La commande -- Glissera -- n'accepte qu'un type string comme deuxième argument.");
+    message("");  
+  $=nullpicture;
+fi;
+  $
+enddef;
+
+vardef Ajouter(expr nba,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string xa:
+    texto=ColleBoxNew("ajouter",if string nba:OvalNb(nba) else: nba fi,"à",xa);
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+else:
+  message("");
+  message("La commande -- Ajouter -- n'accepte qu'un type string comme deuxième argument.");
+  message("");  
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Mettre(expr xa,nba)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string xa:
+    texto=ColleBoxNew("mettre",xa,"à",if string nba:OvalNb(nba) else: nba fi);
+    ColBloc:=BleuMouvTrois;
+    $=Affichage(texto);
+  else:
+    message("");
+    message("La commande -- Mettre -- n'accepte qu'un type string comme premier argument.");
+    message("");  
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef Rebondir=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("rebondir si le bord est atteint");
+  ColBloc:=BleuMouvTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef FixerSensRotation(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("fixer le sens de rotation",RecMouvMenu(nbpas));%RecMouvMenu(nbpas));
+    ColBloc:=BleuMouvTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --FixerSensRotation-- admet un seul argument de type string");
+    $=nullpicture;
+  fi;
+  $
+enddef;  
+
+%%%% fin section Mouvement %%%%%%
+
+%%%%% Section Apparence %%%%%%%%%
+vardef DireT(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Dire(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("dire",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef PenserT(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi,"pendant",if string xa : OvalNb(xa) else: xa fi,"seconde(s)");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Penser(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("penser à",if string na:OvalText(na) else: na fi);
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef Montrer=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("montrer");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Cacher=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("cacher");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Basculer(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("basculer sur le costume",OvalAppMenu(nbpas));
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --Basculer-- n'accepte qu'un argument string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef BasculerCostume(expr nbpass)=Basculer(nbpass) enddef;
+
+vardef CostumeSuivant=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("costume suivant");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef ARSuivant=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("arrière-plan suivant");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef BasculerAR(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas));
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --BasculerAR-- n'accepte qu'un argument string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef BasculerARA(expr nbpas)=%quand la scène est sélectionnée...
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("basculer sur l'arrière-plan",OvalAppMenu(nbpas)," et attendre");
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --BasculerARA-- n'accepte qu'un argument string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef AjouterEffet(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa:
+    texto=ColleBoxNew("ajouter",if string nbpas: OvalNb(nbpas) else: nbpas fi," à l'effet",RecMenuApp(xa));
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --AjouterEffet-- n'accepte qu'un deuxième argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffet(expr xa,nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa:
+    texto=ColleBoxNew("mettre l'effet",RecMenuApp(xa),"à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --MettreEffet-- n'accepte qu'un premier argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffet=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("annuler les effets graphiques");
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef AnnulerEffets=AnnulerEffet enddef;
+
+vardef AjouterTaille(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("ajouter",if string na:OvalNb(na) else: na fi,"à la taille");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreA(expr na)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("mettre la taille à",if string na:OvalNb(na) else: na fi,"\% de la taille initiale");
+ColBloc:=VioletAppTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTaille(expr art)=MettreA(art) enddef;
+
+vardef AllerPlan(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("aller à l'",RecMenuApp(nbpas),"plan");
+    ColBloc:=VioletAppTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --AllerPlan-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef DeplacerPlan(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa:
+    texto=ColleBoxNew("déplacer de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"plan(s) vers l'",RecMenuApp(xa));
+  ColBloc:=VioletAppTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --DeplacerPlan-- n'accepte qu'un deuxième argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+%%%%fin Section Apparance%%%%%%%%%%%%
+
+%%%%%% Section Son%%%%%%%%%%%%
+vardef Jouer(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas :
+    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas));
+    ColBloc:=SonTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef JouerT(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string nbpas:
+    texto=ColleBoxNew("jouer le son",OvalMenuSon(nbpas)," jusqu'au bout");
+    ColBloc:=SonTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande --Jouer-- n'accepte qu'un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef ArreterSon=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("arrêter tous les sons");
+  ColBloc:=SonTrois;;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef ArreterSons=ArreterSon enddef;
+
+vardef AjouterVol(expr xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("ajouter",if string xa:OvalNb(xa) else: xa fi," au volume");
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef MettreVol(expr xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("mettre le volume à",if string xa: OvalNb(xa) else: xa fi,"~\%");
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef AjouterEffetSon(expr nombre, effet)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string effet:
+    texto=ColleBoxNew("ajouter",if string nombre : OvalNb(nombre) else: nombre fi," à l'effet",RecMenuSon(effet));
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- AjouterEffet -- n'accepte qu'un deuxième argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MettreEffetSon(expr effet,nombre)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string effet:
+    texto=ColleBoxNew("mettre l'effet",RecMenuSon(effet),"à",if string nombre:OvalNb(nombre) else: nombre fi);
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- MettreEffet -- n'accepte qu'un argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef AnnulerEffetSon=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew("annuler tous les effets sonores");
+  ColBloc:=SonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+%Musique
+vardef Tambour(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string na:
+    texto=ColleBoxNew(DoubleNote,"jouer du tambour",OvalStylo(na),"pendant",if string xa:OvalNb(xa) else: xa fi,"temps");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+else:
+  message("La commande --Tambour-- n'accepte qu'un premier argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef Pause(expr na)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew(DoubleNote,"faire une pause pendant",if string na: OvalNb(na) else: na fi," temps");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef JouerNote(expr na,xa)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  texto=ColleBoxNew(DoubleNote,"jouer la note",if string na:OvalNb(na) else: na fi," pendant",if string xa:OvalNb(xa) else: xa fi," temps");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef ChoisirInstrument(expr na)=
+  LONG:=0;
+  save $;
+  picture $, texto;
+  if string na:
+    texto=ColleBoxNew(DoubleNote,"choisir l'instrument \no{}",OvalStylo(na));
+    ColBloc:=StyloTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- ChoisirInstrument -- n'accepte qu'un argument de type string");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef MettreTempo(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(DoubleNote,"mettre le tempo à",if string xa:OvalNb(xa) else: xa fi);
+  ColBloc:=FondSonTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef AjouterTempo(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(DoubleNote,"ajouter",if string xa:OvalNb(xa) else: xa fi," au tempo");
+ColBloc:=FondSonTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef DoubleNote=
+  save $;
+  picture $;
+  $=image(
+      draw (((0,0)--(0,18pt)) shifted(-12,-9pt)) withpen pencircle scaled 1bp withcolor if print: coefprint*white else: StyloTrois fi;
+      draw NoteImage shifted((-5,-2));
+    draw NoteImage shifted((3.5,2));
+    draw (((0,0)--(0,18pt)) shifted(12,-9pt)) withpen pencircle scaled 1bp withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+);
+  $:=$ shifted(-3,0);
+  $
+enddef;
+
+vardef NoteImage=
+  save $;
+  picture $;
+  $=image(
+      linecap := butt;
+    linejoin := mitered;
+    fill (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+      --cycle if print=false: withcolor white fi;
+    pickup pencircle scaled 0.797011bp;
+    draw (80.695297,716.262024)..controls (80.574203,716.257996) and (80.476601,716.171997)..(80.480499,716.062988)
+      --(80.687500,704.125000)..controls (79.941399,704.570007) and (78.644501,704.637024)..(77.312500,704.223022)
+      ..controls (75.503899,703.659973) and (74.339798,702.429993)..(74.710899,701.473022)
+      ..controls (75.082001,700.512024) and (76.851601,700.187988)..(78.656303,700.750000)
+      ..controls (80.425797,701.301025) and (81.574203,702.504028)..(81.273399,703.453003)
+      --(81.125000,711.987976)..controls (82.910202,711.909973) and (86.910202,711.625000)..(84.917999,706.456970)
+      ..controls (85.992203,707.906006) and (86.839798,709.598022)..(85.273399,711.629028)
+      ..controls (84.378899,712.789001) and (81.617203,713.348022)..(81.062500,715.398010)
+      --(81.054703,716.065979)..controls (81.050797,716.176025) and (80.953102,716.262024)..(80.832001,716.262024)
+      --cycle if print=false: withcolor white fi;
+    pickup pencircle scaled eppen;
+    );
+  $:=($ rotatedabout((72.000000,699),15)) scaled 0.8;
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+%%%%%% fin Section Son %%%%%%%%%
+
+%%%%%% Section Stylo %%%%%%%%%
+vardef ImageCrayon=
+  save titi;
+  picture titi;
+  titi=image(%
+      draw CrayonImage shifted(-12,0);
+    draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;%Trop clair->(14/255,187/255,139/255);
+     );
+  titi
+enddef;
+
+vardef Effacer=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"effacer tout");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef Estampiller=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"estampiller");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef PoserStylo=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon," stylo en position d'écriture");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef ReleverStylo=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"relever le stylo");
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+$
+enddef;
+
+vardef MettreCouleur(expr redc,greenc,bluec)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon," mettre la couleur du stylo à",OvalCouleur(redc,greenc,bluec));
+  ColBloc:=StyloTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef AjouterCS(text t)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  numeric k; k=0;
+  for p_=t:
+    if k=1:string effet; effet=p_ fi;
+    if k=0: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+    k:=k+1;
+  endfor;
+  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nombre:OvalNb(nombre) else: nombre fi,"à la",OvalStylo(effet),"du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreCS(text t)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  numeric k; k=0;
+  for p_=t:
+    if k=0:string effet; effet=p_ fi;
+    if k=1: if string p_:string nombre; nombre=p_ else: if picture p_: picture nombre; nombre=p_; fi fi fi;
+    k:=k+1;
+  endfor;
+  texto=ColleBoxNew(ImageCrayon,"mettre la",OvalStylo(effet),"du stylo à",if string nombre:OvalNb(nombre) else: nombre fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+%taille du stylo
+vardef AjouterTS(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à la taille du stylo");
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef MettreTS(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew(ImageCrayon,"mettre la taille du stylo à",if string nbpas:OvalNb(nbpas) else: nbpas fi);
+ColBloc:=StyloTrois;
+$=Affichage(texto);
+$
+enddef;
+
+vardef CrayonImage=
+  picture cray;
+  cray=image(%
+      drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+    linecap := butt;
+    linejoin := mitered;
+    fill (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+    drawoptions (withcolor (0.349030,0.368640,0.450970));
+    pickup pencircle scaled 0.498140bp;
+    draw (0.960938,1.390630)--(1.644530,2.996090)..controls (1.730470,3.199220) and (1.917970,3.500000)..(2.062500,3.664060)..controls (2.324220,3.968750) and (3.539060,2.753910)..(3.234380,2.488280)..controls (3.070310,2.343750) and (2.769530,2.160160)..(2.566410,2.074220)--cycle;
+    drawoptions (withcolor (1.000000,1.000000,1.000000));
+    %pickup pencircle scaled 0.000000bp;
+    fill (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280)--cycle;
+    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+    pickup pencircle scaled 0.498140bp;
+    draw (1.800780,3.363280)--(2.558590,5.156250)..controls (2.601560,5.257810) and (2.699220,5.402340)..(2.777340,5.480470)--(8.281250,10.984400)..controls (8.300780,11.003900) and (8.339840,11.023400)..(8.367190,11.031300)..controls (9.757810,11.398400) and (10.968800,10.187500)..(10.601600,8.792970)..controls (10.593800,8.769530) and (10.574200,8.730470)..(10.554700,8.710940)--(6.316410,4.476560)..controls (5.539060,3.695310) and (4.089840,2.718750)..(3.074220,2.289060)--(2.980470,2.246090)..controls (2.957030,2.238280) and (2.953130,2.242190)..(2.972660,2.261720)..controls (3.539060,2.753910) and (2.324220,3.968750)..(1.800780,3.363280);
+    drawoptions (if print=false:withcolor (0.298050,0.556850,0.917650) fi);
+    %pickup pencircle scaled 0.000000bp;
+    fill (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+    drawoptions (if print=false:withcolor (0.349030,0.368640,0.450970) fi);
+    pickup pencircle scaled 0.498140bp;
+    draw (8.316410,11.019500)--(13.031300,15.730500)..controls (13.109400,15.808600) and (13.257800,15.878900)..(13.371100,15.886700)..controls (14.308600,15.949200) and (15.519500,14.734400)..(15.457000,13.796900)..controls (15.449200,13.687500) and (15.378900,13.535200)..(15.300800,13.457000)--(10.589800,8.746090)..controls (10.968800,10.187500) and (9.757810,11.398400)..(8.316410,11.019500)--cycle;
+    draw (12.562500,15.265600)..controls (7.937500,15.644500) and (9.453130,10.488300)..(6.117190,11.398400);
+    %pickup pencircle scaled 0.000000bp;
+    fill (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+    fill (6.496090,12.082000)--cycle;
+    pickup pencircle scaled 0.498140bp;
+    draw (7.199220,12.785200)..controls (6.812500,13.175800) and (6.179690,13.175800)..(5.792970,12.785200)..controls (5.402340,12.398400) and (5.402340,11.765600)..(5.792970,11.378900)..controls (6.179690,10.988300) and (6.812500,10.988300)..(7.199220,11.378900)..controls (7.589840,11.765600) and (7.589840,12.398400)..(7.199220,12.785200)--cycle;
+    draw (6.496090,12.082000);
+    drawoptions();
+    pickup pencircle scaled 0bp;
+    draw (-3,0)--(-3,18) withcolor if print : coefprint*white else: StyloTrois fi;
+    pickup pencircle scaled eppen;
+    );
+  cray:=cray shifted((0,-9pt));
+  cray
+enddef;
+
+%%%%%% Fin Section Stylo %%%%%%%%
+
+%%%%%% Section Contrôle %%%%%%%%%
+color colControle;
+colControle:=OrangeConTrois;
+
+vardef AffichageStop=
+  path cadre;
+  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+    (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--(urcorner texto+(eb,0)){dir90}..{dir180}(urcorner texto+(0,eb))--
+    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texto+(0.625cm,0))--
+    (ulcorner texto+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texto+(0,eb)){dir180}..{dir-90}(ulcorner texto+(-eb,0))--cycle;
+  picture TEXT;
+  TEXT=image(
+      fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+    draw texto;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+pair coindebutbloc[];
+numeric numblocrep;
+numblocrep:=0;
+
+vardef Repeter(expr xa)=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  texto=ColleBoxNew("répéter", if string xa : OvalNb(xa) else: xa fi,"fois");
+LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+ColBloc:=OrangeConTrois;
+$=AffichageControle(texto);
+$
+enddef;
+
+vardef RepeterI=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  texto=ColleBoxNew("répéter indéfiniment");
+  LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+  ColBloc:=OrangeConTrois;
+  $=AffichageControle(texto);
+  $
+enddef;
+
+vardef RepeterJ(expr xa)=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  if picture xa:
+    texto=ColleBoxNew("répéter jusqu'à ce que",xa);
+    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+    ColBloc:=OrangeConTrois;
+    $=AffichageControle(texto);
+  else:
+    message("La commande -- RepeterJ -- n'admet qu'un argument de type picture.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef FinBlocRepeter=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  _coinprec:=_coinprec-(0.5cm,0);
+  drawoptions();
+  texto=image(
+      labeloffset:=0;
+    label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  labeloffset:=3;
+  );
+path cadre;
+cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+  (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+  {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+  (ulcorner texto+(0.5cm,eb)){dir-90}..
+  {dir0}(ulcorner texto+(0.5cm+eb,0))--
+  (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+  {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+  (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+  {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
+  (urcorner texto+(-eb,0)){dir0}..
+  {dir-90}(urcorner texto+(0,-eb))--
+  (lrcorner texto+(0,eb)){dir-90}..
+  {dir180}(lrcorner texto+(-eb,0))--
+  (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+  {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+  (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+  {dir180}(llcorner texto+(0.125+0.375cm,0))--
+  (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+  {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
+  cycle;
+$=image(
+    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  AA:=ahangle;
+  ahangle:=90;
+  drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
+  ahangle:=AA;
+  draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+    (ulcorner texto+(0.5cm,eb)){dir-90}..
+    {dir0}(ulcorner texto+(0.5cm+eb,0))--
+    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
+    (urcorner texto+(-eb,0)){dir0}..
+    {dir-90}(urcorner texto+(0,-eb))--
+    (lrcorner texto+(0,eb)){dir-90}..
+    {dir180}(lrcorner texto+(-eb,0))--
+    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.375cm,0))--
+    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+    {dir90}(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+  );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+vardef FinBlocRepeterI=FinBlocRepeter enddef;
+
+vardef Si(expr xa)=
+  LONG:=0;
+  save $;
+  numblocrep:=numblocrep+1;
+  picture $,texto;
+  if picture xa:
+    texto=ColleBoxNew("si\hbox to1em{}",xa,"alors");
+    LongRep[numblocrep]:=abs(llcorner texto-lrcorner texto);%afin de conserver la longueur du"répéter..."
+    ColBloc:=OrangeConTrois;
+    $=AffichageControle(texto);
+  else:
+    message("La commande -- Si -- n'admet qu'un argument de type picture.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef FinBlocSi=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  _coinprec:=_coinprec-(0.5cm,0);
+  drawoptions();
+  texto=image(
+      labeloffset:=0;
+    label.lrt(LATEXSCRATCH("\hbox to"&decimal(LongRep[numblocrep])&"pt{\phantom{\barre fin du bloc}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  labeloffset:=3;
+  );
+path cadre;
+if BlocStopAvant=false:
+  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+    (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
+    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--
+    (ulcorner texto+(0.5cm,eb)){dir-90}..
+    {dir0}(ulcorner texto+(0.5cm+eb,0))--
+    (ulcorner texto+(0.5cm+0.375cm,0)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.375cm,0)+(eb,-eb))--%
+    (ulcorner texto+(0.5cm+0.625cm,0)+(eb,-eb)){dir0}..%
+    {dir0}(ulcorner texto+(0.5cm+0.625cm,0)+(2eb,0))--%  
+    (urcorner texto+(-eb,0)){dir0}..
+    {dir-90}(urcorner texto+(0,-eb))--
+    (lrcorner texto+(0,eb)){dir-90}..
+    {dir180}(lrcorner texto+(-eb,0))--
+    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.375cm,0))--
+    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+    {dir90}(llcorner texto+(0.125,0)+(0,eb))--  
+    cycle;
+else:
+  cadre=(coindebutbloc[numblocrep]+(0.125,0.125))--
+    (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+    {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+    (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+    {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+    (urcorner texto+(-eb,0)){dir0}..
+    {dir-90}(urcorner texto+(0,-eb))--
+    (lrcorner texto+(0,eb)){dir-90}..
+    {dir180}(lrcorner texto+(-eb,0))--
+    (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+    (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+    {dir180}(llcorner texto+(0.125+0.375cm,0))--
+    (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+    {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+    cycle;
+fi;
+$=image(
+    fill cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw cadre withcolor if print : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  if BlocStopAvant=false:
+    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0)){dir180}..
+      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+      (ulcorner texto+(0.125+0.875cm,0)){dir0}..
+      {dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+      (ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+      {dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+      (urcorner texto+(-eb,0)){dir0}..
+      {dir-90}(urcorner texto+(0,-eb))--
+      (lrcorner texto+(0,eb)){dir-90}..
+      {dir180}(lrcorner texto+(-eb,0))--
+      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.375cm,0))--
+      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+      (coindebutbloc[numblocrep]+(0.125,0.125))
+       withcolor CoulLignes;
+  else:
+    draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+      {dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+      (ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+      {dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+      (urcorner texto+(-eb,0)){dir0}..
+      {dir-90}(urcorner texto+(0,-eb))--
+      (lrcorner texto+(0,eb)){dir-90}..
+      {dir180}(lrcorner texto+(-eb,0))--
+      (llcorner texto+(0.125+0.625cm,0)+(2eb,0)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
+      (llcorner texto+(0.125+0.375cm,0)+(eb,-eb)){dir180}..
+      {dir180}(llcorner texto+(0.125+0.375cm,0))--
+      (llcorner texto+(0.125,0)+(eb,0)){dir180}..
+      {dir90}(llcorner texto+(0.125,0)+(0,eb))--
+      (coindebutbloc[numblocrep]+(0.125,0.125))
+      withcolor CoulLignes;
+  fi;
+  );
+_coinprec:=(llcorner $);
+_coinprec:=_coinprec+(0,eb);
+numblocrep:=numblocrep-1;
+$
+enddef;
+
+boolean BlocStopAvant;
+BlocStopAvant=false;
+
+vardef Sinon=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  _coinprec:=_coinprec-(0.5cm,0);
+  drawoptions();
+  texto=image(
+      labeloffset:=0;
+    label.lrt(LATEXSCRATCH("\, \hbox to"&decimal(LongRep[numblocrep])&"pt{\bfseries\barre sinon}"),if unknown _coinprec: (0,0) else:_coinprec fi) if print=false : withcolor blanc fi;
+  labeloffset:=3;
+  );
+  path cadre;
+  if BlocStopAvant=false:
+      cadre=(llcorner texto+(0.125,0))--
+	(coindebutbloc[numblocrep]+(0.125,0.125))--
+	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
+	cycle;
+    else:
+      cadre=(llcorner texto+(0.125,0))--
+	(coindebutbloc[numblocrep]+(0.125,0.125))--
+	(coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+%	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+%	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+%	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))--  
+	cycle;
+    fi;
+$=image(
+    fill cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw cadre withcolor if print=true : coefprint*white else : if unknown colControle : LightOrange else : colControle fi fi;
+  draw texto;
+    if BlocStopAvant=false:
+      draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))--
+	(llcorner texto+(0.125+0.5cm+eb,0))
+	 withcolor CoulLignes;
+    else:
+            draw (coindebutbloc[numblocrep]+(0.0625+0.5cm,0)+(eb,0.125)){dir180}..
+	{dir-90}(coindebutbloc[numblocrep]+(0.5cm,0)+(0,-eb))--
+	(ulcorner texto+(0.5cm,0)+(0,eb)){dir-90}..
+	{dir0}(ulcorner texto+(0.5cm,0)+(eb,0))--
+	%(ulcorner texto+(0.125+0.875cm,0)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
+	%(ulcorner texto+(0.125+1.125cm,0)+(eb,-eb)){dir0}..
+	%{dir0}(ulcorner texto+(0.125+1.125cm,0)+(2eb,0))--%--%      
+	(urcorner texto+(-eb,0)){dir0}..
+	{dir-90}(urcorner texto+(0,-eb))--
+	(lrcorner texto+(0,eb)){dir-90}..
+	{dir180}(lrcorner texto+(-eb,0))--
+	(llcorner texto+(0.125+1.125cm,0)+(2eb,0)){dir180}..
+	{dir180}(llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
+	(llcorner texto+(0.125+0.875cm,0)+(eb,-eb)){dir180}..
+	{dir180}(llcorner texto+(0.125+0.875cm,0))
+	withcolor CoulLignes;
+    fi;
+    draw (llcorner texto+(0.125,0))--(coindebutbloc[numblocrep]+(0.125,0.125)) withcolor CoulLignes;
+    );
+  _coinprec:=(llcorner $)+(0.5cm,0);
+  _coinprec:=_coinprec+(0,eb);
+  coindebutbloc[numblocrep]:=(llcorner $)+(0,eb+0.125);
+  $
+enddef;
+
+vardef Attendre(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("attendre",if string nbpas:OvalNb(nbpas) else: nbpas fi,"seconde(s)");
+ColBloc:=OrangeConTrois;
+$=Affichage(texto);
+$
+enddef;
+  
+vardef AttendreJ(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if picture xa:
+    texto=ColleBoxNew("attendre jusqu'à ce que",xa);
+    ColBloc:=OrangeConTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- AttendreJ -- n'admet qu'un argument de type picture.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef Stop(expr nbpas)=
+  LONG:=0;
+  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";
+  fi;
+  texto=image(
+      path ti;
+    ti=Box("stop");
+    label(LATEXSCRATCH("\bfseries\barre stop"),center ti) if print=false : withcolor white fi;%_>ok
+    if picture nbpas:
+      picture ta;
+      ta=nbpas;
+      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+      draw ta;
+      drawoptions();
+    else:
+      path ta;
+      ta=RecBox(TTm);%
+      drawoptions(shifted (xpart((lrcorner ti)-(llcorner ta)+(eb,0)),ypart(center ti-center ta)));
+      if print=false : fill ta withcolor ControleTrois fi;
+      draw ta withcolor 0.95white;
+      label(LATEXSCRATCH(TTm),center ta);
+      drawoptions();
+    fi;
+  );
+$=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec;%+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef CommencerClone=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand je commence comme un clone");
+  ColBloc:=ControleTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef CreerClone(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("créer un clone de",OvalMenuControle(nbpas));
+    ColBloc:=ControleTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- CreerClone -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef SupprimerClone=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      path ti;
+    ti=Box("supprimer ce clone");
+    label(LATEXSCRATCH("\bfseries\barre supprimer ce clone"),center ti) if print=false : withcolor white fi;%_>ok
+    );
+  $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%fin Section Contrôle%%%
+
+%%%%%%%% Section Evenements %%%%%
+vardef Drapeau=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand",DrapeauImage shifted(-(80,707)),"est cliqué");
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef QPresse(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand la touche",RecEvenementMenu(nbpas),"est pressée");
+    ColBloc:=EvenementTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QPresse -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef QLutinPresse=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand ce sprite est cliqué");
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef QSpritePresse=QLutinPresse enddef;
+
+vardef QScenePressee=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("quand la scène est cliquée");
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+  $
+enddef;
+
+vardef QBasculeAR(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand l'arrière-plan bascule sur",RecEvenementMenu(nbpas));
+    ColBloc:=EvenementTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QBasculeAR -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef QVolumeSup(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand le",RecEvenementMenu(nbpas),"$>$",if string xa:OvalNb(xa) else: xa fi);
+  ColBloc:=EvenementTrois;
+  $=AffichageED(texto);
+else:
+  message("La commande -- QVolumeSup -- accepte un premier argument de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef QRecevoirMessage(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("quand je reçois",RecEvenementMenu(nbpas));
+    ColBloc:=EvenementTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QRecevoirMessage -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef EnvoyerMessage(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas));
+    ColBloc:=EvenementTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- EnvoyerMessage -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef EnvoyerMessageA(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("envoyer à tous",OvalMenuEvenement(nbpas),"et attendre");
+    ColBloc:=EvenementTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- EnvoyerMessageA -- accepte un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef DrapeauImage=
+  save $; picture $;
+  $=image(
+      linecap := butt;
+    linejoin := rounded;
+    if print = false: drawoptions(withcolor(76/255,191/255,86/255)) fi;
+    fill (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+      --(77.820297,718.401978)--(78.042999,718.312988)--(78.234398,718.237976)
+      --(78.234398,706.906006)--(78.042999,706.979980)--(77.820297,707.065979)
+      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+      --(72.507797,707.648010)--(72.000000,707.585999)--cycle;
+%    drawoptions (withcolor (0,0.625,0));
+    fill (78.246101,712.565979)--(78.261703,718.226990)--(78.476601,718.140991)
+      --(78.691399,718.059021)--(78.902298,717.976990)--(79.113297,717.895020)
+      --(79.328102,717.820007)--(79.546898,717.754028)--(79.765602,717.687988)
+      --(79.992203,717.632996)--(80.226601,717.585999)--(80.468803,717.543030)
+      --(80.718803,717.515991)--(80.980499,717.495972)--(81.253899,717.492004)
+      --(81.542999,717.495972)--(81.843803,717.515991)--(82.160202,717.546997)
+      --(82.492203,717.598022)--(82.847702,717.664001)--(83.218803,717.745972)
+      --(83.332001,717.773010)--(83.332001,706.440979)--(83.218803,706.414001)
+      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+      --(78.234398,706.906006)--cycle;
+%    drawoptions (withcolor (0,0.625,0));
+    fill (83.332001,712.109009)--(83.332001,717.773010)--(83.613297,717.843994)
+      --(84.031303,717.965027)--(84.468803,718.104980)--(84.933601,718.265991)
+      --(85.425797,718.448975)--(85.945297,718.651978)--(86.492203,718.882996)
+      --(87.070297,719.137024)--(87.679703,719.414001)--(88.324203,719.718994)
+      --(89.000000,720.054993)--(89.000000,708.718994)--(88.324203,708.387024)
+      --(87.679703,708.081970)--(87.070297,707.801025)--(86.492203,707.551025)
+      --(85.945297,707.320007)--(85.425797,707.117004)--(84.933601,706.934021)
+      --(84.468803,706.773010)--(84.031303,706.632996)--(83.613297,706.512024)
+      --(83.332001,706.440979)--cycle;
+%    drawoptions (withcolor (0,0.625,0));
+%pickup pencircle scaled 0.199253bp;
+    draw (72.000000,713.254028)--(72.000000,718.918030)--(72.507797,718.979980)
+      --(72.984398,719.026978)--(73.437500,719.054993)--(73.867203,719.070007)
+      --(74.273399,719.073975)--(74.660202,719.062988)--(75.023399,719.043030)
+      --(75.367203,719.012024)--(75.695297,718.968994)--(76.003899,718.918030)
+      --(76.300797,718.859009)--(76.578102,718.793030)--(76.847702,718.723022)
+      --(77.105499,718.648010)--(77.351601,718.570007)--(77.589798,718.484009)
+      --(77.820297,718.401978)--(78.042999,718.312988)--(78.261703,718.226990)
+      --(78.476601,718.140991)--(78.691399,718.059021)--(78.902298,717.976990)
+      --(79.113297,717.895020)--(79.328102,717.820007)--(79.546898,717.754028)
+      --(79.765602,717.687988)--(79.992203,717.632996)--(80.226601,717.585999)
+      --(80.468803,717.543030)--(80.718803,717.515991)--(80.980499,717.495972)
+      --(81.253899,717.492004)--(81.542999,717.495972)--(81.843803,717.515991)
+      --(82.160202,717.546997)--(82.492203,717.598022)--(82.847702,717.664001)
+      --(83.218803,717.745972)--(83.613297,717.843994)--(84.031303,717.965027)
+      --(84.468803,718.104980)--(84.933601,718.265991)--(85.425797,718.448975)
+      --(85.945297,718.651978)--(86.492203,718.882996)--(87.070297,719.137024)
+      --(87.679703,719.414001)--(88.324203,719.718994)--(89.000000,720.054993)
+      --(89.000000,708.718994)--(88.324203,708.387024)--(87.679703,708.081970)
+      --(87.070297,707.801025)--(86.492203,707.551025)--(85.945297,707.320007)
+      --(85.425797,707.117004)--(84.933601,706.934021)--(84.468803,706.773010)
+      --(84.031303,706.632996)--(83.613297,706.512024)--(83.218803,706.414001)
+      --(82.847702,706.328003)--(82.492203,706.265991)--(82.160202,706.215027)
+      --(81.843803,706.179993)--(81.542999,706.164001)--(81.253899,706.156006)
+      --(80.980499,706.164001)--(80.718803,706.184021)--(80.468803,706.210999)
+      --(80.226601,706.250000)--(79.992203,706.301025)--(79.765602,706.354980)
+      --(79.546898,706.418030)--(79.328102,706.487976)--(79.113297,706.562988)
+      --(78.902298,706.645020)--(78.691399,706.723022)--(78.476601,706.809021)
+      --(78.261703,706.895020)--(78.042999,706.979980)--(77.820297,707.065979)
+      --(77.589798,707.151978)--(77.351601,707.237976)--(77.105499,707.315979)
+      --(76.847702,707.390991)--(76.578102,707.460999)--(76.300797,707.526978)
+      --(76.003899,707.585999)--(75.695297,707.637024)--(75.367203,707.676025)
+      --(75.023399,707.710999)--(74.660202,707.729980)--(74.273399,707.742004)
+      --(73.867203,707.737976)--(73.437500,707.723022)--(72.984398,707.690979)
+      --(72.507797,707.648010)--(72.000000,707.585999)--cycle if print=false : withcolor (0,0.625,0) fi;
+    %pickup pencircle scaled 0.8bp;
+    draw (72.000000,699)--(72.000000,720);
+    drawoptions();
+    );
+  $:=$ rotatedabout((72.000000,699),-15);
+  $
+enddef;
+%%Fin section Evenement%%%
+
+%%%% Section Bloc %%%%
+vardef AffichageBlocDef=
+  path cadre;
+  cadre=(llcorner texto+(-eb,0)){dir-90}..{dir0}(llcorner texto+(0,-eb))--
+      (llcorner texto+(0.375cm,0)+(-eb,-eb)){dir0}..
+      {dir0}(llcorner texto+(0.375cm,0)+(0,-2eb))--
+      (llcorner texto+(0.625cm,0)+(0,-2eb)){dir0}..
+      {dir0}(llcorner texto+(0.625cm,0)+(eb,-eb))--
+      (lrcorner texto+(0,-eb)){dir0}..{dir90}(lrcorner texto+(eb,0))--
+      (urcorner texto+(eb,eb)){dir90}..{dir180}(urcorner texto+(0,2eb))--
+      (ulcorner texto+(0,2eb)){dir180}..
+      {dir-90}(ulcorner texto+(-eb,eb))--
+      cycle;
+  picture TEXT;
+  TEXT=image(
+    fill cadre withcolor if print : coefprint*white else : BlocTrois fi;%if unknown colBloc : DarkPurple else: colBloc fi fi;
+    draw texto;
+    draw cadre withcolor CoulLignes;
+    );
+  TEXT
+enddef;
+
+vardef Bloc(text nomblocbloc)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      picture CBbloc;
+    CBbloc=ColleBoxNew(nomblocbloc);
+    draw CBbloc;
+    );
+  ColBloc:=BlocTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef NouveauBloc(text nbpasbloc)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      picture CB;
+    CB=ColleBoxNew("définir",BlocPuzzle(nbpasbloc));
+    draw CB;
+    );
+$=AffichageBlocDef shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageBlocDef);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+%%%% Fin Section Bloc%%%%
+
+%%% Section Divers%%%
+vardef CommandeVide(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  if string commande :
+    texto=image(
+	label.lrt(LATEXSCRATCH("\barre \hbox to"&commande&"cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+    );
+else:
+  texto=commande;
+fi;
+ColBloc:=white;
+$=Affichage(texto);
+$
+enddef;
+
+vardef LigneVide=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  );
+TEXT=image(
+    path cadre;
+  cadre=CADRE(texto);
+  unfill cadre;
+  %draw (urcorner texto+(0,eb))--
+  %  (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+  %  {dir180}(ulcorner texto+(0.625cm,0))--
+  %  (ulcorner texto+(0.375cm,0)){dir180}..
+  %  {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))--
+  %  (ulcorner texto+(0,eb)) withpen pencircle scaled 0;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LigneVideVar(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  if string texto:
+    texto=image(
+	label.lrt(LATEXSCRATCH("\barre \hbox to2cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+    );
+else:
+  texto=commande;
+fi;
+TEXT=image(
+    path cadre;
+  cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
+    (llcorner texto+(0.375cm,0)+(-eb,-eb))--
+    (llcorner texto+(0.375cm,0)+(0,-2eb))--
+    (llcorner texto+(0.625cm,0)+(0,-2eb))--
+    (llcorner texto+(0.625cm,0)+(eb,-eb))--
+    (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
+    (ulcorner texto+(0.625cm,0)+(eb,eb))--
+    (ulcorner texto+(0.625cm,0))--
+    (ulcorner texto+(0.375cm,0))--
+    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+    (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
+  fill cadre withcolor white;
+%  draw (urcorner texto+(0,eb))--
+%    (ulcorner texto+(0.625cm,0)+(eb,eb))--
+%    (ulcorner texto+(0.625cm,0))--
+%    (ulcorner texto+(0.375cm,0))--
+%    (ulcorner texto+(0.375cm,0)+(-eb,eb))--
+%    (ulcorner texto+(0,eb)) withpen pencircle scaled 0.05bp;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef LignePointilles=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(LATEXSCRATCH("\barre\Large \strut\ldots\hbox to1em{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  );
+TEXT=image(
+    path cadre;
+  cadre=CADRE(texto);
+  fill cadre withcolor white;
+  draw %(urcorner texto+(0,eb))--
+    (ulcorner texto+(0.625cm,0)+(eb,eb)){dir180}..
+    {dir180}(ulcorner texto+(0.625cm,0))--
+    (ulcorner texto+(0.375cm,0)){dir180}..
+    {dir180}(ulcorner texto+(0.375cm,0)+(-eb,eb))
+    %--(ulcorner texto+(0,eb))
+    withpen pencircle scaled 0.01;
+  draw texto;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+_coincom:=1/2[lrcorner $,urcorner $]+(eb,0);
+_coinnum:=(xpart(DebutListe+(-3*eb,0)),ypart(1/2[llcorner $,ulcorner $]));
+if NumeroteLignes=true:
+  label(LATEXSCRATCH("\footnotesize"&decimal(Nblignes)&""),_coinnum);
+  Nblignes:=Nblignes+1;
+fi;
+$
+enddef;
+
+vardef Commentaires(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  texto=image(
+      label.lrt(LATEXSCRATCH("\barre "& commande &""),if unknown _coinprec: (0,0) else:_coinprec fi) withcolor 0.5*white;
+  );
+TEXT=image(
+    path cadre;
+  cadre=CADRE(texto);
+  fill cadre withcolor white;
+  draw texto;
+  );
+$=TEXT shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner TEXT);
+_coinprec:=llcorner $;
+_coinprec:=_coinprec+(0,eb);
+$
+enddef;
+
+color colcom;
+colcom=0.5white;
+
+vardef CommentairesLigne(expr commande)=
+  LONG:=0;
+  save $;
+  picture $,texto,TEXT;
+  TEXT=image(
+      label.rt(LATEXSCRATCH(commande), _coincom) withcolor colcom;
+  );
+$=TEXT shifted (_coincom - 1/2[llcorner TEXT,ulcorner TEXT]);
+$
+enddef;
+
+vardef BlocGris(expr ar)=
+  LONG:=0;
+  save $;  picture $;
+  path ta; string TTm;
+  TTm=ar&"\barre";
+  ta=OvalMiniBox(TTm);
+  $=image(
+    fill ta withcolor 0.975white;
+    draw ta withcolor 0.85white;
+    label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
+    );
+$
+enddef;
+
+vardef BlocGrisMulti(text argris)=
+  LONG:=0;
+  save $;  picture $;
+  path ta; picture TTm;
+  TTm=ColleBox(argris);
+  ta=OvalMiniBox(TTm);
+  $=image(
+    fill ta withcolor grisBloc;
+    draw TTm;
+%    label(LALATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
+    );
+$
+enddef;
+
+boolean BlocE;
+BlocE:=false;
+
+vardef BlocUser(expr colblocuser)(text textbloc)=
+  LONG:=0;
+  save $;
+  picture $;
+  save TA;  path TA; picture BUTB; picture texto; picture TEXT;
+  BUTB=ColleBoxNew(textbloc);
+  TA=Box(BUTB);
+  texto=image(
+      draw BUTB;
+    );
+  ColBloc:=colblocuser;
+  if BlocE=false:
+    $=Affichage(texto);
+  else:
+    $=AffichageED(texto);
+  fi;
+  $
+enddef;
+
+vardef BlocCouleur(expr colblocuser)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=image(
+      label.lrt(LATEXSCRATCH("\barre \hbox to4cm{}"),if unknown _coinprec: (0,0) else:_coinprec fi);
+  );
+ColBloc:=colblocuser;
+$=Affichage(texto);
+$
+enddef;
+%% fin Section Divers %%%
+
+%% Section Capteur %%%%
+vardef Demander(expr nbpas)=
+  LONG:=0;
+  save Dem;
+  picture Dem,texto;
+  if string nbpas:
+    texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
+    ColBloc:=CapteurTrois;
+    Dem=Affichage(texto);
+  else:
+    message("La commande -- Demander -- admet un argument de type string.");
+    Dem=nullpicture;
+  fi;
+  Dem
+enddef;
+
+vardef ReinitChrono=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  texto=ColleBoxNew("réinitialiser le chronomètre");
+  ColBloc:=CapteurTrois;
+  $=Affichage(texto);
+  $
+enddef;
+
+vardef MettreGlissement(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew("mettre mode de glissement à",RecMenuCap(nbpas));
+    ColBloc:=CapteurTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- MettreGlissement -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%video
+
+vardef CameraImage=
+  LONG:=0;
+  save $;
+  picture $;
+  $=image(
+      pair A,B,C,D,E,F;
+    A=(0,0);
+    B-A=(10,0);
+    C-B=(0,10);
+    D-C=A-B;
+    E-B=(4,1.5);
+    F-C=(4,-1.5);
+    numeric EB;
+    EB=2pt;
+    path camera;
+    camera=(A+(EB,0))--(B+(-EB,0)){dir0}..{dir90}(B+(0,EB))--2/5[B,C]--E--F--3/5[B,C]--(C+(0,-EB)){dir90}..{dir-180}(C+(-EB,0))--(D+(EB,0)){dir180}..{dir-90}(D+(0,-EB))--(A+(0,EB)){dir-90}..{dir0}cycle;
+    fill camera withcolor (77,77,77)/255;
+    draw camera withcolor (77,77,77)*0.95/255;
+    path cc;
+    cc=fullcircle scaled 6;
+    color coul[];
+    if print:
+      coul0:=0.9white;
+      coul1:=0.933white;
+      coul2:=0.966white;
+      coul3:=white;
+    else:
+      coul0=(75,205,169)/255;
+      coul1=(16,230,212)/255;
+      coul2=(224,247,241)/255;
+      coul3=(1,1,1);
+    fi;
+    for k=0 upto 3:
+      fill (cc shifted(B+(10,3*k))) withcolor coul[k];
+      draw (cc shifted(B+(10,3*k))) withcolor 0.95*coul[k];
+    endfor;
+    draw ((-3,0)--(-3,18)) withcolor if print : coefprint*white else: StyloTrois fi;
+    pickup pencircle scaled eppen;
+    );
+  $:=$ scaled 0.8;
+  $
+enddef;
+
+vardef ImageCamera=
+  save titi;
+  picture titi;
+  titi=image(
+      draw CameraImage shifted(-12,-5);
+      draw (((0,0)--(0,18pt)) shifted(9,-9)) withpen pencircle scaled 1bp  withcolor if print: 0.5*coefprint*white else: (69/255,168/255,140/255) fi;
+    );
+  titi
+enddef;
+
+vardef ActiverVideo(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas));
+    ColBloc:=StyloTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- ActiverVideo -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef TransparenceVideo(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew(ImageCamera,"mettre la transparence vidéo sur",OvalNb(nbpas));
+    ColBloc:=StyloTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- TransparenceVideo -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef QuandMV(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas:
+    texto=ColleBoxNew(ImageCamera,"quand mouvement vidéo $>$",OvalNb(nbpas));
+    ColBloc:=StyloTrois;
+    $=AffichageED(texto);
+  else:
+    message("La commande -- QuandMV -- admet un argument de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef VideoSur(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if (string nbpas) and (string xa):
+    texto=ColleBoxNew(ImageCamera,"vidéo",OvalStylo(nbpas),"sur",OvalStylo(xa));
+    %ColBloc:=StyloTrois;
+    path ta;
+    ta=OvalBox(texto);
+    $=image(
+    fill ta withcolor if print: coefprint*white else: StyloTrois fi;
+    draw ta withcolor CoulLignes;
+    %label(LATEXSCRATCH(TTm),center ta) if print=false : withcolor blanc fi;
+  draw texto;
+    );
+  else:
+    message("La commande -- VideoSur -- admet deux arguments de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%% fin Section Capteur %%%
+
+%%% Section Variables %%%
+vardef MettreVar(expr nbpas,xa)=
+  LONG:=0;
+  save MV;
+  picture MV,texto;
+  if string nbpas :
+    texto=ColleBoxNew("mettre",RecMenuVar(nbpas),"à",if string xa:OvalNb(xa) else: xa fi);
+    ColBloc:=OrangeTrois;
+    MV=Affichage(texto);
+  else:
+    message("La commande -- MettreVar -- admet un premier paramètre de type string.");
+    MV=nullpicture;
+  fi;
+  MV
+enddef;
+
+vardef AjouterVar(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuVar(xa));
+  ColBloc:=OrangeTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- AjouterVar -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef MontrerVar(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+    texto=ColleBoxNew("montrer la variable",RecMenuVar(nbpas));
+    ColBloc:=OrangeTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- MontrerVar -- admet un premier paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef CacherVar(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+    texto=ColleBoxNew("cacher la variable",RecMenuVar(nbpas));
+    ColBloc:=OrangeTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- CacherVar -- admet un premier paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%Liste
+vardef AjouterListe(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("ajouter",if string nbpas:OvalNb(nbpas) else: nbpas fi,"à",RecMenuList(xa));
+  ColBloc:=OrangeListTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- AjouterListe -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef SupprimerListe(expr nbpas,xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("supprimer l'élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(xa));
+  ColBloc:=OrangeListTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef SupprimerListeAll(expr nbpas)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+      texto=ColleBoxNew("supprimer tous les éléments de la liste",RecMenuList(nbpas));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+else:
+  message("La commande -- SupprimerListe -- admet un deuxième paramètre de type string.");
+    $=nullpicture;
+fi;
+$
+enddef;
+
+vardef InsererListe(expr xa,nbpas,ya)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string ya :
+      texto=ColleBoxNew("insérer",if string xa:OvalNb(xa) else: xa fi,"en position",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(ya));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- InsererListe -- admet un troisième paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef RemplacerListe(expr xa,nbpas,ya)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string nbpas :
+    texto=ColleBoxNew("remplacer l'élément",if string xa:OvalNb(xa) else: xa fi,"de la liste",RecMenuList(nbpas),"par",if string ya:OvalNb(ya) else: ya fi);
+  ColBloc:=OrangeListTrois;
+  $=Affichage(texto);
+else:
+  message("La commande -- RemplacerListe -- admet un deuxième paramètre de type string.");
+  $=nullpicture;
+fi;
+$
+enddef;
+
+vardef MontrerListe(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("montrer la liste",RecMenuList(xa));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- MontrerListe -- admet un paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+vardef CacherListe(expr xa)=
+  LONG:=0;
+  save $;
+  picture $,texto;
+  if string xa :
+    texto=ColleBoxNew("cacher la liste",RecMenuList(xa));
+    ColBloc:=OrangeListTrois;
+    $=Affichage(texto);
+  else:
+    message("La commande -- CacherListe -- admet un paramètre de type string.");
+    $=nullpicture;
+  fi;
+  $
+enddef;
+
+%%% Section Operateur %%%
+
+vardef OpAdd(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$+$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpSous(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$-$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpMul(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\times$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpDiv(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$\div$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpAlea(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("nombre aléatoire entre",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpRegrouper(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("regrouper",if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpLettre(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("lettre",if string pasun : OvalNb(pasun) else: pasun fi,"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpLongueur(expr pasun)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("longueur de",if string pasun : OvalNb(pasun) else: pasun fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpArrondi(expr pasun)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew("arrondi de",if string pasun : OvalNb(pasun) else: pasun fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef OpFonction(expr pasun,pasdeux)=
+  save Oop; picture Oop;
+  save TAao; path TAao;
+  save LOPop; picture LOPop;
+  LOPop=ColleBoxNew(RecMenuOp(pasun),"de",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAao=OvalBox(LOPop);
+  Oop=image(
+      fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LOPop;
+    draw TAao if print=false : withcolor coefprint*white fi;
+    );
+  Oop:=Oop shifted(-center Oop);
+  Oop
+enddef;
+
+vardef TestOpSup(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$>$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpInf(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$<$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpEgal(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$=$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpEt(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"et",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpOu(expr pasun, pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"ou",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpNon(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("non",if string pasun : OvalNb(pasun) else: pasun fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestOpContient(expr pasun,pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"contient",if string pasun : OvalNb(pasdeux) else: pasun fi,"?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef AppCostume(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuApp(pasun),"du costume");
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef AppAP(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuApp(pasun),"de l'arrière-plan");
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor VioletAppTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef CapDistance(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("distance de",OvalCapMenu(pasun));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef CapTemps(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuCap(pasun),"actuelle");
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef CapNumero(expr pasun,pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuCap(pasun),"de",OvalCapMenu(pasdeux));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapToucheObjet(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("touche le",OvalCapMenu(pasun),"?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapCouleur(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touchée ?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapCouleurs(expr pasun,pasdeux)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("couleur",OvalCouleur(redpart(pasun),greenpart(pasun),bluepart(pasun)),"touché",OvalCouleur(redpart(pasdeux),greenpart(pasdeux),bluepart(pasdeux)),"?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapTouche(expr pasun)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("touche",OvalMenuCap(pasun),"pressée ?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestCapSouris=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("souris pressée ?");
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor CapteurTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef TestListeContient(expr nbpas,nbbas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew(RecMenuList(nbpas),"contient",if string nbbas:OvalNb(nbbas) else: nbbas fi);
+  TAa=DiamondBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef ListeElement(expr nbpas,nbbas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("élément",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef ListePosition(expr nbpas,nbbas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("position de",if string nbpas:OvalNb(nbpas) else: nbpas fi,"de",RecMenuList(nbbas));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+
+vardef ListeLongueur(expr nbpas)=
+  save $; picture $;
+  save TAa; path TAa;
+  save LTa; picture LTa;
+  LTa=ColleBoxNew("longueur de",RecMenuList(nbpas));
+  TAa=OvalBox(LTa);
+  $=image(
+      fill TAa if print=false : withcolor OrangeListTrois else : withcolor coefprint*white fi;
+    draw LTa;
+    draw TAa if print=false : withcolor coefprint*white fi;
+    );
+  $:=$ shifted(-center $);
+  $
+enddef;
+


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp	2021-04-23 20:37:20 UTC (rev 58973)
@@ -0,0 +1,153 @@
+%D'après /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/svgnam.def
+color AliceBlue; AliceBlue = (.94,.972,1);
+color AntiqueWhite; AntiqueWhite = (.98,.92,.844);
+color Aqua; Aqua = (0,1,1);
+color Aquamarine; Aquamarine = (.498,1,.83);
+color Azure; Azure = (.94,1,1);
+color Beige; Beige = (.96,.96,.864);
+color Bisque; Bisque = (1,.894,.77);
+color Black; Black = (0,0,0);
+color BlanchedAlmond; BlanchedAlmond = (1,.92,.804);
+color Blue; Blue = (0,0,1);
+color BlueViolet; BlueViolet = (.54,.17,.888);
+color Brown; Brown = (.648,.165,.165);
+color BurlyWood; BurlyWood = (.87,.72,.53);
+color CadetBlue; CadetBlue = (.372,.62,.628);
+color Chartreuse; Chartreuse = (.498,1,0);
+color Chocolate; Chocolate = (.824,.41,.116);
+color Coral; Coral = (1,.498,.312);
+color CornflowerBlue; CornflowerBlue = (.392,.585,.93);
+color Cornsilk; Cornsilk = (1,.972,.864);
+color Crimson; Crimson = (.864,.08,.235);
+color Cyan; Cyan = (0,1,1);
+color DarkBlue; DarkBlue = (0,0,.545);
+color DarkCyan; DarkCyan = (0,.545,.545);
+color DarkGoldenrod; DarkGoldenrod = (.72,.525,.044);
+color DarkGray; DarkGray = (.664,.664,.664);
+color DarkGreen; DarkGreen = (0,.392,0);
+color DarkGrey; DarkGrey = (.664,.664,.664);
+color DarkKhaki; DarkKhaki = (.74,.716,.42);
+color DarkMagenta; DarkMagenta = (.545,0,.545);
+color DarkOliveGreen; DarkOliveGreen = (.332,.42,.185);
+color DarkOrange; DarkOrange = (1,.55,0);
+color DarkOrchid; DarkOrchid = (.6,.196,.8);
+color DarkRed; DarkRed = (.545,0,0);
+color DarkSalmon; DarkSalmon = (.912,.59,.48);
+color DarkSeaGreen; DarkSeaGreen = (.56,.736,.56);
+color DarkSlateBlue; DarkSlateBlue = (.284,.24,.545);
+color DarkSlateGray; DarkSlateGray = (.185,.31,.31);
+color DarkSlateGrey; DarkSlateGrey = (.185,.31,.31);
+color DarkTurquoise; DarkTurquoise = (0,.808,.82);
+color DarkViolet; DarkViolet = (.58,0,.828);
+color DeepPink; DeepPink = (1,.08,.576);
+color DeepSkyBlue; DeepSkyBlue = (0,.75,1);
+color DimGray; DimGray = (.41,.41,.41);
+color DimGrey; DimGrey = (.41,.41,.41);
+color DodgerBlue; DodgerBlue = (.116,.565,1);
+color FireBrick; FireBrick = (.698,.132,.132);
+color FloralWhite; FloralWhite = (1,.98,.94);
+color ForestGreen; ForestGreen = (.132,.545,.132);
+color Fuchsia; Fuchsia = (1,0,1);
+color Gainsboro; Gainsboro = (.864,.864,.864);
+color GhostWhite; GhostWhite = (.972,.972,1);
+color Gold; Gold = (1,.844,0);
+color Goldenrod; Goldenrod = (.855,.648,.125);
+color Gray; Gray = (.5,.5,.5);
+color Green; Green = (0,.5,0);
+color GreenYellow; GreenYellow = (.68,1,.185);
+color Grey; Grey = (.5,.5,.5);
+color Honeydew; Honeydew = (.94,1,.94);
+color HotPink; HotPink = (1,.41,.705);
+color IndianRed; IndianRed = (.804,.36,.36);
+color Indigo; Indigo = (.294,0,.51);
+color Ivory; Ivory = (1,1,.94);
+color Khaki; Khaki = (.94,.9,.55);
+color Lavender; Lavender = (.9,.9,.98);
+color LavenderBlush; LavenderBlush = (1,.94,.96);
+color LawnGreen; LawnGreen = (.488,.99,0);
+color LemonChiffon; LemonChiffon = (1,.98,.804);
+color LightBlue; LightBlue = (.68,.848,.9);
+color LightCoral; LightCoral = (.94,.5,.5);
+color LightCyan; LightCyan = (.88,1,1);
+color LightGoldenrod; LightGoldenrod = (.933,.867,.51);
+color LightGoldenrodYellow; LightGoldenrodYellow = (.98,.98,.824);
+color LightGray; LightGray = (.828,.828,.828);
+color LightGreen; LightGreen = (.565,.932,.565);
+color LightGrey; LightGrey = (.828,.828,.828);
+color LightPink; LightPink = (1,.712,.756);
+color LightSalmon; LightSalmon = (1,.628,.48);
+color LightSeaGreen; LightSeaGreen = (.125,.698,.668);
+color LightSkyBlue; LightSkyBlue = (.53,.808,.98);
+color LightSlateBlue; LightSlateBlue = (.518,.44,1);
+color LightSlateGray; LightSlateGray = (.468,.532,.6);
+color LightSlateGrey; LightSlateGrey = (.468,.532,.6);
+color LightSteelBlue; LightSteelBlue = (.69,.77,.87);
+color LightYellow; LightYellow = (1,1,.88);
+color Lime; Lime = (0,1,0);
+color LimeGreen; LimeGreen = (.196,.804,.196);
+color Linen; Linen = (.98,.94,.9);
+color Magenta; Magenta = (1,0,1);
+color Maroon; Maroon = (.5,0,0);
+color MediumAquamarine; MediumAquamarine = (.4,.804,.668);
+color MediumBlue; MediumBlue = (0,0,.804);
+color MediumOrchid; MediumOrchid = (.73,.332,.828);
+color MediumPurple; MediumPurple = (.576,.44,.86);
+color MediumSeaGreen; MediumSeaGreen = (.235,.7,.444);
+color MediumSlateBlue; MediumSlateBlue = (.484,.408,.932);
+color MediumSpringGreen; MediumSpringGreen = (0,.98,.604);
+color MediumTurquoise; MediumTurquoise = (.284,.82,.8);
+color MediumVioletRed; MediumVioletRed = (.78,.084,.52);
+color MidnightBlue; MidnightBlue = (.098,.098,.44);
+color MintCream; MintCream = (.96,1,.98);
+color MistyRose; MistyRose = (1,.894,.884);
+color Moccasin; Moccasin = (1,.894,.71);
+color NavajoWhite; NavajoWhite = (1,.87,.68);
+color Navy; Navy = (0,0,.5);
+color NavyBlue; NavyBlue = (0,0,.5);
+color OldLace; OldLace = (.992,.96,.9);
+color Olive; Olive = (.5,.5,0);
+color OliveDrab; OliveDrab = (.42,.556,.136);
+color Orange; Orange = (1,.648,0);
+color OrangeRed; OrangeRed = (1,.27,0);
+color Orchid; Orchid = (.855,.44,.84);
+color PaleGoldenrod; PaleGoldenrod = (.932,.91,.668);
+color PaleGreen; PaleGreen = (.596,.985,.596);
+color PaleTurquoise; PaleTurquoise = (.688,.932,.932);
+color PaleVioletRed; PaleVioletRed = (.86,.44,.576);
+color PapayaWhip; PapayaWhip = (1,.936,.835);
+color PeachPuff; PeachPuff = (1,.855,.725);
+color Peru; Peru = (.804,.52,.248);
+color Pink; Pink = (1,.752,.796);
+color Plum; Plum = (.868,.628,.868);
+color PowderBlue; PowderBlue = (.69,.88,.9);
+color Purple; Purple = (.5,0,.5);
+color Red; Red = (1,0,0);
+color RosyBrown; RosyBrown = (.736,.56,.56);
+color RoyalBlue; RoyalBlue = (.255,.41,.884);
+color SaddleBrown; SaddleBrown = (.545,.27,.075);
+color Salmon; Salmon = (.98,.5,.448);
+color SandyBrown; SandyBrown = (.956,.644,.376);
+color SeaGreen; SeaGreen = (.18,.545,.34);
+color Seashell; Seashell = (1,.96,.932);
+color Sienna; Sienna = (.628,.32,.176);
+color Silver; Silver = (.752,.752,.752);
+color SkyBlue; SkyBlue = (.53,.808,.92);
+color SlateBlue; SlateBlue = (.415,.352,.804);
+color SlateGray; SlateGray = (.44,.5,.565);
+color SlateGrey; SlateGrey = (.44,.5,.565);
+color Snow; Snow = (1,.98,.98);
+color SpringGreen; SpringGreen = (0,1,.498);
+color SteelBlue; SteelBlue = (.275,.51,.705);
+color Tan; Tan = (.824,.705,.55);
+color Teal; Teal = (0,.5,.5);
+color Thistle; Thistle = (.848,.75,.848);
+color Tomato; Tomato = (1,.39,.28);
+color Turquoise; Turquoise = (.25,.88,.815);
+color Violet; Violet = (.932,.51,.932);
+color VioletRed; VioletRed = (.816,.125,.565);
+color Wheat; Wheat = (.96,.87,.7);
+color White; White = (1,1,1);
+color WhiteSmoke; WhiteSmoke = (.96,.96,.96);
+color Yellow; Yellow = (1,1,0);
+color YellowGreen; YellowGreen = (.604,.804,.196);
+endinput


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCSvgnames.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationComposition2.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,275 +0,0 @@
-% Licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaDeuxComposition}[5][]{%type ax+b=d ou b=cx+d$
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
-    \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}
-  \else%cas ax+b=d
-    \xintifboolexpr{#2=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }{%ELSE
-      \xintifboolexpr{#3=0}{%ax+b=d
-        \EquaBase[#1]{#2}{}{}{#5}%
-      }{%ax+b=d$ Ici
-        \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
-        \begin{align*}
-          \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{E-\theNbequa}\\
-          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
-          \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-          \xintifboolexpr{\Coeffa=1}{}{\\}
-          \ifboolKV[ClesEquation]{Fleches}{%
-          \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-          \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-          }{}
-          \xintifboolexpr{\Coeffa=1}{% 
-          }{%\ifnum\cmtd>1
-          \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-          \ifboolKV[ClesEquation]{Fleches}{%
-          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          }{%ICI ?
-          \ifboolKV[ClesEquation]{FlecheDiv}{%
-          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          }{}
-          }
-          }
-          \ifboolKV[ClesEquation]{Entier}{%
-          \SSimpliTest{\Coeffb}{\Coeffa}%
-          \ifboolKV[ClesEquation]{Simplification}{%
-          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-          }{}
-          }{}
-          \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-        \end{align*}
-        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
-        }{}
-      }
-    }
-  \fi
-}
-
-\newcommand{\EquaTroisComposition}[5][]{%ax+b=cx ou ax=cx+d
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
-  \ifx\bla#5\bla%
-  %% paramètre oublié
-  \else
-  \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
-  \fi
-  \else
-  \xintifboolexpr{#2=0}{%b=cx
-    \EquaBase[#1]{#4}{}{}{#3}
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0
-      \EquaDeuxComposition[#1]{#2}{#3}{}{0}
-    }{%ax+b=cx
-      \xintifboolexpr{#2=#4}{%
-        \xintifboolexpr{#3=0}{%ax=ax
-          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
-        {%ax+b=ax
-          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
-        }%
-      }{%% Cas délicat
-        \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
-          \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
-          \begin{align*}
-            \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
-            \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
-            \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{0}\tikzmark{F-\theNbequa}\\
-            \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{0-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
-            \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-            \xintifboolexpr{\Coeffa=1}{}{\\}
-            \ifboolKV[ClesEquation]{Fleches}{%
-            \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-            \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-            \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-            \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-            }{}
-            \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-            \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-            \ifboolKV[ClesEquation]{Fleches}{%
-            \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-            \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-            }{
-            \ifboolKV[ClesEquation]{FlecheDiv}{%
-            \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-            \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-            }{}
-            }
-            \ifboolKV[ClesEquation]{Entier}{%
-            \SSimpliTest{\Coeffb}{\Coeffa}%
-            \ifboolKV[ClesEquation]{Simplification}{%
-            \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-            }{}
-            }{}
-            }
-            \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-          \end{align*}
-          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
-        }{%ax+b=cx+d avec a<c              % Autre cas délicat
-          \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
-          \begin{align*}%
-            \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\tikzmark{E-\theNbequa}\\
-            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
-            \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
-                                                                                                                                      \xintifboolexpr{\Coeffa=1}{}{\\}
-            \ifboolKV[ClesEquation]{Fleches}{%
-            \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-            \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-            }{}
-            \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-            \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
-            \ifboolKV[ClesEquation]{Fleches}{%
-            \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-            \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-            }{
-            \ifboolKV[ClesEquation]{FlecheDiv}{%
-            \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-            \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-            }{}
-            }
-            \ifboolKV[ClesEquation]{Entier}{%
-            \SSimpliTest{\Coeffb}{\Coeffa}%
-            \ifboolKV[ClesEquation]{Simplification}{%
-            \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-            }{}
-            }{}
-            }
-            \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-          \end{align*}
-          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
-        }%
-      }%
-    }%
-  }%
-  \fi
-}%
-
-
-\newcommand{\ResolEquationComposition}[5][]{%
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#4=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }%
-    {%0x+b=cx+d$
-      \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}%
-    }%
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0x+d
-      \EquaDeuxComposition[#1]{#2}{#3}{}{#5}%
-    }
-    {%ax+b=cx+d$
-      \xintifboolexpr{#3=0}{%
-        \xintifboolexpr{#5=0}{%ax=cx
-          \EquaTroisComposition[#1]{#2}{0}{#4}{}%
-        }%
-        {%ax=cx+d
-          \EquaTroisComposition[#1]{#4}{#5}{#2}{}%
-        }%
-      }%
-      {\xintifboolexpr{#5=0}{%ax+b=cx
-          \EquaTroisComposition[#1]{#2}{#3}{#4}{}%
-        }%
-        {%ax+b=cx+d -- ici
-          \xintifboolexpr{#2=#4}{%
-            \xintifboolexpr{#3=#5}{%b=d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
-            {%b<>d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
-            }%
-          }{
-            %% Cas délicat
-            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
-              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}
-              \begin{align*}
-                \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
-                \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{F-\theNbequa}\\
-                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\
-                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{}%
-              \begin{align*}%
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
-                \mathcolor{Ccompo}{\num{\fpeval{#3-#5}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}%
-            }%
-          }%
-        }%
-      }%
-    }%
-  }%
-}%
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationLaurent1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,226 +0,0 @@
-% Licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBaseLaurent}[5][]{%type ax=d ou b=cx
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
-  % si oui, on est dans le cas b=cx. Eh bien on échange :)
-  % Mais attention si les deux paramètres a et c sont vides...
-  \EquaBase[#1]{#4}{}{}{#3}
-  \else
-  % si non, on est dans le cas ax=d
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#5=0}{%
-      L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solution.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
-  }{%\else
-    \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
-      \begin{align*}%
-        \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{#2}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{#2}}}}&=\xintifboolexpr{#2=1}{\num{#5}}{\color{Cdecomp}\frac{\color{black}\num{#5}}{\num{#2}}}
-        \xintifboolexpr{#2=1}{}{\\\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}}%\\
-        \ifboolKV[ClesEquation]{Entier}{%
-        \SSimpliTest{#5}{#2}%
-        \ifboolKV[ClesEquation]{Simplification}{%
-        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
-        }{}
-        }{}
-      \end{align*}
-      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\useKV[ClesEquation]{Lettre}=\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
-      }{}
-    }
-  }
-  \fi
-}
-
-\newcommand{\EquaDeuxLaurent}[5][]{%type ax+b=d ou b=cx+d$
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
-  \EquaDeuxLaurent[#1]{#4}{#5}{#2}{#3}
-  \else%cas ax+b=d
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#3=#5}{%b=d
-      L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-    {%b<>d
-      L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-    }%
-  }{%ELSE
-    \xintifboolexpr{#3=0}{%ax+b=d
-      \EquaBaseLaurent[#1]{#2}{}{}{#5}%
-    }{%ax+b=d$ Ici
-      \begin{align*}
-        \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\num{#5}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
-        \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}%\\
-        \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
-        \xintifboolexpr{\Coeffa=1}{}{\\}
-        \xintifboolexpr{\Coeffa=1}{% 
-        }{%\ifnum\cmtd>1
-        \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-        \ifboolKV[ClesEquation]{Entier}{%
-        \SSimpliTest{\Coeffb}{\Coeffa}%
-        \ifboolKV[ClesEquation]{Simplification}{%
-        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-        }{}
-        }{}
-        }
-      \end{align*}
-      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
-      }{}
-    }
-  }
-}
-
-\newcommand{\EquaTroisLaurent}[5][]{%ax+b=cx ou ax=cx+d
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
-    \ifx\bla#5\bla%
-      %% paramètre oublié
-    \else
-      \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
-    \fi
-  \else
-  \xintifboolexpr{#2=0}{%b=cx
-    \EquaBaseLaurent[#1]{#4}{}{}{#3}
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0
-      \EquaDeuxLaurent[#1]{#2}{#3}{}{0}
-    }{%ax+b=cx
-      \xintifboolexpr{#2=#4}{%
-        \xintifboolexpr{#3=0}{%ax=ax
-          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
-        {%ax+b=ax
-          L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
-        }%
-      }{%% Cas délicat
-        \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
-          \begin{align*}
-            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
-            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}\\
-            \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
-            \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
-            \xintifboolexpr{\Coeffa=1}{}{\\}
-            \xintifboolexpr{\Coeffa=1}{% 
-            }{%\ifnum\cmtd>1
-            \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-            \ifboolKV[ClesEquation]{Entier}{%
-            \SSimpliTest{\Coeffb}{\Coeffa}%
-            \ifboolKV[ClesEquation]{Simplification}{%
-            \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-            }{}
-            }{}
-            }
-          \end{align*}
-          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
-        }{%ax+b=cx avec a<c              % Autre cas délicat
-          \begin{align*}%
-            \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\\
-            \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\
-            \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=0\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
-            \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
-            \xintifboolexpr{\Coeffa=1}{}{\\}
-            \xintifboolexpr{\Coeffa=1}{% 
-            }{%\ifnum\cmtd>1
-            \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-            \ifboolKV[ClesEquation]{Entier}{%
-            \SSimpliTest{\Coeffb}{\Coeffa}%
-            \ifboolKV[ClesEquation]{Simplification}{%
-            \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-            }{}
-            }{}
-            }
-          \end{align*}
-          \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
-        }%
-      }%
-    }%
-  }%
-  \fi
-}%
-
-\newcommand{\ResolEquationLaurent}[5][]{%
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#4=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }%
-    {%0x+b=cx+d
-      \EquaDeuxLaurent[#1]{#4}{#5}{}{#3}%
-    }%
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0x+d
-      \EquaDeuxLaurent[#1]{#2}{#3}{}{#5}%
-    }
-    {%ax+b=cx+d
-      \xintifboolexpr{#3=0}{%
-        \xintifboolexpr{#5=0}{%ax=cx
-          \EquaTroisLaurent[#1]{#2}{0}{#4}{}%
-        }%
-        {%ax=cx+d
-          \EquaTroisLaurent[#1]{#4}{#5}{#2}{}%
-        }%
-      }%
-      {\xintifboolexpr{#5=0}{%ax+b=cx
-          \EquaTroisLaurent[#1]{#2}{#3}{#4}{}%
-        }%
-        {%ax+b=cx+d -- ici
-          \xintifboolexpr{#2=#4}{%
-            \xintifboolexpr{#3=#5}{%b=d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
-            {%b<>d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
-            }%
-          }{%% Cas délicat
-            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
-              \begin{align*}
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\
-                \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
-                \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \xintifboolexpr{\Coeffa=1}{% 
-                }{%\ifnum\cmtd>1
-                \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}%
-                &=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}
-                \\
-                \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{\tiny\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{\tiny\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\
-                \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \xintifboolexpr{\Coeffa=1}{% 
-                }{%\ifnum\cmtd>1
-                \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}%
-            }%
-          }%
-        }%
-      }%
-    }%
-  }%
-}%
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationPose1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,246 +0,0 @@
-% Licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBaseL}[5][]{%type ax=d ou b=cx
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
-  % si oui, on est dans le cas b=cx. Eh bien on échange :)
-  % Mais attention si les deux paramètres a et c sont vides...
-  \EquaBaseL[#1]{#4}{}{}{#3}
-  \else
-  % si non, on est dans le cas ax=d
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#5=0}{%
-      L'équation $0\useKV[ClesEquation]{Lettre}=0$ a une infinité de solution.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
-  }{%\else
-    \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
-      \begin{align*}%
-        \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
-        \xintifboolexpr{#2=1}{}{%
-        \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\}
-        \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
-        \ifboolKV[ClesEquation]{Entier}{%
-        \SSimpliTest{#5}{#2}%
-        \ifboolKV[ClesEquation]{Simplification}{%
-        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
-        }{}
-        }{}
-        %\ifboolKV[ClesEquation]{Fleches}{%
-        %\stepcounter{Nbequa}}%
-        %{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
-        %}
-      \end{align*}
-      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\useKV[ClesEquation]{Lettre}=\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
-      }{}
-    }
-  }
-  \fi
-}
-
-\newcommand{\EquaDeuxL}[5][]{%type ax+b=d ou b=cx+d$
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
-    \EquaDeuxL[#1]{#4}{#5}{#2}{#3}
-  \else%cas ax+b=d
-    \xintifboolexpr{#2=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }{%ELSE
-      \xintifboolexpr{#3=0}{%ax+b=d
-        \EquaBaseL[#1]{#2}{}{}{#5}%
-      }{%ax+b=d$ Ici
-        \begin{align*}
-          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
-          \phantom{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
-          \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
-          \xintifboolexpr{\Coeffa=1}{}{\\}
-          \xintifboolexpr{\Coeffa=1}{% 
-          }{%\ifnum\cmtd>1
-          \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\
-          \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-          }
-          \ifboolKV[ClesEquation]{Entier}{%
-          \SSimpliTest{\Coeffb}{\Coeffa}%
-          \ifboolKV[ClesEquation]{Simplification}{%
-          \ifthenelse{\boolean{Simplification}}{%
-          \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%
-                                                                                                                   }{}%\\
-          }{}
-          }{}
-        \end{align*}
-        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
-        }{}
-      }
-    }
-  \fi
-}
-
-\newcommand{\EquaTroisL}[5][]{%ax+b=cx ou ax=cx+d
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
-    \ifx\bla#5\bla%
-      %% paramètre oublié
-    \else
-      \EquaTroisL[#1]{#4}{#5}{#2}{}%
-    \fi
-  \else
-  \xintifboolexpr{#2=0}{%b=cx
-    \EquaBaseL[#1]{#4}{}{}{#3}
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0
-      \EquaDeuxL[#1]{#2}{#3}{}{0}
-      }{%ax+b=cx
-        \xintifboolexpr{#2=#4}{%
-          \xintifboolexpr{#3=0}{%ax=ax
-            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
-          {%ax+b=ax
-            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
-          }%
-        }{%% Cas délicat
-          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
-            \begin{align*}
-              \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
-                \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
-              \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
-              \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
-              \xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\
-              \xintifboolexpr{\Coeffa=1}{}{\\}
-              \xintifboolexpr{\Coeffa=1}{% 
-              }{%\ifnum\cmtd>1
-              \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
-              \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-              }
-              \ifboolKV[ClesEquation]{Entier}{%
-              \SSimpliTest{\Coeffb}{\Coeffa}%
-              \ifboolKV[ClesEquation]{Simplification}{%
-              \ifthenelse{\boolean{Simplification}}{\\%
-              \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\SSimplifie{\Coeffb}{\Coeffa}%\\
-              }{}
-              }{}
-              }{}
-            \end{align*}
-            \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\
-                \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
-                \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \xintifboolexpr{\Coeffa=1}{% 
-                }{%\ifnum\cmtd>1
-                \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
-              \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
-              }
-              \ifboolKV[ClesEquation]{Entier}{%
-              \SSimpliTest{\Coeffb}{\Coeffa}%
-              \ifboolKV[ClesEquation]{Simplification}{%
-              \ifthenelse{\boolean{Simplification}}{\\%
-              \SSimplifie{\Coeffb}{\Coeffa}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
-              }{}
-              }{}
-              }{}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
-            }%
-          }%
-        }%
-      }%
-    \fi
-  }%\\
-  % \\
-
-\newcommand{\ResolEquationL}[5][]{%
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#4=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }%
-    {%0x+b=cx+d$
-      \EquaDeuxL[#1]{#4}{#5}{}{#3}%
-    }%
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0x+d
-      \EquaDeuxL[#1]{#2}{#3}{}{#5}%
-    }
-    {%ax+b=cx+d$
-      \xintifboolexpr{#3=0}{%
-        \xintifboolexpr{#5=0}{%ax=cx
-          \EquaTroisL[#1]{#2}{0}{#4}{}%
-        }%
-        {%ax=cx+d
-          \EquaTroisL[#1]{#4}{#5}{#2}{}%
-        }%
-      }%
-      {\xintifboolexpr{#5=0}{%ax+b=cx
-          \EquaTroisL[#1]{#2}{#3}{#4}{}%
-        }%
-        {%ax+b=cx+d -- ici
-          \xintifboolexpr{#2=#4}{%
-            \xintifboolexpr{#3=#5}{%b=d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
-            {%b<>d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
-            }%
-          }{
-            %% Cas délicat
-            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
-              \begin{align*}
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{\phantom{{}={}}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
-                \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{\phantom{{}+{}}\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{{}={}\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\
-                \xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{\Coeffb>0}{\phantom{{}+{}}\num{\Coeffb}}{{}-{}\num{\fpeval{0-\Coeffb}}}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
-                \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\%
-                \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\SSimplifie{\Coeffb}{\Coeffa}%\\
-                }{}
-                }{}
-                }{}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\xintifboolexpr{#4<0}{\phantom{={}}}{}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
-                \xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{{}-{}\num{#5}}{{}+{}\num{\fpeval{0-#5}}}}&\phantom{{}={}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
-                \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\xintifboolexpr{\Coeffa<0}{\phantom{{}={}}}{\phantom{=}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\
-                \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}%
-            }%
-          }%
-        }%
-      }%
-    }%
-  }%
-}%

Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSoustraction2.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,345 +0,0 @@
-% Licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBase}[5][]{%type ax=d ou b=cx
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
-  % si oui, on est dans le cas b=cx. Eh bien on échange :)
-  % Mais attention si les deux paramètres a et c sont vides...
-  \EquaBase[#1]{#4}{}{}{#3}
-  \else
-  % si non, on est dans le cas ax=d
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#5=0}{%
-      L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
-  }{%\else
-    \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
-      \begin{align*}%
-        \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\tikzmark{C-\theNbequa}\\
-        \tikzmark{B-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}\tikzmark{D-\theNbequa}%\\
-        \ifboolKV[ClesEquation]{Fleches}{%
-        \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
-        \rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
-        }{%
-        \ifboolKV[ClesEquation]{FlecheDiv}{%
-        \Leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
-        \Rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}%
-        }{}%
-        }%%
-        \ifboolKV[ClesEquation]{Entier}{%
-        \SSimpliTest{#5}{#2}%
-        \ifboolKV[ClesEquation]{Simplification}{%
-        \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
-        }{}
-        }{}
-        \ifboolKV[ClesEquation]{Fleches}{%
-        \stepcounter{Nbequa}}%
-        {\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}
-        }
-      \end{align*}
-      \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.%
-      }{}
-    }
-  }
-  \fi
-}
-
-\newcommand{\EquaDeuxSoustraction}[5][]{%type ax+b=d ou b=cx+d$
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
-    \EquaDeuxSoustraction[#1]{#4}{#5}{#2}{#3}
-  \else%cas ax+b=d
-    \xintifboolexpr{#2=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }{%ELSE
-      \xintifboolexpr{#3=0}{%ax+b=d
-        \EquaBase[#1]{#2}{}{}{#5}%
-      }{%ax+b=d$ Ici
-        \begin{align*}
-          \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
-          \ifboolKV[ClesEquation]{Decomposition}{%
-          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
-          }{}%
-          \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}
-          \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
-          \xintifboolexpr{\Coeffa=1}{}{\\}
-          \ifboolKV[ClesEquation]{Fleches}{%
-          \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-          \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-          }{}
-          \xintifboolexpr{\Coeffa=1}{% 
-          }{%\ifnum\cmtd>1
-          \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-          \ifboolKV[ClesEquation]{Fleches}{%
-          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          }{%ICI ?
-          \ifboolKV[ClesEquation]{FlecheDiv}{%
-          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          }{}
-          }
-          }
-          \ifboolKV[ClesEquation]{Entier}{%
-          \SSimpliTest{\Coeffb}{\Coeffa}%
-          \ifboolKV[ClesEquation]{Simplification}{%
-          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-          }{}
-          }{}
-          \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-        \end{align*}
-        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
-        }{}
-      }
-    }
-  \fi
-}
-
-\newcommand{\EquaTroisSoustraction}[5][]{%ax+b=cx ou ax=cx+d
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
-    \ifx\bla#5\bla%
-      %% paramètre oublié
-    \else
-      \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
-    \fi
-  \else
-  \xintifboolexpr{#2=0}{%b=cx
-    \EquaBase[#1]{#4}{}{}{#3}
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0
-      \EquaDeuxSoustraction[#1]{#2}{#3}{}{0}
-      }{%ax+b=cx
-        \xintifboolexpr{#2=#4}{%
-          \xintifboolexpr{#3=0}{%ax=ax
-            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}%
-          {%ax+b=ax
-            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
-          }%
-        }{%% Cas délicat
-          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
-            \begin{align*}
-              \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\
-                }{}
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=0\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\
-                }{}%
-              \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-              %eric
-              \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
-              % eric
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
-                }{}
-                \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                }{}
-                % eric
-                \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
-                % eric
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
-            }%
-          }%
-        }%
-      }%
-    \fi
-  }%
-
-
-\newcommand{\ResolEquationSoustraction}[5][]{%
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#4=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }%
-    {%0x+b=cx+d$
-      \EquaDeuxSoustraction[#1]{#4}{#5}{}{#3}%
-    }%
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0x+d
-      \EquaDeuxSoustraction[#1]{#2}{#3}{}{#5}%
-    }
-    {%ax+b=cx+d$
-      \xintifboolexpr{#3=0}{%
-        \xintifboolexpr{#5=0}{%ax=cx
-          \EquaTroisSoustraction[#1]{#2}{0}{#4}{}%
-        }%
-        {%ax=cx+d
-          \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}%
-        }%
-      }%
-      {\xintifboolexpr{#5=0}{%ax+b=cx
-          \EquaTroisSoustraction[#1]{#2}{#3}{#4}{}%
-        }%
-        {%ax+b=cx+d -- ici
-          \xintifboolexpr{#2=#4}{%
-            \xintifboolexpr{#3=#5}{%b=d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
-            {%b<>d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
-            }%
-          }{
-            %% Cas délicat
-            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
-              \begin{align*}
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                }{}
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
-                }{}%
-                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-                % eric
-                \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{}
-                % eric
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                }{}
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
-                \ifboolKV[ClesEquation]{Decomposition}{%
-                \num{#3}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\
-                }{}%
-                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
-                % eric
-                \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{}
-                % eric
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}%
-            }%
-          }%
-        }%
-      }%
-    }%
-  }%
-}%
-
-

Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationSymbole1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,225 +0,0 @@
-% Licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaBaseSymbole}[5][]{%type ax=d ou b=cx
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
-  \ifx\bla#2\bla%on teste si le paramètre #2 est vide:
-  % si oui, on est dans le cas b=cx. Eh bien on échange :)
-  % Mais attention si les deux paramètres a et c sont vides...
-    \ifx\bla#4\bla
-  %% il manque un paramètre
-    \else
-      \EquaBaseSymbole[#1]{#4}{}{}{#3}
-    \fi
-  \else
-  % si non, on est dans le cas ax=d
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#5=0}{%
-      L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solution.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}%
-  }{%\else
-    \xintifboolexpr{#5=0}{L'équation $\num{#2}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
-      \begin{align*}%
-         \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\
-        \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\
-        \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{#5}{#2}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\
-                }{}
-                }{}
-      \end{align*}
-    }
-  }
-  \fi
-}
-
-\newcommand{\EquaDeuxSymbole}[5][]{%type ax+b=d ou b=cx+d$
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
-  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
-    \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}
-  \else%cas ax+b=d
-    \xintifboolexpr{#2=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }{%ELSE
-      \xintifboolexpr{#3=0}{%ax+b=d
-        \EquaBaseSymbole[#1]{#2}{}{}{#5}%
-      }{%ax+b=d$ Ici
-        \begin{align*}
-          \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
-          \ifboolKV[ClesEquation]{Bloc}{\Fdash{$\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\}{}%
-          \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
-          \xintifboolexpr{\Coeffa=1}{% 
-          }{%\ifnum\cmtd>1
-          \\
-          \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-          \ifboolKV[ClesEquation]{Entier}{%
-          \SSimpliTest{\Coeffb}{\Coeffa}%
-          \ifboolKV[ClesEquation]{Simplification}{%
-          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-          }{}
-          }{}
-          }
-        \end{align*}
-      }
-    }
-  \fi
-}
-
-\newcommand{\EquaTroisSymbole}[5][]{%ax+b=cx ou ax=cx+d
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
-  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
-    \ifx\bla#5\bla%
-      %% paramètre oublié
-    \else
-      \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
-    \fi
-  \else
-  \xintifboolexpr{#2=0}{%b=cx
-    \EquaBaseSymbole[#1]{#4}{}{}{#3}
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0
-      \EquaDeuxSymbole[#1]{#2}{#3}{}{0}
-      }{%ax+b=cx
-        \xintifboolexpr{#2=#4}{%
-          \xintifboolexpr{#3=0}{%ax=ax
-            L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
-          {%ax+b=ax
-            L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
-          }%
-        }{%% Cas délicat
-          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
-            \begin{align*}
-              \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
-              \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\\              
-              \xdef\Coeffa{\fpeval{#2-#4}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
-              \ifboolKV[ClesEquation]{Bloc}{\Fdash{\mathcolor{Csymbole!30}{$\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\}{}
-              \xdef\Coeffb{\fpeval{0-#3}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}%\\
-              \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-              \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-              \end{align*}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\
-                \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\\
-                \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}% \\
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-              \end{align*}
-            }%
-          }%
-        }%
-      }%
-    \fi
-  }%
-
-
-\newcommand{\ResolEquationSymbole}[5][]{%
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#4=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }%
-    {%0x+b=cx+d$
-      \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}%
-    }%
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0x+d
-      \EquaDeuxSymbole[#1]{#2}{#3}{}{#5}%
-    }
-    {%ax+b=cx+d$
-      \xintifboolexpr{#3=0}{%
-        \xintifboolexpr{#5=0}{%ax=cx
-          \EquaTroisSymbole[#1]{#2}{0}{#4}{}%
-        }%
-        {%ax=cx+d
-          \EquaTroisSymbole[#1]{#4}{#5}{#2}{}%
-        }%
-      }%
-      {\xintifboolexpr{#5=0}{%ax+b=cx
-          \EquaTroisSymbole[#1]{#2}{#3}{#4}{}%
-        }%
-        {%ax+b=cx+d -- ici
-          \xintifboolexpr{#2=#4}{%
-            \xintifboolexpr{#3=#5}{%b=d
-              L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
-            {%b<>d
-              L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
-            }%
-          }{
-            %% Cas délicat
-            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
-              \begin{align*}
-                \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#4-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#2-#4}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \xdef\Coeffa{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
-                \ifboolKV[ClesEquation]{Bloc}{%
-                \Fdash{$\mathcolor{Csymbole!30}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\
-                }{}%
-                \xdef\Coeffb{\fpeval{#5-#3}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-              \end{align*}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \begin{align*}%
-                \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \mathcolor{Csymbole}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \xdef\Coeffa{\fpeval{#4-#2}}\num{#3}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \ifboolKV[ClesEquation]{Bloc}{%
-                \num{#3}&=\Fdash{$\mathcolor{Csymbole!30}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                }{}%
-                \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}%\\
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-              \end{align*}
-            }%
-          }%
-        }%
-      }%
-    }%
-  }%
-}%
-
-

Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfC-EquationTerme1.tex	2021-04-23 20:37:20 UTC (rev 58973)
@@ -1,276 +0,0 @@
-% Licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\newcommand{\EquaDeuxTerme}[5][]{%type ax+b=d ou b=cx+d$
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide
-    \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}
-  \else%cas ax+b=d
-    \xintifboolexpr{#2=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }{%ELSE
-      \xintifboolexpr{#3=0}{%ax+b=d
-        \EquaBase[#1]{#2}{}{}{#5}%
-      }{%ax+b=d$ Ici
-        \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
-        \begin{align*}
-          \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\
-          \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
-          \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-          \xintifboolexpr{\Coeffa=1}{}{\\}
-          \ifboolKV[ClesEquation]{Fleches}{%
-          \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-          \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-          }{}
-          \xintifboolexpr{\Coeffa=1}{% 
-          }{%\ifnum\cmtd>1
-          \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-          \ifboolKV[ClesEquation]{Fleches}{%
-          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          }{%ICI ?
-          \ifboolKV[ClesEquation]{FlecheDiv}{%
-          \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-          }{}
-          }
-          }
-          \ifboolKV[ClesEquation]{Entier}{%
-          \SSimpliTest{\Coeffb}{\Coeffa}%
-          \ifboolKV[ClesEquation]{Simplification}{%
-          \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-          }{}
-          }{}
-          \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-        \end{align*}
-        \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.
-        }{}
-      }
-    }
-  \fi
-}
-
-\newcommand{\EquaTroisTerme}[5][]{%ax+b=cx ou ax=cx+d
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \ifx\bla#3\bla%on inverse en faisant attention à la boucle #3<->#5
-    \ifx\bla#5\bla%
-      %% paramètre oublié
-    \else
-      \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
-    \fi
-  \else
-  \xintifboolexpr{#2=0}{%b=cx
-    \EquaBase[#1]{#4}{}{}{#3}
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0
-      \EquaDeuxTerme[#1]{#2}{#3}{}{0}
-      }{%ax+b=cx
-        \xintifboolexpr{#2=#4}{%
-          \xintifboolexpr{#3=0}{%ax=ax
-            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solution.}%
-          {%ax+b=ax
-            L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
-          }%
-        }{%% Cas délicat
-          \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c
-            \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
-            \begin{align*}
-              \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\
-              \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\
-              \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=0\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
-              \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
-              \begin{align*}%
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\
-                \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\
-                \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa}
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}%
-            }%
-          }%
-        }%
-      }%
-    \fi
-  }%
-
-\newcommand{\ResolEquationTerme}[5][]{%
-  \useKVdefault[ClesEquation]%
-  \setKV[ClesEquation]{#1}%
-  \xintifboolexpr{#2=0}{%
-    \xintifboolexpr{#4=0}{%
-      \xintifboolexpr{#3=#5}{%b=d
-        L'équation $\num{#3}=\num{#5}$ a une infinité de solution.}%
-      {%b<>d
-        L'équation $\num{#3}=\num{#5}$ n'a aucune solution.%
-      }%
-    }%
-    {%0x+b=cx+d$
-      \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}%
-    }%
-  }{%
-    \xintifboolexpr{#4=0}{%ax+b=0x+d
-      \EquaDeuxTerme[#1]{#2}{#3}{}{#5}%
-    }
-    {%ax+b=cx+d$
-      \xintifboolexpr{#3=0}{%
-        \xintifboolexpr{#5=0}{%ax=cx
-          \EquaTroisTerme[#1]{#2}{0}{#4}{}%
-        }%
-        {%ax=cx+d
-          \EquaTroisTerme[#1]{#4}{#5}{#2}{}%
-        }%
-      }%
-      {\xintifboolexpr{#5=0}{%ax+b=cx
-          \EquaTroisTerme[#1]{#2}{#3}{#4}{}%
-        }%
-        {%ax+b=cx+d -- ici
-          \xintifboolexpr{#2=#4}{%
-            \xintifboolexpr{#3=#5}{%b=d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solution.}%
-            {%b<>d
-              L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
-            }%
-          }{
-            %% Cas délicat
-            \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
-              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
-              \begin{align*}
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
-                \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#5>0}{\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\tikzmark{F-\theNbequa}\\
-                \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\
-                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}
-            }{%ax+b=cx+d avec a<c              % Autre cas délicat
-              \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{}
-              \begin{align*}%
-                \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\
-                \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\
-                \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\
-                \num{#3}\mathcolor{Cterme}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\\
-                \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\
-                \xintifboolexpr{\Coeffa=1}{}{\\}
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$}
-                \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
-                \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}%
-                }{}
-                \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1
-                \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\
-                \ifboolKV[ClesEquation]{Fleches}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%            
-                }{
-                \ifboolKV[ClesEquation]{FlecheDiv}{%
-                \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%
-                \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}%                 
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Entier}{%
-                \SSimpliTest{\Coeffb}{\Coeffa}%
-                \ifboolKV[ClesEquation]{Simplification}{%
-                \ifthenelse{\boolean{Simplification}}{\\\SSimplifie{\Coeffb}{\Coeffa}&=\useKV[ClesEquation]{Lettre}}{}%\\
-                }{}
-                }{}
-                }
-                \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}}
-              \end{align*}
-              \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\useKV[ClesEquation]{Lettre}=\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.%
-              }{}%
-            }%
-          }%
-        }%
-      }%
-    }%
-  }%
-}%
-
-

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2021-04-22 23:48:39 UTC (rev 58972)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2021-04-23 20:37:20 UTC (rev 58973)
@@ -3,7 +3,7 @@
 % or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfCollege}[2021/04/09 v0.99 Aide pour l'utilisation de LaTeX au collège]
+\ProvidesPackage{ProfCollege}[2021/04/09 v0.99-a Aide pour l'utilisation de LaTeX au collège]
 
 \RequirePackage{verbatim}
 
@@ -30,6 +30,7 @@
 \DeclareSIUnit{\quintal}{q}
 \DeclareSIUnit{\octet}{o}
 \DeclareSIUnit{\fahrenheit}{\degree F}
+\DeclareSIUnit{\EuRo}{€}
 
 \RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
 \RequirePackage{xstring}%Gestion de chaines de caractères
@@ -42,9 +43,16 @@
 \DeclareOption{nonshellescape}{\@shellescapefalse}
 \ProcessOptions\relax
 
+\RequirePackage{iftex}
+
+\ifluatex
+\RequirePackage{luamplib}
+\everymplib{input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur; beginfig(1);}
+\everyendmplib{endfig;}
+\else
 \if at shellescape
 \RequirePackage[shellescape,latex]{gmp}%inclusion de figures metapost "à la volée"%
-\gmpoptions{everymp={prologues:=3; input PfC-LaTeX; input PfC-Svgnames; input PfC-Constantes; input PfC-Geometrie; input PfC-Afficheur;}}
+\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}
 \usempxclass{article}
 \usempxpackage{ProfCollege}
 \usempxpackage[utf8]{inputenc}
@@ -54,7 +62,7 @@
 \usempxpackage{pifont}
 \else
 \RequirePackage[latex]{gmp}%inclusion de figures metapost "à la volée"%
-\gmpoptions{everymp={prologues:=3; input PfC-LaTeX; input PfC-Svgnames; input PfC-Constantes; input PfC-Geometrie; input PfC-Afficheur;}}
+\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}
 \usempxclass{article}
 \usempxpackage{ProfCollege}
 \usempxpackage[utf8]{inputenc}
@@ -63,6 +71,7 @@
 \usempxpackage[french]{babel}
 \usempxpackage{pifont}
 \fi
+\fi
 
 \RequirePackage{xintexpr}
 \RequirePackage{listofitems}%pour définir simplement la liste des données.
@@ -70,7 +79,7 @@
 \RequirePackage{multido}
 
 \RequirePackage{xlop}%Pour effectuer les calculs nécessaires.
-\opset{decimalsepsymbol={,}}%
+%\opset{decimalsepsymbol={,}}%
 
 \RequirePackage{xfp}%Pour les calculs trigonométriques
 
@@ -87,8 +96,6 @@
 
 \RequirePackage{hhline}% Pour la cohabitation de cline avec les couleurs
 
-\RequirePackage{iftex}
-
 \RequirePackage{stackengine}
 \RequirePackage[thicklines]{cancel}
 
@@ -98,12 +105,6 @@
 \RequirePackage{environ}
 %
 
-\ifluatex
-\RequirePackage{luamplib}
-\everymplib{input PfC-Svgnames; input PfC-Constantes; input PfC-Geometrie; input PfC-Afficheur; beginfig(1);}
-\everyendmplib{endfig;}
-\fi
-
 %%%%% Quelques besoins particuliers
 
 \def\bla{}%JCC :) Pour les tests sur arguments vides
@@ -316,7 +317,7 @@
 %%%
 \setKVdefault[Tables]{Addition=false,Multiplication=true,Seul=false,Debut=0,Fin=10,Couleur=white}
 
-% pour mémoire
+% pour m\'emoire
 \newcommand\TableMultiplicationComplete{%
   \xdef\NbColTabMul{\fpeval{\useKV[Tables]{Fin}+1-\useKV[Tables]{Debut}}}%
   \begin{tabular}{|>{\columncolor{gray!15}\centering\arraybackslash}p{1.5em}|*{\NbColTabMul}{>{\centering\arraybackslash}p{1.5em}|}}%
@@ -429,12 +430,12 @@
   \ifboolKV[ClesRgt]{Fraction}{%
     \setsepchar[*]{,*/}%\ignoreemptyitems%
     \readlist*\ListeRgt{#2}%
-    % on cherche le dénominateur commun
+    % on cherche le d\'enominateur commun
     \ppcm=1\relax
     \foreachitem\x\in\ListeRgt{%
       \PPCM{\fpeval{\ListeRgt[\xcnt,2]}}{\fpeval{\the\ppcm}}%
     }%
-    % On crée la liste des rangements.
+    % On cr\'ee la liste des rangements.
     \DTLcleardb{mtnumedb}%
     % on les trie pour les ranger par ordre croissant
     \foreachitem\x\in\ListeRgt{%
@@ -461,7 +462,7 @@
   }{%
     \setsepchar{,}\ignoreemptyitems%
     \readlist*\ListeRgt{#2}%
-    % on crée la base de données des valeurs
+    % on cr\'ee la base de donn\'ees des valeurs
     \DTLcleardb{mtdb}%
     % on les trie pour les ranger par ordre croissant
     \foreachitem\x\in\ListeRgt{%
@@ -521,7 +522,7 @@
         }%
       }%
       % fin des cadres
-      % on dessine les flèches
+      % on dessine les fl\`eches
       \ifboolKV[Labyrinthe]{SensImpose}{%
         %verticales
         \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{%
@@ -613,11 +614,11 @@
             }%          
           }%
         }%
-      % fin des flèches
+      % fin des fl\`eches
     }
     \end{tikzpicture}
   }{\textbf{! Le nombre d'informations n'est pas compatible avec les
-      définitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}%
+      d\'efinitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}%
 }
 
 %%%
@@ -730,15 +731,15 @@
 }
 
 \def\MPCalculatrice#1#2#3{
-  % #1 Calcul %2 réponse
+  % #1 Calcul %2 r\'eponse
   \ifluatex
    \mplibforcehmode%
   \begin{mplibcode}%
-    input PfC-Calculatrice;
+    input PfCCalculatrice;
     LCD(#1)(#2)(#3);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Calculatrice;}]
+  \begin{mpost}[mpsettings={input PfCCalculatrice;}]
     LCD(#1)(#2);    
   \end{mpost}
   \fi
@@ -851,7 +852,7 @@
   draw Hor;
   \end{mplibcode}
 \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     marque_horloge=1;
     save Hor;
     picture Hor;
@@ -904,7 +905,7 @@
     \end{tcolorbox}
     \ifboolKV[ClesFlash]{Pause}{\pause}{}
     \begin{tcolorbox}[ExpressionSerie2]
-      $\square$ \textbf{Le chiffre \ListeFlash[1,3] représente le
+      $\square$ \textbf{Le chiffre \ListeFlash[1,3] repr\'esente le
         chiffre des :}
       \tcbox[BoiteExpression]{\phantom{1500000}}
     \end{tcolorbox}
@@ -958,7 +959,7 @@
     \end{tcolorbox}
     \ifboolKV[ClesFlash]{Pause}{\pause}{}
     \begin{tcolorbox}[ExpressionSerie2]
-      $\square$ \textbf{Elle peut aussi s'écrire \ListeFlash[1,3] }
+      $\square$ \textbf{Elle peut aussi s'\'ecrire \ListeFlash[1,3] }
       \tcbox[BoiteExpression]{\phantom{1500000000}}
     \end{tcolorbox}
     \ifboolKV[ClesFlash]{Pause}{\pause}{}
@@ -968,7 +969,7 @@
     \end{tcolorbox}
     \ifboolKV[ClesFlash]{Pause}{\pause}{}
     \begin{tcolorbox}[ExpressionSerie4]
-      $\square$ \textbf{Enlève-lui \ListeFlash[1,5] :}
+      $\square$ \textbf{Enl\`eve-lui \ListeFlash[1,5] :}
       \tcbox[BoiteExpression]{\phantom{\hbox to5em{1500000}}}
     \end{tcolorbox}
   \end{CadreNombre}
@@ -1012,7 +1013,7 @@
     \tcbox[BoiteExpression]{\num{\ListeFlash[1,1]}}
     \ifboolKV[ClesFlash]{Pause}{\pause}{}
     \begin{tcolorbox}[ExpressionSerie1]
-      $\square$ \textbf{\'Ecris-le en fraction décimale :}
+      $\square$ \textbf{\'Ecris-le en fraction d\'ecimale :}
       \tcbox[BoiteExpression]{$\dfrac{\phantom{1000000}}{\phantom{1000000}}$}
     \end{tcolorbox}
     \ifboolKV[ClesFlash]{Pause}{\pause}{}
@@ -1019,12 +1020,12 @@
     \begin{tcolorbox}[ExpressionSerie2]
       $\square$ \begin{tabular}{c}
         \textbf{Partie}\\
-        \textbf{entière}
+        \textbf{enti\`ere}
       \end{tabular} \textbf{: }
       \tcbox[BoiteExpression]{\phantom{100000}}\hfill%
       $\square$ \begin{tabular}{c}
         \textbf{Partie}\\
-        \textbf{décimale}
+        \textbf{d\'ecimale}
       \end{tabular} \textbf{: }
       \tcbox[BoiteExpression]{\phantom{100000}}
     \end{tcolorbox}
@@ -1399,10 +1400,10 @@
 \setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
 
 \def\MPFractionTriangle#1#2#3#4#5{
-  % #1 longueur du côté
-  % #2 partage sur le côté
+  % #1 longueur du c\^ot\'e
+  % #2 partage sur le c\^ot\'e
   % #3 num
-  % #4 déno (attention : = #2^2)
+  % #4 d\'eno (attention : = #2^2)
   % #5 couleur
   \ifluatex
    \mplibforcehmode
@@ -1493,12 +1494,12 @@
  }
 
  \def\MPFractionTriangleH#1#2#3#4#5#6{
-  % #1 longueur du côté
-  % #2 partage sur le côté
+  % #1 longueur du c\^ot\'e
+  % #2 partage sur le c\^ot\'e
   % #3 num
-  % #4 déno (attention : = #2^2)
+  % #4 d\'eno (attention : = #2^2)
   % #5 couleur
-  % #6 épaisseur
+  % #6 \'epaisseur
   \ifluatex
    \mplibforcehmode
    \begin{mplibcode}
@@ -1596,7 +1597,7 @@
  
 
 \def\MPFractionRegulier#1#2#3#4#5{%
-  % #1 rayon, #2 nb côtés, #3 num, #4 deno, #5 couleur
+  % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
   \ifluatex
    \mplibforcehmode
   \begin{mplibcode}
@@ -1648,7 +1649,7 @@
 }
 
 \def\MPFractionRegulierH#1#2#3#4#5#6{%
-  % #1 rayon, #2 nb côtés, #3 num, #4 deno, #5 couleur
+  % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
   \ifluatex
    \mplibforcehmode
   \begin{mplibcode}
@@ -2077,7 +2078,7 @@
 }%
 
 %%%
-% Réponses à relier
+% R\'eponses \`a relier
 %%%
 \setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm}
 
@@ -2138,7 +2139,7 @@
 %%%
 % QCM
 %%%
-\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=2cm,Couleur=gray!15,Titre=false,Nom=Réponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false}
+\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=2cm,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false}
 \newlength{\LargeurQCM}
 \newcounter{QuestionQCM}
 \newcounter{TitreQCM}
@@ -2216,31 +2217,31 @@
 
 \def\MPFigureSommeAngle#1#2#3#4#5#6#7{
     % #1 Premier sommet
-    % #2 Deuxième sommet
-    % #3 Troisième sommet
+    % #2 Deuxi\`eme sommet
+    % #3 Troisi\`eme sommet
     % #4 1er angle
     % #5 2eme angle
-    % #6 0 isocèle / 1 pas isocèle
+    % #6 0 isoc\`ele / 1 pas isoc\`ele
   \ifluatex
   \mplibcodeinherit{enable}
   \mplibforcehmode
   \begin{mplibcode}
     pair A,B,C,O,I;%
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(4,0);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#7);
     B:=B rotatedabout(O,#7);
     C:=C rotatedabout(O,#7);
-    % On définit le centre du cercle inscrit
+    % On d\'efinit le centre du cercle inscrit
     (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
     (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path triangle;
     triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
     % pour marquer les angles
@@ -2286,24 +2287,24 @@
   \mplibcodeinherit{disable}
   \else
   \begin{mpost}
-    input PfC-Geometrie;
+    input PfCGeometrie;
     u:=1cm;
     pair A,B,C,O,I;%
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(4,0);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#7);
     B:=B rotatedabout(O,#7);
     C:=C rotatedabout(O,#7);
-    % On définit le centre du cercle inscrit
+    % On d\'efinit le centre du cercle inscrit
     (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
     (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path triangle;
     triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
     % pour marquer les angles
@@ -2358,7 +2359,7 @@
   % la macro calculant la mesure de l'angle pCpApB
   \useKVdefault[ClesSommeAngle]%obligatoire car la macro n'est pas dans un groupe.
   \setKV[ClesSommeAngle]{#1}%On lit les arguments optionnels
-  % On récupère les noms des sommets.
+  % On r\'ecup\`ere les noms des sommets.
   \StrMid{#2}{1}{1}[\NomA]%
   \StrMid{#2}{2}{2}[\NomB]%
   \StrMid{#2}{3}{3}[\NomC]%
@@ -2366,8 +2367,8 @@
   \xdef\NomSommetB{\NomB}%
   \xdef\NomSommetA{\NomA}%
   \xdef\NomSommetC{\NomC}%
-  % On rédige
-  \ifboolKV[ClesSommeAngle]{Perso}{\RedactionSomme}{Dans le triangle $\NomA\NomB\NomC$,\ifboolKV[ClesSommeAngle]{Isocele}{ isocèle en \NomA,}{} on a :}%
+  % On r\'edige
+  \ifboolKV[ClesSommeAngle]{Perso}{\RedactionSomme}{Dans le triangle $\NomA\NomB\NomC$,\ifboolKV[ClesSommeAngle]{Isocele}{ isoc\`ele en \NomA,}{} on a :}%
       \ifboolKV[ClesSommeAngle]{Isocele}{%
         \ifx\bla#4\bla%
         \begin{align*}%
@@ -2409,7 +2410,7 @@
   % la macro calculant la mesure de l'angle pCpApB
   \useKVdefault[ClesSommeAngle]%obligatoire car la macro n'est pas dans un groupe.
   \setKV[ClesSommeAngle]{#1}%On lit les arguments optionnels
-  % On récupère les noms des sommets.
+  % On r\'ecup\`ere les noms des sommets.
   \StrMid{#2}{1}{1}[\NomA]%
   \StrMid{#2}{2}{2}[\NomB]%
   \StrMid{#2}{3}{3}[\NomC]%
@@ -2428,7 +2429,7 @@
   }{%
     \ifboolKV[ClesSommeAngle]{Figure}{%
       \begin{multicols}{2}%
-        {\em La figure est donnée à titre indicatif.}%
+        {\em La figure est donn\'ee \`a titre indicatif.}%
         \ifx\bla#3\bla%
         \xdef\Intermed{\fpeval{0.5*(180-#4)}}%
         \[\MPFigureSommeAngle{\NomA}{\NomB}{\NomC}{#4}{\Intermed}{0}{\useKV[ClesSommeAngle]{Angle}}\]%
@@ -2440,10 +2441,10 @@
         \fi%
         \fi%
         \par\columnbreak\par%
-        % on rédige
+        % on r\'edige
         \RedactionSom[#1]{#2}{#3}{#4}%
       \end{multicols}%
-    }{% on rédige
+    }{% on r\'edige
       \RedactionSom[#1]{#2}{#3}{#4}%
     }%
   }%
@@ -2450,15 +2451,15 @@
 }%
 
 %%%
-% Le théorème de Pythagore
+% Le th\'eor\`eme de Pythagore
 %%%
 \setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,ValeurA=0,ValeurB=0,ValeurC=0,Perso=false}
 
-% On définit les figures à utiliser
+% On d\'efinit les figures \`a utiliser
 \def\MPFigurePytha#1#2#3#4#5#6{%
   % #1 Premier sommet
   % #2 Sommet de l'angle droit
-  % #3 troisième sommet
+  % #3 troisi\`eme sommet
   % #4 1ere longueur
   % #5 2eme longueur
   % #6 angle de rotation de la figure
@@ -2470,15 +2471,15 @@
     O=u*(2.5,2.5);
     path cc;
     cc=(fullcircle scaled 4u) shifted O;
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.9*length cc) of cc;
     B=A rotatedabout(O,-120);
     C=2[A,O];
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % On définit l'angle droit
+    % On d\'efinit l'angle droit
     D-B=7*unitvector(C-B);
     F-B=7*unitvector(A-B);
     E-D=F-B;
@@ -2516,15 +2517,15 @@
     O=u*(2.5,2.5);
     path cc;
     cc=(fullcircle scaled 4u) shifted O;
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.9*length cc) of cc;
     B=A rotatedabout(O,-120);
     C=2[A,O];
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % On définit l'angle droit
+    % On d\'efinit l'angle droit
     D-B=7*unitvector(C-B);
     F-B=7*unitvector(A-B);
     E-D=F-B;
@@ -2561,7 +2562,7 @@
 \def\MPFigureReciPytha#1#2#3#4#5#6#7{%
   % #1 Premier sommet
     % #2 Sommet de l'angle droit
-    % #3 troisième sommet
+    % #3 troisi\`eme sommet
     % #4 1ere longueur
     % #5 2eme longueur
     % #6 3eme longueur
@@ -2574,11 +2575,11 @@
     O=u*(2.5,2.5);
     path cc;
     cc=(fullcircle scaled 4u) shifted O;
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.8*length cc) of cc;
     B=A rotatedabout(O,-100);
     C=2[A,O];
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#7);
     B:=B rotatedabout(O,#7);
     C:=C rotatedabout(O,#7);
@@ -2606,11 +2607,11 @@
     O=u*(2.5,2.5);
     path cc;
     cc=(fullcircle scaled 4u) shifted O;
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.8*length cc) of cc;
     B=A rotatedabout(O,-100);
     C=2[A,O];
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#7);
     B:=B rotatedabout(O,#7);
     C:=C rotatedabout(O,#7);
@@ -2637,11 +2638,11 @@
 \newcommand\RedactionPythagore{}
 
 \newcommand{\Pythagore}[5][]{%
-  % #1 Paramètres sous forme de clés
+  % #1 Param\`etres sous forme de cl\'es
   % #2 Nom "complet" du triangle : ABC par exemple
-  % #3 Première longueur
-  % #4 Deuxième longueur
-  % #5 Troisième longueur (éventuellement vide)
+  % #3 Premi\`ere longueur
+  % #4 Deuxi\`eme longueur
+  % #5 Troisi\`eme longueur (\'eventuellement vide)
   \useKVdefault[ClesPythagore]%obligatoire car la macro n'est pas dans un groupe.
   \setKV[ClesPythagore]{#1}%On lit les arguments optionnels
   \ifboolKV[ClesPythagore]{Reciproque}{%
@@ -2649,7 +2650,7 @@
     \StrMid{#2}{1}{1}[\NomA]%
     \StrMid{#2}{2}{2}[\NomB]%
     \StrMid{#2}{3}{3}[\NomC]%
-    % on stocke les valeurs données
+    % on stocke les valeurs donn\'ees
     \opcopy{#3}{A1}%
     \opcopy{#4}{A2}%
     \opcopy{#5}{A3}%
@@ -2659,11 +2660,11 @@
     }{%
       \ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation
         \begin{multicols}{2}
-          {\em La figure est donnée à titre indicatif.}%
+          {\em La figure est donn\'ee \`a titre indicatif.}%
           \[\MPFigureReciPytha{\NomA}{\NomB}{\NomC}{#3}{#4}{#5}{\useKV[ClesPythagore]{Angle}}\]%
           \par\columnbreak\par%
-          % on rédige
-          Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand côté.%
+          % on r\'edige
+          Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.%
           \ifboolKV[ClesPythagore]{ReciColonnes}{%
             \[
               \begin{array}{cccc|cccc}
@@ -2684,17 +2685,17 @@
             \]
           }
           \ifboolKV[ClesPythagore]{Egalite}{%
-            \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore est vérifiée. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
-            \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore n'est pas vérifiée. Donc le triangle $#2$ n'est pas rectangle.\fi%
+            \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
+            \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore n'est pas v\'erifi\'ee. Donc le triangle $#2$ n'est pas rectangle.\fi%
           }{%
             \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors le triangle $#2$ est rectangle
-            en $\NomB$ d'après la réciproque du théorème de Pythagore.\fi%
+            en $\NomB$ d'apr\`es la r\'eciproque du th\'eor\`eme de Pythagore.\fi%
             \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors le
-            triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'après la contraposée du théorème de Pythagore.}\fi%
+            triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'apr\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi%
           }
         \end{multicols}
       }{%
-        Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand côté.%
+        Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.%
         \ifboolKV[ClesPythagore]{ReciColonnes}{%
           \[
             \begin{array}{cccc|cccc}
@@ -2715,18 +2716,18 @@
           \]
         }%
         \ifboolKV[ClesPythagore]{Egalite}{%
-          \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore est vérifiée. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
-          \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'égalité de Pythagore n'est pas vérifiée. Donc le triangle $#2$ n'est pas rectangle.\fi%
+          \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
+          \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore n'est pas v\'erifi\'ee. Donc le triangle $#2$ n'est pas rectangle.\fi%
         }{%
           \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors le triangle $#2$ est rectangle
-          en $\NomB$ d'après la réciproque du théorème de Pythagore.\fi%
+          en $\NomB$ d'apr\`es la r\'eciproque du th\'eor\`eme de Pythagore.\fi%
           \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors le
-          triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'après la contraposée du théorème de Pythagore.}\fi%
+          triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'apr\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi%
         }%
       }%
     }%
   }{%
-    % [xlop] paramètres de calcul
+    % [xlop] param\`etres de calcul
     \opcopy{#3}{A1}%
     \opcopy{#4}{A2}%
     \opcopy{\useKV[ClesPythagore]{Precision}}{pres}%
@@ -2744,11 +2745,11 @@
     }{%
       \ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation
         \begin{multicols}{2}%
-          {\em La figure est donnée à titre indicatif.}%
+          {\em La figure est donn\'ee \`a titre indicatif.}%
           \[\MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}\]
           \par\columnbreak\par%
-          % On démarre la résolution
-          \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'égalité de Pythagore est vérifiée :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
+          % On d\'emarre la r\'esolution
+          \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
             }%
           }%
           \xintifboolexpr{#3<#4 || #3=#4}{%\ifnum#3<#4%
@@ -2780,8 +2781,8 @@
           }%\fi%
         \end{multicols}
       }{%
-        % On démarre la résolution
-        \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'égalité de Pythagore est vérifiée :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
+        % On d\'emarre la r\'esolution
+        \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
         }}%
         \xintifboolexpr{#3<#4 || #3=#4}{%\ifnum#3<#4%
           \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
@@ -2828,7 +2829,7 @@
 }%
 
 %%%
-% Distributivité
+% Distributivit\'e
 %%%
 % https://tex.stackexchange.com/questions/168972/draw-arrows-to-show-multiplication-pattern-distributive-property/169278?noredirect=1 
 \newcommand{\Tikzmark}[1]{%
@@ -2863,7 +2864,7 @@
 \newcounter{NbDistri}%
 \setcounter{NbDistri}{0}%
 
-\newcounter{NbCalculDistri}%Pour compter combien de distributivité il
+\newcounter{NbCalculDistri}%Pour compter combien de distributivit\'e il
 % y a dans un "seul calcul".
 \setcounter{NbCalculDistri}{0}
 
@@ -2917,8 +2918,8 @@
           \xdef\Multij{\fpeval{#2*#3}}%
           \xdef\Multik{\fpeval{#3*#2}}%
           \xdef\Multil{\fpeval{#3*#3}}%
-          %% ils sont redéfinis pour pouvoir envisager la somme de deux
-          %% expressions à développer
+          %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+          %% expressions \`a d\'evelopper
           \xdef\Multim{\fpeval{#2*#3+#3*#2}}%
           \ifboolKV[ClesDistributivite]{Oppose}{%
             \xdef\Multi{\fpeval{-\Multi}}%
@@ -2937,8 +2938,8 @@
           \xdef\Multij{\fpeval{#2*#5}}%
           \xdef\Multik{\fpeval{#3*#4}}%
           \xdef\Multil{\fpeval{#3*#5}}%
-          %% ils sont redéfinis pour pouvoir envisager la somme de deux
-          %% expressions à développer
+          %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+          %% expressions \`a d\'evelopper
           \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
           \ifboolKV[ClesDistributivite]{Oppose}{%
             \xdef\Multi{\fpeval{-\Multi}}%
@@ -3035,8 +3036,8 @@
               \xdef\Multij{\fpeval{#2*#5}}%
               \xdef\Multik{\fpeval{#3*#4}}%
               \xdef\Multil{\fpeval{#3*#5}}%
-              %% ils sont redéfinis pour pouvoir envisager la somme de deux
-              %% expressions à développer
+              %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+              %% expressions \`a d\'evelopper
               \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}%
               \ifboolKV[ClesDistributivite]{Reduction}{\mathunderline{DCReduction}{%
                   \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{{}+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}%
@@ -3054,8 +3055,8 @@
               \xdef\Multij{\fpeval{#2*#5}}%
               \xdef\Multik{\fpeval{#3*#4}}%
               \xdef\Multil{\fpeval{#3*#5}}%
-              %% ils sont redéfinis pour pouvoir envisager la somme de deux
-              %% expressions à développer
+              %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+              %% expressions \`a d\'evelopper
               \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
               \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
               \stepcounter{NbCalculDistri}%
@@ -3139,8 +3140,8 @@
         \xdef\Multij{\fpeval{#2*#3}}%
         \xdef\Multik{\fpeval{#3*#2}}%
         \xdef\Multil{\fpeval{#3*#3}}%
-        %% ils sont redéfinis pour pouvoir envisager la somme de deux
-        %% expressions à développer
+        %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+        %% expressions \`a d\'evelopper
         \xdef\Multim{\fpeval{#2*#3+#3*#2}}%
         \ifboolKV[ClesDistributivite]{Oppose}{%
           \xdef\Multi{\fpeval{-\Multi}}%
@@ -3159,8 +3160,8 @@
         \xdef\Multij{\fpeval{#2*#5}}%
         \xdef\Multik{\fpeval{#3*#4}}%
         \xdef\Multil{\fpeval{#3*#5}}%
-        %% ils sont redéfinis pour pouvoir envisager la somme de deux
-        %% expressions à développer
+        %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+        %% expressions \`a d\'evelopper
         \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
         \ifboolKV[ClesDistributivite]{Oppose}{%
           \xdef\Multi{\fpeval{-\Multi}}%
@@ -3172,7 +3173,7 @@
         }{%
           \AffichageEchange{\Multi}{\Multim}{\Multil}%
         }
-        % à faire
+        % \`a faire
         \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#3*#5}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#2*#4}}}{}%
         \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#3*#5}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#2*#4}}}{}%
         % 
@@ -3328,8 +3329,8 @@
             \xdef\Multij{\fpeval{#2*#5}}%
             \xdef\Multik{\fpeval{#3*#4}}%
             \xdef\Multil{\fpeval{#3*#5}}%
-            %% ils sont redéfinis pour pouvoir envisager la somme de deux
-            %% expressions à développer
+            %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+            %% expressions \`a d\'evelopper
             \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{%
             \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\AffichageEchange{0}{\Multi}{0})}{\AffichageEchange{0}{\Multi}{0}}}{\AffichageEchange{0}{\Multi}{0}}%
               \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{\Multij}{0}{0}\xintifboolexpr{\Multij<0}{)}{}}%
@@ -3364,8 +3365,8 @@
             \xdef\Multij{\fpeval{#2*#5}}%
             \xdef\Multik{\fpeval{#3*#4}}%
             \xdef\Multil{\fpeval{#3*#5}}%
-            %% ils sont redéfinis pour pouvoir envisager la somme de deux
-            %% expressions à développer
+            %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+            %% expressions \`a d\'evelopper
             \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
             \stepcounter{NbCalculDistri}%
             \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{%
@@ -3855,13 +3856,13 @@
 
 \newcount\premier
 
-\newcommand{\NombrePremier}[1]{%écrire la décomposition complète
-  % #1 le nombre premier à tester
+\newcommand{\NombrePremier}[1]{%\'ecrire la d\'ecomposition compl\`ete
+  % #1 le nombre premier \`a tester
   \newcount\anp\newcount\bnp\newcount\cnp%\newcount\e\newcount\f%
   \anp=#1\relax
   \bnp=2\relax
   \premier=-1\relax
-  % Pour déterminer le nombre d'étapes
+  % Pour d\'eterminer le nombre d'\'etapes
   \whiledo{\anp > 1}{%
     \modulo{\the\anp}{\the\bnp}
     \ifnum\remainder=0\relax
@@ -3881,13 +3882,13 @@
   \fi
 }
 
-\newcommand{\NombrePremierVertical}[1]{%écrire la décomposition complète
-  % #1 le nombre premier à tester
+\newcommand{\NombrePremierVertical}[1]{%\'ecrire la d\'ecomposition compl\`ete
+  % #1 le nombre premier \`a tester
   \newcount\anpv\newcount\bnpv\newcount\cnpv%\newcount\e\newcount\f%
   \anpv=#1\relax
   \bnpv=2\relax
   \premier=-1\relax
-  % Pour déterminer le nombre d'étapes
+  % Pour d\'eterminer le nombre d'\'etapes
   \whiledo{\anpv > 1}{%
     \modulo{\the\anpv}{\the\bnpv}
     \ifnum\remainder=0\relax
@@ -3910,8 +3911,8 @@
 }
 
 \newcommand{\PremierDiviseurVide}[2]{%
-  %#1 : le nombre entier à tester
-  %#2 : le nombre d'étapes à effectuer
+  %#1 : le nombre entier \`a tester
+  %#2 : le nombre d'\'etapes \`a effectuer
   \newcount\anpvv\newcount\bnpvv\newcount\cnpvv\newcount\dnpvv%
   \ensuremath{%
     \anpvv=#1\relax
@@ -3935,8 +3936,8 @@
 }
 
 \newcommand{\PremierMultipleVide}[2]{%
-  %#1 : le nombre entier à tester
-  %#2 : le nombre d'étapes à effectuer
+  %#1 : le nombre entier \`a tester
+  %#2 : le nombre d'\'etapes \`a effectuer
   \newcount\anpmv\newcount\bnpmv\newcount\cnpmv\newcount\dnpmv%
   \ensuremath{%
     \anpmv=#1\relax
@@ -3959,13 +3960,13 @@
   }
 }
 
-\newcommand{\NombrePremierVerticalVide}[1]{%écrire la décomposition complète
-  % #1 le nombre premier à tester
+\newcommand{\NombrePremierVerticalVide}[1]{%\'ecrire la d\'ecomposition compl\`ete
+  % #1 le nombre premier \`a tester
   \newcount\anpv\newcount\bnpv\newcount\cnpv%\newcount\e\newcount\f%
   \anpv=#1\relax
   \bnpv=2\relax
   \premier=-1\relax
-  % Pour déterminer le nombre d'étapes
+  % Pour d\'eterminer le nombre d'\'etapes
   \whiledo{\anpv > 1}{%
     \modulo{\the\anpv}{\the\bnpv}
     \ifnum\remainder=0\relax
@@ -3991,14 +3992,14 @@
   \fi
 }
 
-\newcommand{\NombrePremierExposant}[1]{%écrire la décomposition
-  % complète
+\newcommand{\NombrePremierExposant}[1]{%\'ecrire la d\'ecomposition
+  % compl\`ete
   \newcount\anp\newcount\bnp\newcount\cnp%\newcount\e\newcount\f%
-  % #1 le nombre premier à tester
+  % #1 le nombre premier \`a tester
   \anp=#1\relax%
   \bnp=2\relax%
   \premier=-1\relax%
-  % Pour déterminer le nombre d'étapes
+  % Pour d\'eterminer le nombre d'\'etapes
   \whiledo{\anp > 1}{%
     \modulo{\the\anp}{\the\bnp}
     \ifnum\remainder=0\relax%
@@ -4020,8 +4021,8 @@
 }%
   
 \newcommand{\PremierEtape}[2]{%
-  %#1 : le nombre entier à tester
-  %#2 : le nombre d'étapes à effectuer
+  %#1 : le nombre entier \`a tester
+  %#2 : le nombre d'\'etapes \`a effectuer
   \newcount\anp\newcount\bnp\newcount\cnp\newcount\dnp%
   \ensuremath{%
     \anp=#1\relax
@@ -4046,7 +4047,7 @@
 }
 
 \newcommand{\PremierExposant}[1]{%
-  %#1 : le nombre entier à tester
+  %#1 : le nombre entier \`a tester
   \ensuremath{%
   \newcount\anp\newcount\bnp\newcount\cnp%
   \newcount\pileb\newcount\exposant%
@@ -4076,7 +4077,7 @@
 }%
 
 \newcommand{\PremierLong}[1]{%
-  %#1 : le nombre entier à tester
+  %#1 : le nombre entier \`a tester
   \ensuremath{%
   \newcount\anpl\newcount\bnpl\newcount\cnpl%
   \newcount\pilebl%
@@ -4097,7 +4098,7 @@
   }
 }
 
-\newcommand{\ListeDiviseur}[1]{%#1 : le nombre entier à tester
+\newcommand{\ListeDiviseur}[1]{%#1 : le nombre entier \`a tester
   \newcount\anp\newcount\bnp%
   \anp=#1%
   \bnp=2\relax%
@@ -4114,7 +4115,7 @@
 
 \newcount\anpT\newcount\bnpT\newcount\cnpT\newcount\dnpT%
 
-\newcommand\ListeDiviseurT[1]{%#1 : le nombre entier à tester
+\newcommand\ListeDiviseurT[1]{%#1 : le nombre entier \`a tester
   \anpT=#1%
   \bnpT=2\relax%
   %On compte les diviseurs propres.
@@ -4144,8 +4145,8 @@
 }
 
 \newcommand\DiviseurNumero[2]{%
-  % #1 nb entier à tester
-  % #2 no du diviseur (à part 1 et #1)
+  % #1 nb entier \`a tester
+  % #2 no du diviseur (\`a part 1 et #1)
   \anpT=#1%
   \bnpT=2\relax%
   %On compte les diviseurs propres.
@@ -4183,7 +4184,7 @@
 \makeatother
 
 \def\SSimplifie#1#2{%
-  % Simplification d'une écriture #1/#2
+  % Simplification d'une \'ecriture #1/#2
   \ensuremath{
     \newcount\numerateur\newcount\denominateur\newcount\valabsnum\newcount\valabsdeno
     \numerateur=\number#1
@@ -4223,7 +4224,7 @@
             \divide\denominateur by\pgcd%
             \frac{\num{\the\numerateur}}{\num{\the\denominateur}}
           }
-        \else%%%comme on est avec les négatifs, on doit regarder si la valeur absolue est égale à 1
+        \else%%%comme on est avec les n\'egatifs, on doit regarder si la valeur absolue est \'egale \`a 1
           \ifnum\valabsdeno=1\relax
             \divide\numerateur by \denominateur\num{\the\numerateur}
           \else
@@ -4237,7 +4238,7 @@
 
 
 \newcommand{\SSimpli}[2]{%
-  % Décomposition d'une simplification de #1/#2
+  % D\'ecomposition d'une simplification de #1/#2
   \newcount\numerateur\newcount\denominateur\newcount\valabsnum\newcount\valabsdeno%
   \numerateur=\number#1
   \denominateur=\number#2
@@ -4291,7 +4292,7 @@
 \newcount\DivCom
 \newcommand\DiviseurCommun[2]{%
   % #1 : le premier nombre entier
-  % #2 : le deuxième nombre entier
+  % #2 : le deuxi\`eme nombre entier
  % nombre 1 vaut #1 - Nombre 2 vaut #2
   \anpdc=#1%
   \cnpdc=#2%
@@ -4385,11 +4386,11 @@
 
 \setKVdefault[ClesThales]{Calcul=true,Droites=false,Propor=false,Segment=false,Figure=false,FigureSeule=false,Figurecroisee=false,FigurecroiseeSeule=false,Angle=0,Precision=2,Entier=false,Unite=cm,Reciproque=false,Produit=false,ChoixCalcul=0,Simplification,Redaction=false,Remediation=false}
 
-%On définit la figure à utiliser
+%On d\'efinit la figure \`a utiliser
 \def\MPFigThales#1#2#3#4#5#6{
     % #1 Premier sommet
-    % #2 Deuxième sommet
-    % #3 Troisième sommet
+    % #2 Deuxi\`eme sommet
+    % #3 Troisi\`eme sommet
     % #4 point sur le segment #1#2
     % #5 point sur le segment #1#3
   \ifluatex
@@ -4398,18 +4399,18 @@
   \begin{mplibcode}
     u:=1cm;
     pair A,B,C,M,N,O;%
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(4,0);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path cotes[];
     cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
     cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4447,18 +4448,18 @@
   \begin{mpost}
     u:=1cm;
     pair A,B,C,M,N,O;%
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(4,0);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path cotes[];
     cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
     cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4494,11 +4495,11 @@
   \fi
 }
 
-%On définit la figure à utiliser
+%On d\'efinit la figure \`a utiliser
 \def\MPFigReciThales#1#2#3#4#5#6{
     % #1 Premier sommet
-    % #2 Deuxième sommet
-    % #3 Troisième sommet
+    % #2 Deuxi\`eme sommet
+    % #3 Troisi\`eme sommet
     % #4 point sur le segment #1#2
     % #5 point sur le segment #1#3
   \ifluatex
@@ -4507,18 +4508,18 @@
   \begin{mplibcode}
     u:=1cm;
     pair A,B,C,M,N,O;%
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(4,0);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path cotes[];
     cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
     cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4544,18 +4545,18 @@
   \begin{mpost}
       u:=1cm;
     pair A,B,C,M,N,O;%
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(4,0);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path cotes[];
     cotes1=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
     cotes2=B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
@@ -4579,11 +4580,11 @@
   \fi
 }
 
-%On définit la deuxième figure à utiliser
+%On d\'efinit la deuxi\`eme figure \`a utiliser
 \def\MPFigThalesCroisee#1#2#3#4#5#6{%
     % #1 Premier sommet
-    % #2 Deuxième sommet
-    % #3 Troisième sommet
+    % #2 Deuxi\`eme sommet
+    % #3 Troisi\`eme sommet
     % #4 point sur la droite #1#2
     % #5 point sur la droite #1#3
   \ifluatex
@@ -4595,15 +4596,15 @@
     O=(2.5u,2.5u);
     path cc;
     cc=(fullcircle scaled 3u) shifted O;
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.1*length cc) of cc;
     B=A rotatedabout(O,130);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     M=1.4[B,A];
     N=1.4[C,A];
     path cotes[];
@@ -4617,7 +4618,7 @@
     draw cotes[k];
     endfor;
     pair I;
-    % On définit le centre du cercle inscrit à AMC
+    % On d\'efinit le centre du cercle inscrit \`a AMC
     (I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
     (I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
     %on labelise
@@ -4649,15 +4650,15 @@
     O=(2.5u,2.5u);
     path cc;
     cc=(fullcircle scaled 3u) shifted O;
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.1*length cc) of cc;
     B=A rotatedabout(O,130);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     M=1.4[B,A];
     N=1.4[C,A];
     path cotes[];
@@ -4671,7 +4672,7 @@
     draw cotes[k];
     endfor;
     pair I;
-    % On définit le centre du cercle inscrit à AMC
+    % On d\'efinit le centre du cercle inscrit \`a AMC
     (I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
     (I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
     %on labelise
@@ -4698,11 +4699,11 @@
   \fi
 }
 
-%On définit la deuxième figure à utiliser
+%On d\'efinit la deuxi\`eme figure \`a utiliser
 \def\MPFigReciThalesCroisee#1#2#3#4#5#6{%
   % #1 Premier sommet
-    % #2 Deuxième sommet
-    % #3 Troisième sommet
+    % #2 Deuxi\`eme sommet
+    % #3 Troisi\`eme sommet
     % #4 point sur la droite #1#2
     % #5 point sur la droite #1#3
   \ifluatex
@@ -4714,15 +4715,15 @@
     O=(2.5u,2.5u);
     path cc;
     cc=(fullcircle scaled 3u) shifted O;
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.1*length cc) of cc;
     B=A rotatedabout(O,130);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     M=1.4[B,A];
     N=1.4[C,A];
     path cotes[];
@@ -4736,7 +4737,7 @@
     draw cotes[k];
     endfor;
     pair I;
-    % On définit le centre du cercle inscrit à AMC
+    % On d\'efinit le centre du cercle inscrit \`a AMC
     (I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
     (I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
     %on labelise
@@ -4758,15 +4759,15 @@
     O=(2.5u,2.5u);
     path cc;
     cc=(fullcircle scaled 3u) shifted O;
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=point(0.1*length cc) of cc;
     B=A rotatedabout(O,130);
     C=(A--2[A,B rotatedabout(A,45)]) intersectionpoint (B--2[B,A rotatedabout(B,-60)]);
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#6);
     B:=B rotatedabout(O,#6);
     C:=C rotatedabout(O,#6);
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     M=1.4[B,A];
     N=1.4[C,A];
     path cotes[];
@@ -4780,7 +4781,7 @@
     draw cotes[k];
     endfor;
     pair I;
-    % On définit le centre du cercle inscrit à AMC
+    % On d\'efinit le centre du cercle inscrit \`a AMC
     (I-C) rotated ((angle(A-C)-angle(M-C))/2) shifted C=whatever[A,C];
     (I-M) rotated ((angle(C-M)-angle(A-M))/2) shifted M=whatever[M,C];
     %on labelise
@@ -4802,7 +4803,7 @@
   \useKVdefault[ClesThales]%
   \setKV[ClesThales]{#1}%
   \ifboolKV[ClesThales]{Droites}{%
-    Les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#5)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#4#6)$} sont sécantes en \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$#2$}.%
+    Les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#5)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#4#6)$} sont s\'ecantes en \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$#2$}.%
   }{%
     Dans le triangle \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$#2#3#4$}, \ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{$#5$} est un point \ifboolKV[ClesThales]{Segment}{du segment}{de la
       droite}
@@ -4811,7 +4812,7 @@
     point \ifboolKV[ClesThales]{Segment}{du segment}{de la droite}
     \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{\ifboolKV[ClesThales]{Segment}{$[#2#4]$}{$(#2#4)$}}.%
   }
-  \\Comme les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#5#6)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#4)$} sont parallèles, alors \ifboolKV[ClesThales]{Propor}{le tableau%
+  \\Comme les droites \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#5#6)$} et \ifboolKV[ClesThales]{Remediation}{\pointilles[2cm]}{$(#3#4)$} sont parall\`eles, alors \ifboolKV[ClesThales]{Propor}{le tableau%
     \[\begin{array}{c|c|c}
         \ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#5}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#6}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#5#6}\\
         \hline
@@ -4818,9 +4819,9 @@
         \ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#3}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#4}&\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#3#4}\\
       \end{array}
     \]
-    est un tableau de proportionnalité\ifboolKV[ClesThales]{Segment}{.}{ d'après le théorème de Thalès.}%
+    est un tableau de proportionnalit\'e\ifboolKV[ClesThales]{Segment}{.}{ d'apr\`es le th\'eor\`eme de Thal\`es.}%
   }{%
-    \ifboolKV[ClesThales]{Segment}{on a :}{le théorème de Thalès permet d'écrire :}%
+    \ifboolKV[ClesThales]{Segment}{on a :}{le th\'eor\`eme de Thal\`es permet d'\'ecrire :}%
     \[\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#5}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#3}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#6}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#2#4}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#5#6}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{#3#4}}\]%
   }
 }
@@ -4827,7 +4828,7 @@
 
 \newcommand{\TThalesCalculsD}[8][]{%
   \setKV[ClesThales]{#1}%
-  \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs à faire et combien en faire%
+  \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs \`a faire et combien en faire%
   \def\Nomx{}%
   \def\Nomy{}%
   \def\Nomz{}%
@@ -4966,7 +4967,7 @@
   }{%
     \[\frac{\IfDecimal{#3}{\num{#3}}{#3}}{\IfDecimal{#6}{\num{#6}}{#6}}=\frac{\IfDecimal{#4}{\num{#4}}{#4}}{\IfDecimal{#7}{\num{#7}}{#7}}=\frac{\IfDecimal{#5}{\num{#5}}{#5}}{\IfDecimal{#8}{\num{#8}}{#8}}\]
   }%
-  % On choisit éventuellement le calcul à faire s'il y en a plusieurs.
+  % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs.
   \xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}%
   \xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul=1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul=2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}{}%
   %%on fait les calculs
@@ -4975,7 +4976,7 @@
     \ifnum\cmxa>0
       \Nomx\uppercase{&}=\frac{\opexport{valx}{\valx}\num{\valx}\times\opexport{Valx}{\Valx}\num{\Valx}}{\opexport{denox}{\denox}\num{\denox}}\relax%\global\numx=\numexpr\opprint{valx}*\opprint{Valx}\relax
     \fi
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \ifnum\cmxa=0
       \else
@@ -4983,7 +4984,7 @@
       \fi%
       \Nomy\uppercase{&}=\frac{\opexport{valy}{\valy}\num{\valy}\times\opexport{Valy}{\Valy}\num{\Valy}}{\opexport{denoy}{\denoy}\num{\denoy}}\relax%\global\numy=\numexpr\opprint{valy}*\opprint{Valy}\relax
     \fi
-    % Troisième compteur \zzz
+    % Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \ifnum\cmxa=0
         \ifnum\cmya=0                           
@@ -4997,12 +4998,12 @@
       \fi
     \fi
     \\
-%    % 2eme ligne du tableau : calcul des numérateurs
+%    % 2eme ligne du tableau : calcul des num\'erateurs
 %        %Premier compteur \xxx
     \ifnum\cmxa>0
-      \Nomx\uppercase{&}=\frac{\opmul*{valx}{Valx}{numx}\opexport{numx}{\numx}\num{\numx}}{\opprint{denox}}
+      \Nomx\uppercase{&}=\frac{\opmul*{valx}{Valx}{numx}\opexport{numx}{\numx}\num{\numx}}{\opexport{denox}{\denox}\num{\denox}}
     \fi
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \ifnum\cmxa=0
         %
@@ -5009,9 +5010,9 @@
       \else
         \uppercase{&}
       \fi
-      \Nomy\uppercase{&}=\frac{\opmul*{valy}{Valy}{numy}\opexport{numy}{\numy}\num{\numy}}{\opprint{denoy}}%
+      \Nomy\uppercase{&}=\frac{\opmul*{valy}{Valy}{numy}\opexport{numy}{\numy}\num{\numy}}{\opexport{denoy}{\denoy}\num{\denoy}}%
     \fi
-%    %Troisième compteur \zzz
+%    %Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \ifnum\cmxa=0
         \ifnum\cmya=0                           
@@ -5019,17 +5020,17 @@
         \else
           \uppercase{&}
         \fi
-        \Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opprint{denoz}}
+        \Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opexport{denoz}{\denoz}\num{\denoz}}
       \else
-        \uppercase{&}\Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opprint{denoz}}
+        \uppercase{&}\Nomz\uppercase{&}=\frac{\opmul*{valz}{Valz}{numz}\opexport{numz}{\numz}\num{\numz}}{\opexport{denoz}{\denoz}\num{\denoz}}
       \fi
     \fi
     \\
 %    % 3eme ligne : Calculs
     \ifnum\cmxa>0
-      \Nomx\uppercase{&}\opdiv*{numx}{denox}{resultatx}{restex}\opcmp{restex}{0}\ifopeq=\opprint{resultatx}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultatx}{\useKV[ClesThales]{Precision}}{resultatx}\opprint{resultatx}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultatx}{\resultatx}%\xdef\ResultatThalesx{\num{\resultatx}}%
+      \Nomx\uppercase{&}\opdiv*{numx}{denox}{resultatx}{restex}\opcmp{restex}{0}\ifopeq=\num{\ResultatThalesx}\else\approx\num{\fpeval{round(\ResultatThalesx,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
     \fi
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \ifnum\cmxa=0
         %
@@ -5036,9 +5037,9 @@
       \else
         \uppercase{&}
       \fi
-      \Nomy\uppercase{&}\opdiv*{numy}{denoy}{resultaty}{restey}\opcmp{restey}{0}\ifopeq=\opprint{resultaty}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultaty}{\useKV[ClesThales]{Precision}}{resultaty}\opprint{resultaty}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultaty}{\resultaty}%\xdef\ResultatThalesy{\num{\resultaty}}
+      \Nomy\uppercase{&}\opdiv*{numy}{denoy}{resultaty}{restey}\opcmp{restey}{0}\ifopeq=\num{\ResultatThalesy}\else\approx\num{\fpeval{round(\ResultatThalesy,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
     \fi
-%    %Troisième compteur \zzz
+%    %Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \ifnum\cmxa=0
         \ifnum\cmya=0                           
@@ -5046,9 +5047,9 @@
         \else
           \uppercase{&}
         \fi
-        \Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultatz}{\useKV[ClesThales]{Precision}}{resultatz}\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultatz}{\resultatz}%\xdef\ResultatThalesz{\num{\resultatz}}
+        \Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\num{\ResultatThalesz}\else\approx\num{\fpeval{round(\ResultatThalesz,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
       \else
-        \uppercase{&}\Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\else\approx\opround{resultatz}{\useKV[ClesThales]{Precision}}{resultatz}\opprint{resultatz}~\text{\useKV[ClesThales]{Unite}}\fi\opexport{resultatz}{\resultatz}%\xdef\ResultatThalesz{\num{\resultatz}}
+        \uppercase{&}\Nomz\uppercase{&}\opdiv*{numz}{denoz}{resultatz}{restez}\opcmp{restez}{0}\ifopeq=\num{\ResultatThalesz}\else\approx\num{\fpeval{round(\ResultatThalesz,\useKV[ClesThales]{Precision})}}\fi~\text{\useKV[ClesThales]{Unite}}%
       \fi
     \fi
 \end{align*}
@@ -5057,7 +5058,7 @@
 
 \newcommand{\TThalesCalculsE}[8][]{%
   \setKV[ClesThales]{#1}%
-  \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs à faire et combien en faire%
+  \newcount\zzz\newcount\yyy\newcount\xxx%Pour se rappeller des calculs \`a faire et combien en faire%
   \newcount\valx\newcount\Valx%
   \newcount\valy\newcount\Valy%
   \newcount\valz\newcount\Valz%
@@ -5183,7 +5184,7 @@
   }{%
     \[\frac{\IfDecimal{#3}{\num{#3}}{#3}}{\IfDecimal{#6}{\num{#6}}{#6}}=\frac{\IfDecimal{#4}{\num{#4}}{#4}}{\IfDecimal{#7}{\num{#7}}{#7}}=\frac{\IfDecimal{#5}{\num{#5}}{#5}}{\IfDecimal{#8}{\num{#8}}{#8}}\]
   }%
-  % On choisit éventuellement le calcul à faire s'il y en a plusieurs.
+  % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs.
   \xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}%
   \xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul=1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul=2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}%
   %%on fait les calculs
@@ -5192,7 +5193,7 @@
     \ifnum\cmxa>0
       \Nomx\uppercase{&}=\frac{\the\valx\times\the\Valx}{\the\denox}\global\numx=\numexpr\the\valx*\the\Valx\relax
     \fi
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \ifnum\cmxa=0
       \else
@@ -5203,7 +5204,7 @@
      %   \uppercase{&}\Nomy\uppercase{&}=\frac{\the\valy\times\the\Valy}{\the\denoy}\global\numy=\numexpr\the\valy*\the\Valy\relax
      % \fi
     \fi
-    % Troisième compteur \zzz
+    % Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \ifnum\cmxa=0
         \ifnum\cmya=0                           
@@ -5217,12 +5218,12 @@
       \fi
     \fi
     \\
-    % 2eme ligne du tableau : calcul des numérateurs
+    % 2eme ligne du tableau : calcul des num\'erateurs
         %Premier compteur \xxx
     \ifnum\cmxa>0
       \Nomx\uppercase{&}=\frac{\num{\the\numx}}{\num{\the\denox}}
     \fi
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \ifnum\cmxa=0
         %\Nomy\uppercase{&}=\frac{\num{\the\numy}}{\num{\the\denoy}}
@@ -5231,7 +5232,7 @@
       \fi
       \Nomy\uppercase{&}=\frac{\num{\the\numy}}{\num{\the\denoy}}%
     \fi
-    %Troisième compteur \zzz
+    %Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \ifnum\cmxa=0
         \ifnum\cmya=0                           
@@ -5255,7 +5256,7 @@
         \uppercase{&}
       \fi
     \fi                    
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \PGCD{\the\numy}{\the\denoy}
       \ifnum\cmxa=0
@@ -5272,7 +5273,7 @@
         \fi
       \fi
     \fi
-    %Troisième compteur \zzz
+    %Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \PGCD{\the\numz}{\the\denoz}
       \ifnum\cmxa=0
@@ -5312,7 +5313,7 @@
         \uppercase{&}
       \fi
     \fi                    
-    %    % Deuxième compteur \yyy
+    %    % Deuxi\`eme compteur \yyy
     \ifnum\cmya>0
       \PGCD{\the\numy}{\the\denoy}
       \ifnum\cmxa=0
@@ -5337,7 +5338,7 @@
         \fi
       \fi
     \fi
-    %Troisième compteur \zzz
+    %Troisi\`eme compteur \zzz
     \ifnum\cmza>0
       \PGCD{\the\numz}{\the\denoz}
       \ifnum\cmxa=0
@@ -5389,7 +5390,7 @@
       \ifboolKV[ClesThales]{Figure}{%
         \StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
         \begin{multicols}{2}%
-          {\em La figure est donnée à titre indicatif.}%
+          {\em La figure est donn\'ee \`a titre indicatif.}%
           \[\MPFigThales{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
           \par\columnbreak\par%
           \ifboolKV[ClesThales]{Entier}{\TThalesCalculsE[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}{\TThalesCalculsD[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
@@ -5397,7 +5398,7 @@
       }{\ifboolKV[ClesThales]{Figurecroisee}{%
           \StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
           \begin{multicols}{2}%
-            {\em La figure est donnée à titre indicatif.}%
+            {\em La figure est donn\'ee \`a titre indicatif.}%
             \[\MPFigThalesCroisee{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
             \par\columnbreak\par%
             \ifboolKV[ClesThales]{Entier}{\TThalesCalculsE[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}{\TThalesCalculsD[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}}%
@@ -5411,7 +5412,7 @@
 
 \newcommand{\ReciThales}[6][]{%
   \ifboolKV[ClesThales]{Droites}{%
-    Les droites $(#3#5)$ et $(#4#6)$ sont sécantes en $#2$.
+    Les droites $(#3#5)$ et $(#4#6)$ sont s\'ecantes en $#2$.
   }{%
     Dans le triangle $#2#3#4$, $#5$ est un point
     \ifboolKV[ClesThales]{Segment}{du segment $[#2#3]$}{de la
@@ -5424,7 +5425,7 @@
         \hline
         #2#3&#2#4\\
       \end{array}
-    $ est-il un tableau de proportionnalité ?
+    $ est-il un tableau de proportionnalit\'e ?
   }{%
   }
 }
@@ -5444,10 +5445,10 @@
       \num{#3}\times\num{#6}&=\num{\fpeval{#3*#6}}&&&\num{#4}\times\num{#5}&=\num{\fpeval{#4*#5}}
     \end{align*}
     \xintifboolexpr{\NumA = \NumB}{Comme les produits en croix sont
-      égaux, alors
+      \'egaux, alors
       $\dfrac{\NomA\NomM}{\NomA\NomB}=\dfrac{\NomA\NomN}{\NomA\NomC}$.\\[0.5em]%
     }{%
-      Comme les produits en croix sont différents, alors
+      Comme les produits en croix sont diff\'erents, alors
       $\dfrac{\NomA\NomM}{\NomA\NomB}\not=\dfrac{\NomA\NomN}{\NomA\NomC}$.\\%
     }%
   }{%
@@ -5479,25 +5480,25 @@
         \hline
         \NomA\NomB&\NomA\NomC\\
       \end{array}
-    $ est bien un tableau de proportionnalité.\\De plus, les points
-    $\NomA$, $\NomM$, $\NomB$ sont alignés dans le même ordre que les
+    $ est bien un tableau de proportionnalit\'e.\\De plus, les points
+    $\NomA$, $\NomM$, $\NomB$ sont align\'es dans le m\^eme ordre que les
     points $\NomA$, $\NomN$, $\NomC$. Donc les droites $(\NomM\NomN)$
-    et $(\NomB\NomC)$ sont parallèles d'après la réciproque du
-    théorème de Thalès.\else%
-    Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas parallèles.\fi
+    et $(\NomB\NomC)$ sont parall\`eles d'apr\`es la r\'eciproque du
+    th\'eor\`eme de Thal\`es.\else%
+    Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas parall\`eles.\fi
   }{%
     \xintifboolexpr{\NumA=\NumB}{%
-      De plus, les points $\NomA$, $\NomM$, $\NomB$ sont alignés dans
-      le même ordre que les points $\NomA$, $\NomN$, $\NomC$. Donc les
-      droites $(\NomM\NomN)$ et $(\NomB\NomC)$ sont parallèles d'après
-      la réciproque du théorème de Thalès.}{%
+      De plus, les points $\NomA$, $\NomM$, $\NomB$ sont align\'es dans
+      le m\^eme ordre que les points $\NomA$, $\NomN$, $\NomC$. Donc les
+      droites $(\NomM\NomN)$ et $(\NomB\NomC)$ sont parall\`eles d'apr\`es
+      la r\'eciproque du th\'eor\`eme de Thal\`es.}{%
       Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas
-      parallèles.}
+      parall\`eles.}
   }
 }
 
 \newcommand\ReciproqueThales[8][]{%
-  % #1 Clés
+  % #1 Cl\'es
   % #2 NomTriangle + Points ABCEF pour droite (BC)//(EF)
   % #3 longueur AE
   % #4 longueur AB
@@ -5513,7 +5514,7 @@
       \ifboolKV[ClesThales]{Figure}{%
         \StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
         \begin{multicols}{2}
-          {\em La figure est donnée à titre indicatif.}
+          {\em La figure est donn\'ee \`a titre indicatif.}
           \[\MPFigReciThales{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]
           \par\columnbreak\par        
           \ReciThales[#1]{\StrMid{#2}{1}{1}}{\StrMid{#2}{2}{2}}{\StrMid{#2}{3}{3}}{\StrMid{#2}{4}{4}}{\StrMid{#2}{5}{5}}\par
@@ -5522,7 +5523,7 @@
       }{\ifboolKV[ClesThales]{Figurecroisee}{%
           \StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]
           \begin{minipage}{0.4\linewidth}
-            {\em La figure est donnée à titre indicatif.}
+            {\em La figure est donn\'ee \`a titre indicatif.}
             \[\MPFigReciThalesCroisee{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]
           \end{minipage}
           \hfill
@@ -5556,7 +5557,7 @@
           \ifboolKV[ClesThales]{Figure}{%
             \StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
             \begin{multicols}{2}
-              {\em La figure est donnée à titre indicatif.}%
+              {\em La figure est donn\'ee \`a titre indicatif.}%
               \[\MPFigThales{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
               \par\columnbreak\par%
               \TTThales[#1]{\StrMid{#2}{1}{1}}{\StrMid{#2}{2}{2}}{\StrMid{#2}{3}{3}}{\StrMid{#2}{4}{4}}{\StrMid{#2}{5}{5}}%
@@ -5565,7 +5566,7 @@
             \ifboolKV[ClesThales]{Figurecroisee}{%
               \StrMid{#2}{1}{1}[\NomA]\StrMid{#2}{2}{2}[\NomB]\StrMid{#2}{3}{3}[\NomC]\StrMid{#2}{4}{4}[\NomM]\StrMid{#2}{5}{5}[\NomN]%
               \begin{multicols}{2}
-                {\em La figure est donnée à titre indicatif.}%
+                {\em La figure est donn\'ee \`a titre indicatif.}%
                 \[\MPFigThalesCroisee{\NomA}{\NomB}{\NomC}{\NomM}{\NomN}{\useKV[ClesThales]{Angle}}\]%
                 \par\columnbreak\par%
                 \TTThales[#1]{\StrMid{#2}{1}{1}}{\StrMid{#2}{2}{2}}{\StrMid{#2}{3}{3}}{\StrMid{#2}{4}{4}}{\StrMid{#2}{5}{5}}%
@@ -5583,7 +5584,7 @@
 }%
 
 %%%
-% Trigonométrie
+% Trigonom\'etrie
 %%%
 \def\MPFigTrigo#1#2#3#4#5#6#7#8{%
   \ifluatex
@@ -5592,24 +5593,24 @@
   \begin{mplibcode}
     u:=\useKV[ClesTrigo]{Echelle};
     pair A,B,C,O,I,D,E,F;%
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(3,0);
     C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#8);
     B:=B rotatedabout(O,#8);
     C:=C rotatedabout(O,#8);
-    % On définit le centre du cercle inscrit
+    % On d\'efinit le centre du cercle inscrit
     (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
     (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path triangle;
     triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
-    % on définit l'angle droit
+    % on d\'efinit l'angle droit
     D-B=7*unitvector(C-B);
     F-B=7*unitvector(A-B);
     E-D=F-B;
@@ -5688,24 +5689,24 @@
   \begin{mpost}
     u:=1cm;
     pair A,B,C,O,I,D,E,F;%
-    % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
     A=u*(1,1);
     B-A=u*(3,0);
     C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
     O - .5[A,B] = whatever * (B-A) rotated 90;
     O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
     A:=A rotatedabout(O,#8);
     B:=B rotatedabout(O,#8);
     C:=C rotatedabout(O,#8);
-    % On définit le centre du cercle inscrit
+    % On d\'efinit le centre du cercle inscrit
     (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
     (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
-    % on dessine à main levée :)
+    % on dessine \`a main lev\'ee :)
     path triangle;
     triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
-    % on définit l'angle droit
+    % on d\'efinit l'angle droit
     D-B=7*unitvector(C-B);
     F-B=7*unitvector(A-B);
     E-D=F-B;
@@ -5798,24 +5799,24 @@
   \begin{mplibcode}
     u:=\useKV[ClesTrigo]{Echelle};
   pair A,B,C,O,I,D,E,F;%
-  % On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+  % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
   A=u*(1,1);
   B-A=u*(3,0);
   C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
   O - .5[A,B] = whatever * (B-A) rotated 90;
   O - .5[B,C] = whatever * (C-B) rotated 90;
-  % On tourne pour éventuellement moins de lassitude :)
+  % On tourne pour \'eventuellement moins de lassitude :)
   A:=A rotatedabout(O,#7);
   B:=B rotatedabout(O,#7);
   C:=C rotatedabout(O,#7);
-  % On définit le centre du cercle inscrit
+  % On d\'efinit le centre du cercle inscrit
   (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
   (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
-    %on dessine à main levée :)
+    %on dessine \`a main lev\'ee :)
   path triangle;
   triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
-  %on définit l'angle droit
+  %on d\'efinit l'angle droit
   D-B=7*unitvector(C-B);
   F-B=7*unitvector(A-B);
   E-D=F-B;
@@ -5860,24 +5861,24 @@
   \begin{mpost}
       u:=1cm;
   pair A,B,C,O,I,D,E,F;%
-    %On place les points A,B,C sur le cercle de manière à faciliter la rotation de la figure
+    %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
   A=u*(1,1);
   B-A=u*(3,0);
   C=(A--2[A,B rotatedabout(A,50)]) intersectionpoint (B--2[B,A rotatedabout(B,-90)]);
-    % On définit le centre du cercle circonscrit
+    % On d\'efinit le centre du cercle circonscrit
   O - .5[A,B] = whatever * (B-A) rotated 90;
   O - .5[B,C] = whatever * (C-B) rotated 90;
-    % On tourne pour éventuellement moins de lassitude :)
+    % On tourne pour \'eventuellement moins de lassitude :)
   A:=A rotatedabout(O,#7);
   B:=B rotatedabout(O,#7);
   C:=C rotatedabout(O,#7);
-    % On définit le centre du cercle inscrit
+    % On d\'efinit le centre du cercle inscrit
   (I-C) rotated ((angle(A-C)-angle(B-C))/2) shifted C=whatever[A,C];
   (I-B) rotated ((angle(C-B)-angle(A-B))/2) shifted B=whatever[B,C];
-    %on dessine à main levée :)
+    %on dessine \`a main lev\'ee :)
   path triangle;
   triangle=A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)}--B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)}--C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)}--cycle;
-  %on définit l'angle droit
+  %on d\'efinit l'angle droit
   D-B=7*unitvector(C-B);
   F-B=7*unitvector(A-B);
   E-D=F-B;
@@ -5926,12 +5927,12 @@
 
 \newcommand\TrigoCalculs[5][]{%
   \setKV[ClesTrigo]{#1}%
-  % #1 Clés
+  % #1 Cl\'es
   % #2 Nom du triangle ABC, rectangle en B, angle connu ou pas : BAC
   % #3 Longueur
   % #4 Longueur
   % #5 angle
-  % On définit les points
+  % On d\'efinit les points
   \StrMid{#2}{1}{1}[\NomA]%
   \StrMid{#2}{2}{2}[\NomB]%
   \StrMid{#2}{3}{3}[\NomC]%
@@ -5946,7 +5947,7 @@
     Dans le triangle $\NomA\NomB\NomC$, rectangle en $\NomB$, on a :%
   }%
   \ifboolKV[ClesTrigo]{Cosinus}{%
-    \ifx\bla#3\bla%on calcule le côté adjacent
+    \ifx\bla#3\bla%on calcule le c\^ot\'e adjacent
     \xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*cosd(#5)},\useKV[ClesTrigo]{Precision})}}%
    \ifboolKV[ClesTrigo]{Propor}{%
      \begin{align*}
@@ -5963,7 +5964,7 @@
       \end{align*}
     }%
     \else%
-    \ifx\bla#4\bla%on calcule l'hypothénuse
+    \ifx\bla#4\bla%on calcule l'hypoth\'enuse
     \xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/cosd(#5)},\useKV[ClesTrigo]{Precision})}}%
     \ifboolKV[ClesTrigo]{Propor}{%
       \begin{align*}
@@ -6000,7 +6001,7 @@
     \fi%
   }{}%
   \ifboolKV[ClesTrigo]{Sinus}{%
-    \ifx\bla#3\bla%on calcule le côté opposé
+    \ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
     \xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*sind(#5)},\useKV[ClesTrigo]{Precision})}}%
     \ifboolKV[ClesTrigo]{Propor}{%
       \begin{align*}
@@ -6017,7 +6018,7 @@
       \end{align*}%
     }%
     \else
-    \ifx\bla#4\bla%on calcule l'hypothénuse
+    \ifx\bla#4\bla%on calcule l'hypoth\'enuse
     \xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/sind(#5)},\useKV[ClesTrigo]{Precision})}}%
     \ifboolKV[ClesTrigo]{Propor}{%
       \begin{align*}
@@ -6054,7 +6055,7 @@
     \fi%
   }{}%
   \ifboolKV[ClesTrigo]{Tangente}{%
-    \ifx\bla#3\bla%on calcule le côté opposé
+    \ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
     \xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*tand(#5)},\useKV[ClesTrigo]{Precision})}}%
     \ifboolKV[ClesTrigo]{Propor}{%
       \begin{align*}
@@ -6112,16 +6113,16 @@
 \newcommand\Trigo[5][]{%
   \useKVdefault[ClesTrigo]%
   \setKV[ClesTrigo]{#1}%
-  % #1 Clés
+  % #1 Cl\'es
   % #2 Nom du triangle ABC, rectangle en B, angle connu ou pas : BAC
   % #3 Longueur
   % #4 Longueur
   % #5 angle
-  % On définit les points
+  % On d\'efinit les points
   \StrMid{#2}{1}{1}[\NomA]%
   \StrMid{#2}{2}{2}[\NomB]%
   \StrMid{#2}{3}{3}[\NomC]%
-  % On rédige
+  % On r\'edige
   \ifboolKV[ClesTrigo]{FigureSeule}{%
     \ifx\bla#5\bla%
     \ifboolKV[ClesTrigo]{Cosinus}{%
@@ -6159,7 +6160,7 @@
   }{%
     \ifboolKV[ClesTrigo]{Figure}{%
       \begin{multicols}{2}%
-        {\em La figure est donnée à titre indicatif.}%
+        {\em La figure est donn\'ee \`a titre indicatif.}%
         \ifx\bla#5\bla%
         \ifboolKV[ClesTrigo]{Cosinus}{%
           \begin{center}
@@ -6254,7 +6255,7 @@
     \rowcolor{\useKV[ClesStat]{CouleurTab}}\the\tabtoksa\\\hline%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}<1%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb}\\\hline% 
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
      \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6262,7 +6263,7 @@
 	\else%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}>\ListeCompletelen%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb}\\\hline%  
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
      \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6270,7 +6271,7 @@
 	\else%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=1%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}}\\\hline%  
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
      \ifboolKV[ClesStat]{ECC}{E.C.C.&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6278,7 +6279,7 @@
     \else%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=\ListeCompletelen%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ListeComplete[##1,2]}}&\\\hline%  
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\\\hline}{}%
 	\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\\\hline}{}%
      \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\\\hline}{}%
@@ -6285,7 +6286,7 @@
 	\end{tabular}
 	\else%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ListeComplete[##1,2]}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}}\\\hline%  
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
@@ -6308,7 +6309,7 @@
     \rowcolor{\useKV[ClesStat]{CouleurTab}}\the\tabtoksa&Total\\\hline%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}<1%
      \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\the\tabtoksb&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
       \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
       \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6316,7 +6317,7 @@
 	\else%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}>\ListeCompletelen%
      \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\the\tabtoksb&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
       \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
       \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6324,7 +6325,7 @@
 	\else%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=1%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\useKV[ClesStat]{Effectif}&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%  
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
       \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
       \ifboolKV[ClesStat]{ECC}{E.C.C.&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6332,7 +6333,7 @@
     \else%
 	\ifnum\number\numexpr\useKV[ClesStat]{ColVide}=\ListeCompletelen%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ListeComplete[##1,2]}&&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%  
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
       \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
       \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6339,7 +6340,7 @@
     \end{tabular}
 	\else%
     \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen+1}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ListeComplete[##1,2]}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline% 
-	\ifboolKV[ClesStat]{Frequence}{Fréquence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
+	\ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
 	\ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
       \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
       \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\number\numexpr\useKV[ClesStat]{ColVide}-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\xintFor* ##1 in {\xintSeq {\number\numexpr\useKV[ClesStat]{ColVide}+1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
@@ -6413,7 +6414,7 @@
   }%
 }%
 
-%% calcul des fréquences
+%% calcul des fr\'equences
 \newcommand\CalculFrequence[1]{%
   \fpeval{round(\ListeComplete[#1,2]*100/\EffectifTotal,0)}
 }
@@ -6626,7 +6627,7 @@
     ang[0]:=0;
     path cc;
     cc=(fullcircle scaled (2*#1));
-    % on récupère les couleurs
+    % on r\'ecup\`ere les couleurs
     color Col[];
     n:=0;
     for p_=#5:
@@ -6671,7 +6672,7 @@
     if #4=1: withcolor 0.5white fi;
     fi;
     draw A[n-1]--O--A[n] if #6=1: withpen pencircle scaled2 fi;
-    % Affichage des angles associés
+    % Affichage des angles associ\'es
     if #4=1:
     if round(p_*(#3/total[N]))>15:
     if (n mod 2)=0:
@@ -6742,7 +6743,7 @@
     toto(#2);
   \end{mplibcode}
   \else
-  \begin{mpost}%[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}%[mpsettings={input PfCGeometrie;}]
     pair A[],O,B[],C[],D[];
     O=(0,0);
     n:=0;
@@ -6751,7 +6752,7 @@
     ang[0]:=0;
     path cc;
     cc=(fullcircle scaled (2*#1));
-    % on récupère les couleurs
+    % on r\'ecup\`ere les couleurs
     color Col[];
     n:=0;
     for p_=#5:
@@ -6796,7 +6797,7 @@
     if #4=1: withcolor 0.5white fi;
     fi;
     draw A[n-1]--O--A[n] if #6=1: withpen pencircle scaled2 fi;
-    % Affichage des angles associés
+    % Affichage des angles associ\'es
     if #4=1:
     if round(p_*(#3/total[N]))>15:
     if (n mod 2)=0:
@@ -6869,7 +6870,7 @@
   \fi
 }
 
-%Pour la médiane.
+%Pour la m\'ediane.
 \DTLgnewdb{mtdb}%
 \dtlexpandnewvalue%
 \newcount\nbdonnees%
@@ -6931,7 +6932,7 @@
 			\xdef\listEEa{\the\tabtoksEEb}%
 			\ignoreemptyitems%
 			\setsepchar{,}%
-			\readlist*\ListeSansDoublonsEE\listEEa%    	%%% Enlève tous les élements
+			\readlist*\ListeSansDoublonsEE\listEEa%    	%%% Enl\`eve tous les \'elements
 														%%% identiques de Liste
 		}{}%  
 	}%	
@@ -6941,7 +6942,7 @@
 			\ifthenelse{\equal{\nba}{\nbb}}{\cmptEE=\numexpr\cmptEE+1\relax}{}%
 		}%
 		\expandafter\AjoutListEEab\nba\nil%
-		\expandafter\AjoutListEEaa\the\cmptEE\nil% 	%%% Compte tous les élements
+		\expandafter\AjoutListEEaa\the\cmptEE\nil% 	%%% Compte tous les \'elements
 													%%% identiques de Liste
 	}%
 	\xdef\listEEb{\the\tabtoksEEa}
@@ -6952,7 +6953,7 @@
     \ifthenelse{\equal{\the\PasNumEE}{0}}{\setKV[ClesStat]{Quantitatif}}{\setKV[ClesStat]{Qualitatif}}%
   }{%
   \ifboolKV[ClesStat]{Qualitatif}{%
-    %  % on lit la liste écrite sous la forme valeur/effectif
+    %  % on lit la liste \'ecrite sous la forme valeur/effectif
     \setsepchar[*]{,*/}\ignoreemptyitems%
     \readlist*\ListeComplete{#2}%
     }{% Dans le qualitatif, on trie d'abord les valeurs.
@@ -6979,9 +6980,9 @@
 	\setsepchar[*]{,*/}
 	\readlist*\ListeComplete\listEE%
   }}}
-  % on crée la base de données des valeurs dans le cas qualitatif
+  % on cr\'ee la base de donn\'ees des valeurs dans le cas qualitatif
   \DTLcleardb{mtdb}%
-  % on les trie pour la médiane dans le cas qualitatif % Touhami / Texnique.fr
+  % on les trie pour la m\'ediane dans le cas qualitatif % Touhami / Texnique.fr
   \foreachitem\x\in\ListeComplete{%
     \DTLnewrow{mtdb}%
     \itemtomacro\ListeComplete[\xcnt,2]\y%
@@ -6988,7 +6989,7 @@
     \DTLnewdbentry{mtdb}{Numeric}{\y}%
   }%
   \dtlsort{Numeric}{mtdb}{\dtlicompare}%
-  %  % on réinitialise les valeurs des critères de position et de
+  %  % on r\'einitialise les valeurs des crit\`eres de position et de
   % dispersion
   \renewcommand\NbDonnees{}
   \renewcommand\SommeDonnees{}%
@@ -6999,16 +7000,16 @@
   \renewcommand\DonneeMax{0}%
   \renewcommand\EffectifMax{0}%
   \renewcommand\DonneeMin{999999999}%
-  \ifboolKV[ClesStat]{Qualitatif}{%Début qualitatif
+  \ifboolKV[ClesStat]{Qualitatif}{%D\'ebut qualitatif
     % Calculs
-    %  %% celui de la somme des données
+    %  %% celui de la somme des donn\'ees
     \foreachitem\don\in\ListeComplete{\xdef\SommeDonnees{\fpeval{\SommeDonnees+\ListeComplete[\doncnt,2]}}}%
     %  %% celui de l'effectif total
     \ifboolKV[ClesStat]{EffectifTotal}{%
-      \ifboolKV[ClesStat]{Liste}{L'effectif total de la série est
+      \ifboolKV[ClesStat]{Liste}{L'effectif total de la s\'erie est
         \num{\ListeCompletelen}.\par}{
         \foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
-        L'effectif total de la série est : \[\ListeComplete[1,2]\xintFor* ##1 in
+        L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
           {\xintSeq {2}{\ListeCompletelen}}\do{%
             +\ListeComplete[##1,2]}=\num{\EffectifTotal}\]}
     }{}%
@@ -7017,7 +7018,7 @@
     \xdef\Moyenne{\fpeval{\SommeDonnees/\ListeCompletelen}}%	
     \ifboolKV[ClesStat]{Moyenne}{%
     \ifboolKV[ClesStat]{Liste}{%    
-      La somme des données de la série est :%
+      La somme des donn\'ees de la s\'erie est :%
       \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
         \[
           \num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
@@ -7031,8 +7032,8 @@
         }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
       \]%
     }%
-      \ifboolKV[ClesStat]{SET}{}{Le nombre de données de la série est \num{\ListeCompletelen}.\\}%
-      Donc la moyenne de la série est égale à :%
+      \ifboolKV[ClesStat]{SET}{}{Le nombre de donn\'ees de la s\'erie est \num{\ListeCompletelen}.\\}%
+      Donc la moyenne de la s\'erie est \'egale \`a :%
       \[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\ListeCompletelen}}%\IfInteger{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}{=}{\approx}
         \opdiv*{\SommeDonnees}{\ListeCompletelen}{resultatmoy}{restemoy}%
         \opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
@@ -7039,8 +7040,8 @@
               \opcmp{resultatmoy}{resultatmoy1}\ifopeq=\else\approx\fi%
         \num{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}%
       \]%
-    }{Pas de moyenne possible pour une série de données à caractère qualitatif.}}{}%
-    %    %  %% celui de l'étendue
+    }{Pas de moyenne possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
+    %    %  %% celui de l'\'etendue
     \xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
       \xintifboolexpr{\ListeComplete[##1,2]>\DonneeMax}{%
         \xdef\DonneeMax{\ListeComplete[##1,2]}%
@@ -7053,11 +7054,11 @@
     \xdef\Etendue{\fpeval{\DonneeMax-\DonneeMin}}%
     \ifboolKV[ClesStat]{Etendue}{%
     \ifboolKV[ClesStat]{Liste}{%
-    L'étendue de la série est égale à $\num{\DonneeMax}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\DonneeMin}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
-    }{Pas d'étendue possible pour une série de données à caractère qualitatif.}}{}%
+    L'\'etendue de la s\'erie est \'egale \`a $\num{\DonneeMax}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\DonneeMin}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+    }{Pas d'\'etendue possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
     \ifboolKV[ClesStat]{Mediane}{%
     \ifboolKV[ClesStat]{Liste}{%    
-      On range les données par ordre croissant :%
+      On range les donn\'ees par ordre croissant :%
       \nbdonnees=0%
       \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
         \[\DTLforeach{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{;}}\]%
@@ -7075,45 +7076,45 @@
       \newcount\meda%
       \ifodd\number\ListeCompletelen%odd impair
       \med=\fpeval{(\ListeCompletelen+1)/2}\relax%
-      L'effectif total de la série est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$.\\
+      L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$.\\
       \else% pair
       \med=\fpeval{\ListeCompletelen/2}\relax
       \meda=\numexpr\med+1\relax
-      L'effectif total de la série est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\the\med}+\num{\the\med}$.\\
+      L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\the\med}+\num{\the\med}$.\\
       \fi%
       \newcount\k%
       \k=0%
       \DTLforeach{mtdb}{\numeroDonnee=Numeric}{\k=\numexpr\k+1\relax%
-        \ifnum\k=\med %La médiane vaut \numeroDonnee\fi
+        \ifnum\k=\med %La m\'ediane vaut \numeroDonnee\fi
         \ifodd\number\ListeCompletelen%
-        La médiane de la série est la \the\med\ieme{} donnée.\\Donc la médiane de la série est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+        La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee.\\Donc la m\'ediane de la s\'erie est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
         \else%
-        La \the\med\ieme{} donnée est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\xdef\Mediane{\numeroDonnee} %
+        La \the\med\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\xdef\Mediane{\numeroDonnee} %
         \fi
         \fi
         \ifnum\k=\meda
-        La \the\meda\ieme{} donnée est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.} Donc la médiane de la série est \xdef\Mediane{\fpeval{(\Mediane+\numeroDonnee)/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}
+        La \the\meda\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.} Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\numeroDonnee)/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}
         \fi
       }
       %%%%%%%%%%%%%%%%%%%%%%%% 
-    }{Pas de médiane possible pour une série de données à caractère qualitatif.}}{}
+    }{Pas de m\'ediane possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}
     % Construction du tableau
     \ifboolKV[ClesStat]{Tableau}{%
-    \ifboolKV[ClesStat]{Liste}{Pas de tableau possible avec la clé Liste.\\Utilisez plutôt la clé Sondage si vous voulez un tableau avec cette liste.}{%
+    \ifboolKV[ClesStat]{Liste}{Pas de tableau possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un tableau avec cette liste.}{%
     \ifboolKV[ClesStat]{Total}{\buildtabt}{\buildtab}}}%
     {}%
     % Construction du graphique
     \ifboolKV[ClesStat]{Graphique}{%
-    \ifboolKV[ClesStat]{Liste}{Pas de graphique possible avec la clé Liste.\\Utilisez plutôt la clé Sondage si vous voulez un graphique avec cette liste.}{%
+    \ifboolKV[ClesStat]{Liste}{Pas de graphique possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un graphique avec cette liste.}{%
       \ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraphq[#1]}}%
     }}{}
-  }{%%%%%%%%%%%%%%%%%%%%%Début quantitatif
+  }{%%%%%%%%%%%%%%%%%%%%%D\'ebut quantitatif
    %  % on effectue les calculs
-   %  %% celui de la somme des données
+   %  %% celui de la somme des donn\'ees
    \foreachitem\don\in\ListeComplete{\xdef\SommeDonnees{\fpeval{\SommeDonnees+\ListeComplete[\doncnt,1]*\ListeComplete[\doncnt,2]}}}%
     %  %% celui de l'effectif total
     \foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
-    %  %% celui de l'étendue
+    %  %% celui de l'\'etendue
     \xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
       \xintifboolexpr{\ListeComplete[##1,1]>\DonneeMax}{%
         \xdef\DonneeMax{\ListeComplete[##1,1]}%
@@ -7127,12 +7128,12 @@
     %  %% celui de la moyenne
     \xdef\Moyenne{\fpeval{\SommeDonnees/\EffectifTotal}}%
     \ifboolKV[ClesStat]{EffectifTotal}{%
-      L'effectif total de la série est : \[\ListeComplete[1,2]\xintFor* ##1 in
+      L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
       {\xintSeq {2}{\ListeCompletelen}}\do{%
         +\ListeComplete[##1,2]}=\num{\EffectifTotal}\]
     }{}%
     \ifboolKV[ClesStat]{Moyenne}{%
-      La somme des données de la série est :%
+      La somme des donn\'ees de la s\'erie est :%
       \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
         \[
           \ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
@@ -7148,7 +7149,7 @@
           }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
         \]
       }
-      \ifboolKV[ClesStat]{SET}{}{L'effectif total de la série est :%
+      \ifboolKV[ClesStat]{SET}{}{L'effectif total de la s\'erie est :%
         \ifboolKV[ClesStat]{Liste}{ \num{\EffectifTotal}\\}{%
           \[\num{\ListeComplete[1,2]}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
               +\num{\ListeComplete[##1,2]}
@@ -7156,7 +7157,7 @@
           \]%
         }%
       }
-      Donc la moyenne de la série est égale à :%
+      Donc la moyenne de la s\'erie est \'egale \`a :%
       \[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\EffectifTotal}}%
         \opdiv*{\SommeDonnees}{\EffectifTotal}{resultatmoy}{restemoy}%
         \opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
@@ -7165,10 +7166,10 @@
         \num{\fpeval{round(\SommeDonnees/\EffectifTotal,\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}
       \]%
     }{}%
-    %  % Affichage des réponses.
-    %  %% pour l'étendue
-    \ifboolKV[ClesStat]{Etendue}{L'étendue de la série est égale à $\num{\ListeComplete[\ListeCompletelen,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}}{}%
-    %  %% pour la médiane
+    %  % Affichage des r\'eponses.
+    %  %% pour l'\'etendue
+    \ifboolKV[ClesStat]{Etendue}{L'\'etendue de la s\'erie est \'egale \`a $\num{\ListeComplete[\ListeCompletelen,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}}{}%
+    %  %% pour la m\'ediane
     \ifboolKV[ClesStat]{Mediane}{%
       
       \newcount\med%
@@ -7175,11 +7176,11 @@
       \newcount\meda%
       \ifodd\number\EffectifTotal%odd impair
       \med=\fpeval{(\EffectifTotal+1)/2}\relax%
-      L'effectif total de la série est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$. %
+      L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$. %
       \else% pair
       \med=\fpeval{\EffectifTotal/2}\relax%
       \meda=\numexpr\med+1\relax%
-      L'effectif total de la série est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med}}+\num{\fpeval{\med}}$. %
+      L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med}}+\num{\fpeval{\med}}$. %
       \fi%
       \newcount\k%
       \k=0%
@@ -7188,13 +7189,13 @@
           \k=\numexpr\k+1\relax%
           \ifnum\k=\med%
           \ifodd\number\EffectifTotal%
-          La médiane de la série est la \the\med\ieme{} donnée. Donc la médiane de la série est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+          La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee. Donc la m\'ediane de la s\'erie est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
           \else%
-          La \the\med\ieme{} donnée est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}. }{. }\xdef\Mediane{\ListeComplete[##1,1]}%
+          La \the\med\ieme{} donn\'ee est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}. }{. }\xdef\Mediane{\ListeComplete[##1,1]}%
           \fi%
           \fi%
           \ifnum\k=\meda%
-          La \the\meda\ieme{} valeur est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\\Donc la médiane de la série est \xdef\Mediane{\fpeval{(\Mediane+\ListeComplete[##1,1])/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+          La \the\meda\ieme{} valeur est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\\Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\ListeComplete[##1,1])/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
           \fi%
         }%
       }%
@@ -7213,7 +7214,7 @@
 %%%
 \setKVdefault[ClesRadar]{Rayon=3cm,Reference=20,MoyenneClasse=false,Disciplines=false,Pas=5}
 
-\newtoks\toklisteradara%pour la moyenne de l'élève
+\newtoks\toklisteradara%pour la moyenne de l'\'el\`eve
 \newtoks\toklisteradarb%pour la discipline
 \newtoks\toklisteradarc%pour la moyenne de classe
 
@@ -7254,7 +7255,7 @@
     label.lrt(TEX(p_),1.025[O,pointarc(cc,N[p])]);
     fi;
     endfor;
-    % tracé des pas:
+    % trac\'e des pas:
     pas=#4/#3;
     for k=1 upto pas-1:
     trace (k/pas)[O,pointarc(cc,N[1])] for l=2 upto n: --(k/pas)[O,pointarc(cc,N[l])] endfor
@@ -7265,7 +7266,7 @@
     % etiquettage des pas
     dotlabel.urt(btex \tiny #4 etex,pointarc(cc,0));
     dotlabel.urt(btex \tiny #3 etex,(1/pas)[O,pointarc(cc,0)]);
-    % tracé des résultats élèves
+    % trac\'e des r\'esultats \'el\`eves
     pair El[];
     el=0;
     for p_=#5:
@@ -7274,7 +7275,7 @@
     endfor;
     trace El[1] for p=2 upto n:--El[p] endfor --cycle withpen
     pencircle scaled 1.5 withcolor blue;
-    % tracé des résultats classe
+    % trac\'e des r\'esultats classe
     pair Cl[];
     cl=0;
     for p_=#6:
@@ -7314,7 +7315,7 @@
     label.lrt(TEX(p_),1.025[O,pointarc(cc,N[p])]);
     fi;
     endfor;
-    % tracé des pas:
+    % trac\'e des pas:
     pas=#4/#3;
     for k=1 upto pas-1:
     trace (k/pas)[O,pointarc(cc,N[1])] for l=2 upto n: --(k/pas)[O,pointarc(cc,N[l])] endfor
@@ -7325,7 +7326,7 @@
     % etiquettage des pas
     dotlabel.top(LATEX("\noexpand\tiny"&decimal(#4)&"") rotated -90,pointarc(cc,0));
     dotlabel.urt(LATEX("\noexpand\tiny"&decimal(#3)&""),(1/pas)[O,pointarc(cc,0)]);
-    % tracé des résultats élèves
+    % trac\'e des r\'esultats \'el\`eves
     pair El[];
     el=0;
     for p_=#5:
@@ -7334,7 +7335,7 @@
     endfor;
     trace El[1] for p=2 upto n:--El[p] endfor --cycle withpen
     pencircle scaled 1.5 withcolor blue;
-    % tracé des résultats classe
+    % trac\'e des r\'esultats classe
     pair Cl[];
     cl=0;
     for p_=#6:
@@ -7347,8 +7348,8 @@
 }
 
 \newcommand\Radar[2][]{%
-  % 1 les paramètres
-  % 2 la répartition des notes
+  % 1 les param\`etres
+  % 2 la r\'epartition des notes
   \useKVdefault[ClesRadar]%
   \setKV[ClesRadar]{#1}%
   \ignoreemptyitems%
@@ -7370,7 +7371,7 @@
 %%%
 % Barres de niveaux
 %%%
-\setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=Défaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
+\setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=D\'efaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
 
 \newlength{\barrewidth}
 
@@ -7479,9 +7480,9 @@
 \setcounter{Nbequa}{0}
 
 %CT
-\newdimen\fdashwidth    \fdashwidth  = 0.8pt % épaisseur traits
-\newdimen\fdashlength   \fdashlength = 0.5mm % longueur des pointillés et séparation entre pointillés
-\newdimen\fdashsep      \fdashsep    = 3pt % séparateur entre contenu et traits
+\newdimen\fdashwidth    \fdashwidth  = 0.8pt % \'epaisseur traits
+\newdimen\fdashlength   \fdashlength = 0.5mm % longueur des pointill\'es et s\'eparation entre pointill\'es
+\newdimen\fdashsep      \fdashsep    = 3pt % s\'eparateur entre contenu et traits
 
 \def\fdash#1{%
   \leavevmode\begingroup%
@@ -7551,12 +7552,12 @@
 
 \definecolor{Cfleches}{RGB}{100,100,100}%
 
-\input{PfC-EquationSoustraction2}%
-\input{PfC-EquationTerme1}%
-\input{PfC-EquationComposition2}%
-\input{PfC-EquationPose1}%
-\input{PfC-EquationSymbole1}%
-\input{PfC-EquationLaurent1}
+\input{PfCEquationSoustraction2}%
+\input{PfCEquationTerme1}%
+\input{PfCEquationComposition2}%
+\input{PfCEquationPose1}%
+\input{PfCEquationSymbole1}%
+\input{PfCEquationLaurent1}
 
 \newcommand{\ResolEquation}[5][]{%
   \useKVdefault[ClesEquation]%
@@ -7601,11 +7602,11 @@
 \newcommand\ResolEquationCarre[2][]{%
   \setKV[ClesEquation]{#1}%
   \xintifboolexpr{#2<0}{%
-    Comme $\num{#2}$ est négatif, alors l'équation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ n'a aucune solution.%
+    Comme $\num{#2}$ est n\'egatif, alors l'\'equation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ n'a aucune solution.%
   }{\xintifboolexpr{#2=0}{%
-      L'équation $\useKV[ClesEquation]{Lettre}^2=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.%
+      L'\'equation $\useKV[ClesEquation]{Lettre}^2=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.%
     }{%
-      Comme \num{#2} est positif, alors l'équation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ a deux solutions :%
+      Comme \num{#2} est positif, alors l'\'equation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ a deux solutions :%
       \begin{align*}
         \useKV[ClesEquation]{Lettre}&=\sqrt{\num{#2}}&&\text{et}&\useKV[ClesEquation]{Lettre}&=-\sqrt{\num{#2}}%\\
         \ifboolKV[ClesEquation]{Exact}{\\%
@@ -7674,7 +7675,7 @@
       }
     \end{align*}
   }%
-  \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}})}\xintifboolexpr{#5=0}{\times\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}})}=0$ a deux solutions : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$ et \opdiv*{\Coeffd}{\Coeffc}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffd}{\Coeffc}}{\frac{\num{\Coeffd}}{\num{\Coeffc}}}\fi$.
+  \ifboolKV[ClesEquation]{Solution}{L'\'equation $\xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}})}\xintifboolexpr{#5=0}{\times\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}})}=0$ a deux solutions : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$ et \opdiv*{\Coeffd}{\Coeffc}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffd}{\Coeffc}}{\frac{\num{\Coeffd}}{\num{\Coeffc}}}\fi$.
   }{}%
 }
 
@@ -7689,15 +7690,14 @@
   \end{align*}
   \xdef\Testa{\fpeval{#2*\useKV[ClesEquation]{Nombre}+#3}}\xdef\Testb{\fpeval{#4*\useKV[ClesEquation]{Nombre}+#5}}
   \ifboolKV[ClesEquation]{Egalite}{%
-    Comme \xintifboolexpr{\Testa=\Testb}{$\num{\Testa}=\num{\Testb}$}{$\num{\Testa}\not=\num{\Testb}$}, alors l'égalité $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$ \xintifboolexpr{\Testa=\Testb}{ est vérifiée }{ n'est pas vérifiée } pour $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$.%
-  }{\xintifboolexpr{\Testa=\Testb}{Comme $\num{\Testa}=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ est bien }{Comme $\num{\Testa}\not=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ n'est pas }une solution de l'équation $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$.}
+    Comme \xintifboolexpr{\Testa=\Testb}{$\num{\Testa}=\num{\Testb}$}{$\num{\Testa}\not=\num{\Testb}$}, alors l'\'egalit\'e $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$ \xintifboolexpr{\Testa=\Testb}{ est v\'erifi\'ee }{ n'est pas v\'erifi\'ee } pour $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$.%
+  }{\xintifboolexpr{\Testa=\Testb}{Comme $\num{\Testa}=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ est bien }{Comme $\num{\Testa}\not=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ n'est pas }une solution de l'\'equation $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$.}
 }
 
 %%%
-% Proportionnalité
+% Proportionnalit\'e
 %%%
-\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15}%Tableau=false :
-                                %inutile ?
+\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15}%
 
 \def\Updatetoksmath#1/#2\nil{\addtotok\tabtoksa{&#1}\addtotok\tabtoksb{&#2}}%
 
@@ -7789,7 +7789,7 @@
   \setKV[ClesPropor]{#1}%
   \xdef\colorfill{\useKV[ClesPropor]{ColorFill}}%
   \xdef\EcartLargeur{\useKV[ClesPropor]{Largeur}}
-%  %on lit la liste écrite sous la forme valeur/effectif
+%  %on lit la liste \'ecrite sous la forme valeur/effectif
   \setsepchar[*]{,*/}\ignoreemptyitems%
   \readlist*\ListeValeur{#2}%
   \buildtabpropor%
@@ -7857,10 +7857,10 @@
   \setKV[ClesPourcentage]{#1}%
   \ifboolKV[ClesPourcentage]{Reduire}{%
     \ifboolKV[ClesPourcentage]{Formule}{%
-        Réduire une quantité de \num{#2}~\%, cela revient à multiplier cette quantité par $1-\dfrac{\num{#2}}{100}$. Par conséquent, si on réduit \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
+        R\'eduire une quantit\'e de \num{#2}~\%, cela revient \`a multiplier cette quantit\'e par $1-\dfrac{\num{#2}}{100}$. Par cons\'equent, si on r\'eduit \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
         \[\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\left(1-\frac{\num{#2}}{100}\right)=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times(1-\num{\fpeval{#2/100}})=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\num{\fpeval{(1-#2/100)}}=\num{\fpeval{#3*(1-#2/100)}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\]
       }{%
-        Calculons ce que représente la \useKV[ClesPourcentage]{MotReduction} de \num{#2}~\%.
+        Calculons ce que repr\'esente la \useKV[ClesPourcentage]{MotReduction} de \num{#2}~\%.
         \ifboolKV[ClesPourcentage]{AideTableau}{%
           \xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
           \xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
@@ -7877,10 +7877,10 @@
   }{%
     \ifboolKV[ClesPourcentage]{Augmenter}{%
       \ifboolKV[ClesPourcentage]{Formule}{%
-        Augmenter de \num{#2}~\% une quantité, cela revient à multiplier cette quantité par $1+\dfrac{\num{#2}}{100}$. Par conséquent, si on augmente \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
+        Augmenter de \num{#2}~\% une quantit\'e, cela revient \`a multiplier cette quantit\'e par $1+\dfrac{\num{#2}}{100}$. Par cons\'equent, si on augmente \num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{} de \num{#2}~\%, cela donne :
         \[\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\left(1+\frac{\num{#2}}{100}\right)=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times(1+\num{\fpeval{#2/100}})=\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\times\num{\fpeval{(1+#2/100)}}=\num{\fpeval{#3*(1+#2/100)}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}\]
       }{%
-        Calculons ce que représente l'augmentation de \num{#2}~\%. %
+        Calculons ce que repr\'esente l'augmentation de \num{#2}~\%. %
         \ifboolKV[ClesPourcentage]{AideTableau}{%
           \xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
           \xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
@@ -7915,19 +7915,19 @@
 %%%
 % Lien : ratio
 %%%
-\setKVdefault[ClesRatio]{Figure=false,Longueur=5cm,TexteTotal=quantité,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
+\setKVdefault[ClesRatio]{Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
 
 \newcommand\MPTest[9][]{%
-  % #2 : Longueur de la barre unité
+  % #2 : Longueur de la barre unit\'e
   % #3 : premier nombre
-  % #4 : deuxième nombre
-  % #5 : troisième nombre
+  % #4 : deuxi\`eme nombre
+  % #5 : troisi\`eme nombre
   % #6 : Valeurs du ratio
-  % #7 à #9: Couleurs de remplissage
+  % #7 \`a #9: Couleurs de remplissage
   \ifluatex
    \mplibforcehmode
   \begin{mplibcode}
-    vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantité à partager / textepart :) / t le ratio
+    vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
     pair A,B,C,D;
     A=u*(1,1);
     B-A=(long,0);
@@ -7934,7 +7934,7 @@
     C-B=u*(0,0.5);
     D-C=A-B;
     n:=0;%n pour savoir si le ratio est a:b ou a:b:c
-    numeric N[];%Pour sauvegarder les éléments du ratio
+    numeric N[];%Pour sauvegarder les \'el\'ements du ratio
     for p_=t:
     n:=n+1;
     N[n]=p_;
@@ -8001,11 +8001,11 @@
   \end{mplibcode}
   \else
   \mpxcommands{%
-    \setKVdefault[ClesRatio]{TexteTotal=quantité,TextePart=part}
+    \setKVdefault[ClesRatio]{TexteTotal=quantit\'e,TextePart=part}
     \setKV[ClesRatio]{#1}
   }
   \begin{mpost}
-    vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantité à partager / textepart :) / t le ratio
+    vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
     pair A,B,C,D;
     A=u*(1,1);
     B-A=(long,0);
@@ -8012,7 +8012,7 @@
     C-B=u*(0,0.5);
     D-C=A-B;
     n:=0;%n pour savoir si le ratio est a:b ou a:b:c
-    numeric N[];%Pour sauvegarder les éléments du ratio
+    numeric N[];%Pour sauvegarder les \'el\'ements du ratio
     for p_=t:
     n:=n+1;
     N[n]=p_;
@@ -8184,7 +8184,7 @@
 }
 
 %%%
-% Pptés des droites (6eme)
+% Ppt\'es des droites (6eme)
 %%%
 \setKVdefault[ClesDroites]{Brouillon=false,CitePropriete=false,Num=1,Figure=false,Remediation=false}
 
@@ -8192,33 +8192,33 @@
   \ifboolKV[ClesDroites]{Remediation}{%
     \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{%
       \ifboolKV[ClesDroites]{CitePropriete}{%
-        Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.%
+        Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.%
         
-        Or, si deux droites sont parallèles, alors toute droite parallèle à l'une est parallèle à l'autre.%
+        Or, si deux droites sont parall\`eles, alors toute droite parall\`ele \`a l'une est parall\`ele \`a l'autre.%
         
-        Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.%
+        Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.%
       }{%
-        Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux parallèles à la même droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.%
+        Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux parall\`eles \`a la m\^eme droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.%
       }
     }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{%
         \ifboolKV[ClesDroites]{CitePropriete}{%
           Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.%
           
-          Or, si deux droites sont perpendiculaires à une même droite, alors elles sont parallèles.%
+          Or, si deux droites sont perpendiculaires \`a une m\^eme droite, alors elles sont parall\`eles.%
           
           Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.
         }{%
-          Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux perpendiculaires à la même droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles.
+          Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux perpendiculaires \`a la m\^eme droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.
         }
       }{%
         \ifboolKV[ClesDroites]{CitePropriete}{%
-          Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.%
+          Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.%
           
-          Or, si deux droites sont parallèles, alors toute droite droite perpendiculaire à l'une est perpendiculaire à l'autre.%
+          Or, si deux droites sont parall\`eles, alors toute droite droite perpendiculaire \`a l'une est perpendiculaire \`a l'autre.%
           
           Donc les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.
         }{%
-          Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parallèles, alors la droite $(\hbox to2em{\dotfill})$ qui est perpendiculaire à $(\hbox to2em{\dotfill})$ est également perpendiculaire à la droite $(\hbox to2em{\dotfill})$.
+          Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles, alors la droite $(\hbox to2em{\dotfill})$ qui est perpendiculaire \`a $(\hbox to2em{\dotfill})$ est \'egalement perpendiculaire \`a la droite $(\hbox to2em{\dotfill})$.
         }
       }
     }%
@@ -8225,33 +8225,33 @@
   }{%
     \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{%
       \ifboolKV[ClesDroites]{CitePropriete}{%
-        Les droites $(#2)$ et $(#4)$ sont parallèles. Les droites $(#3)$ et $(#4)$ sont parallèles.%
+        Les droites $(#2)$ et $(#4)$ sont parall\`eles. Les droites $(#3)$ et $(#4)$ sont parall\`eles.%
         
-        Or, si deux droites sont parallèles, alors toute droite parallèle à l'une est parallèle à l'autre.%
+        Or, si deux droites sont parall\`eles, alors toute droite parall\`ele \`a l'une est parall\`ele \`a l'autre.%
         
-        Donc les droites $(#2)$ et $(#3)$ sont parallèles.
+        Donc les droites $(#2)$ et $(#3)$ sont parall\`eles.
       }{%
-        Comme les droites $(#2)$ et $(#3)$ sont toutes les deux parallèles à la même droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parallèles.
+        Comme les droites $(#2)$ et $(#3)$ sont toutes les deux parall\`eles \`a la m\^eme droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parall\`eles.
       }
     }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{%
         \ifboolKV[ClesDroites]{CitePropriete}{%
           Les droites $(#2)$ et $(#4)$ sont perpendiculaires. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.%
           
-          Or, si deux droites sont perpendiculaires à une même droite, alors elles sont parallèles.%
+          Or, si deux droites sont perpendiculaires \`a une m\^eme droite, alors elles sont parall\`eles.%
           
           Donc les droites $(#2)$ et $(#3)$ sont perpendiculaires.
         }{%
-          Comme les droites $(#2)$ et $(#3)$ sont toutes les deux perpendiculaires à la même droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parallèles.
+          Comme les droites $(#2)$ et $(#3)$ sont toutes les deux perpendiculaires \`a la m\^eme droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parall\`eles.
         }
       }{%
         \ifboolKV[ClesDroites]{CitePropriete}{%
-          Les droites $(#2)$ et $(#4)$ sont parallèles. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.%
+          Les droites $(#2)$ et $(#4)$ sont parall\`eles. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.%
           
-          Or, si deux droites sont parallèles, alors toute droite droite perpendiculaire à l'une est perpendiculaire à l'autre.%
+          Or, si deux droites sont parall\`eles, alors toute droite droite perpendiculaire \`a l'une est perpendiculaire \`a l'autre.%
           
           Donc les droites $(#2)$ et $(#3)$ sont perpendiculaires.
         }{%
-          Comme les droites $(#2)$ et $(#4)$ sont parallèles, alors la droite $(#3)$ qui est perpendiculaire à $(#4)$ est également perpendiculaire à la droite $(#2)$.
+          Comme les droites $(#2)$ et $(#4)$ sont parall\`eles, alors la droite $(#3)$ qui est perpendiculaire \`a $(#4)$ est \'egalement perpendiculaire \`a la droite $(#2)$.
         }%
       }%
     }%
@@ -8383,7 +8383,7 @@
     d4=G--H;
     picture reste;
     reste=image(
-    %tracés des droites
+    %trac\'es des droites
     draw d1;
     if #1=2:
     draw d2;
@@ -8395,7 +8395,7 @@
     elseif #2=4:
     draw d4;
     fi;
-    % tracés des codes
+    % trac\'es des codes
     if (#1=2) and (#2=3):
     draw Codepara1; draw Codepara2;
     fi;
@@ -8467,7 +8467,7 @@
     d4=G--H;
     picture reste;
     reste=image(
-    %tracés des droites
+    %trac\'es des droites
     draw d1;
     if #1=2:
     draw d2;
@@ -8479,7 +8479,7 @@
     elseif #2=4:
     draw d4;
     fi;
-    % tracés des codes
+    % trac\'es des codes
     if (#1=2) and (#2=3):
     draw Codepara1; draw Codepara2;
     fi;
@@ -8534,10 +8534,10 @@
 
 \newcommand\FonctionAffine[5][]{%
   % #1 nombre ou abscisse premier point
-  % #2 a ou ordonnée premier point
-  % #3 b ou abscisse deuxième point
-  % #4 {} ou ordonnée deuxième point
-  \useKVdefault[ClesAffine]%A supprimer car appel récursif avec Redaction
+  % #2 a ou ordonn\'ee premier point
+  % #3 b ou abscisse deuxi\`eme point
+  % #4 {} ou ordonn\'ee deuxi\`eme point
+  \useKVdefault[ClesAffine]%A supprimer car appel r\'ecursif avec Redaction
   \setKV[ClesAffine]{#1}%
   \ifboolKV[ClesAffine]{Image}{%
     \ifboolKV[ClesAffine]{Ligne}{%
@@ -8560,7 +8560,7 @@
     }%
   }{\ifboolKV[ClesAffine]{Antecedent}{%
       \ifboolKV[ClesAffine]{ProgCalcul}{%
-        La fonction affine $\useKV[ClesAffine]{Nom}$ est définie par :
+        La fonction affine $\useKV[ClesAffine]{Nom}$ est d\'efinie par :
         \begin{align*}
           \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}}
         \end{align*}
@@ -8569,14 +8569,14 @@
           \useKV[ClesAffine]{Nom}&:\frac{\num{\fpeval{#2-#4}}}{\num{#3}}\stackrel{\div\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longleftarrow}\num{\fpeval{#2-#4}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{-\num{#4}}{\longleftarrow}}{\stackrel{+\num{\fpeval{0-#4}}}{\longleftarrow}}\num{#2}}
         \end{align*}    
       }{%
-        On cherche l'antécédent de $\num{#2}$ par la fonction
-        $\useKV[ClesAffine]{Nom}$, c'est-à-dire le nombre
+        On cherche l'ant\'ec\'edent de $\num{#2}$ par la fonction
+        $\useKV[ClesAffine]{Nom}$, c'est-\`a-dire le nombre
         $\useKV[ClesAffine]{Variable}$ tel que
         $\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\num{#2}$. Or,
-        la fonction $\useKV[ClesAffine]{Nom}$ est définie par : \[%
+        la fonction $\useKV[ClesAffine]{Nom}$ est d\'efinie par : \[%
           \useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#3=0}{}{\num{#3}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#3=0}{\num{#4}}{\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}}
         \]
-        Par conséquent, on a :
+        Par cons\'equent, on a :
         \begin{align*}
             \num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}&=\num{#2}\\
           \xintifboolexpr{#4=0}{\useKV[ClesAffine]{Variable}\uppercase{&}=\frac{\num{#2}}{\num{#3}}%\\
@@ -8587,8 +8587,8 @@
       }%
     }{%
       \ifboolKV[ClesAffine]{Retrouve}{%
-        On sait que $\useKV[ClesAffine]{Nom}$ est une fonction affine. Donc elle s'écrit sous la forme : \[\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=a\useKV[ClesAffine]{Variable}+b\]
-        Or, $\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}$ et $\useKV[ClesAffine]{Nom}(\num{#4})=\num{#5}$. Par conséquent, d'après la propriété des accroissements :
+        On sait que $\useKV[ClesAffine]{Nom}$ est une fonction affine. Donc elle s'\'ecrit sous la forme : \[\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=a\useKV[ClesAffine]{Variable}+b\]
+        Or, $\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}$ et $\useKV[ClesAffine]{Nom}(\num{#4})=\num{#5}$. Par cons\'equent, d'apr\`es la propri\'et\'e des accroissements :
         \begin{align*}
           a&=\frac{\useKV[ClesAffine]{Nom}(\num{#2})-\useKV[ClesAffine]{Nom}(\num{#4})}{\num{#2}-\xintifboolexpr{#4<0}{(\num{#4})}{\num{#4}}}\\
           a&=\frac{\num{#3}-\xintifboolexpr{#5<0}{(\num{#5})}{\num{#5}}}{\num{\fpeval{#2-#4}}}\\
@@ -8595,7 +8595,7 @@
           a&=\frac{\num{\fpeval{#3-#5}}}{\num{\fpeval{#2-#4}}}%\\
           \SSimpliTest{\fpeval{#3-#5}}{\fpeval{#2-#4}}\ifthenelse{\boolean{Simplification}}{\\a&=\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}}{}%
         \end{align*}
-        La fonction $\useKV[ClesAffine]{Nom}$ s'écrit alors sous la forme $\displaystyle\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}+b$.
+        La fonction $\useKV[ClesAffine]{Nom}$ s'\'ecrit alors sous la forme $\displaystyle\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}+b$.
         \\De plus, comme $\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}$, alors :
         \begin{align*}
           \SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\times\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}+b&=\num{#3}\\
@@ -8603,7 +8603,7 @@
           b&=\num{\fpeval{#3-(#3-#5)*#2/(#2-#4)}}
         \end{align*}
         \xdef\OrdOrigine{\fpeval{#3-(#3-#5)*#2/(#2-#4)}}
-        La fonction affine $\useKV[ClesAffine]{Nom}$ cherchée est :
+        La fonction affine $\useKV[ClesAffine]{Nom}$ cherch\'ee est :
         \[\useKV[ClesAffine]{Nom}:\useKV[ClesAffine]{Variable}\mapsto\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}\xintifboolexpr{\OrdOrigine=0}{}{\xintifboolexpr{\OrdOrigine>0}{+\num{\OrdOrigine}}{-\num{\fpeval{0-\OrdOrigine}}}}\]
       }{%
         %
@@ -8618,10 +8618,10 @@
   }{}%
   \ifboolKV[ClesAffine]{Redaction}{%
     \xintifboolexpr{#2=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$
-      est une fonction constante, alors sa représentation graphique est une droite parallèle à l'axe des abscisses passant par le point de coordonnées $(0;\num{#3})$.}%
-    {\xintifboolexpr{#3=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction linéaire, alors sa représentation graphique est une droite passant par l'origine du repère.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonnées $(\num{#4};\num{\fpeval{#2*#4+#3}})$.
+      est une fonction constante, alors sa repr\'esentation graphique est une droite parall\`ele \`a l'axe des abscisses passant par le point de coordonn\'ees $(0;\num{#3})$.}%
+    {\xintifboolexpr{#3=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction lin\'eaire, alors sa repr\'esentation graphique est une droite passant par l'origine du rep\`ere.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.
       }{%
-        Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa représentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonnées $(\num{#4};\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#4}. On place le point de coordonnées $(\num{#5};\num{\fpeval{#2*#5+#3}})$.%        
+        Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa repr\'esentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#4}. On place le point de coordonn\'ees $(\num{#5};\num{\fpeval{#2*#5+#3}})$.%        
       }%
     }%
   }%
@@ -8634,7 +8634,7 @@
   % #1 Unitex #2 Unitey
     % #2 a pour f1 - #4 b pour f1
     % #5 abscisse du premier point
-    % #6 abscisse du deuxième point
+    % #6 abscisse du deuxi\`eme point
   \ifluatex
    \mplibforcehmode
   \begin{mplibcode}
@@ -8762,7 +8762,7 @@
   \end{mplibcode}
   \else
   \begin{mpost}
-    % On définit les constantes
+    % On d\'efinit les constantes
     XMin=-2;
     XMax=2;
     if #5<XMin:
@@ -8903,9 +8903,9 @@
   % #1 la liste des points
   % #2: pas en x
   % #3: pas en y
-  % #4: unité en x
-  % #5: unité en y
-  % #6 : prolongement avant et après les premier et dernier points ?
+  % #4: unit\'e en x
+  % #5: unit\'e en y
+  % #6 : prolongement avant et apr\`es les premier et dernier points ?
   \ifluatex
   \mplibforcehmode
   \begin{mplibcode}
@@ -9281,7 +9281,7 @@
 %%%
 % Formules
 %%%
-\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carré,Solide=pavé,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white}
+\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white}
 
 \def\MPFigureCarre{%
   \ifluatex
@@ -9304,7 +9304,7 @@
     draw appelation(A,B,-3mm,btex $c$ etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     pair A,B,C,D;
     A=u*(1,1);
     B-A=u*(2,0);
@@ -9338,7 +9338,7 @@
     draw polygone(A,B,C,D,E,F);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     pair A,B,C,D,E,F;
     A=u*(1,1);
     B-A=u*(2,0);
@@ -9354,7 +9354,23 @@
 \def\MPFigureParallelogramme{%
   \ifluatex
    \mplibforcehmode
-  \begin{mplibcode}
+   \begin{mplibcode}
+       vardef marque_para(expr dd,ee,pa)=
+  save im;
+  picture im;
+  pair kk,ll,mn,mo;
+  kk=point(pa*length dd) of dd;
+  ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
+  mn=iso(kk,ll);
+  mo=(mn--kk) intersectionpoint cercles(mn,3mm);
+  im=image(
+    drawarrow mo--kk;
+    drawarrow symetrie(mo,mn)--ll;
+    label(btex $//$ etex,mn);
+    );
+  im
+  enddef;
+     
     drawoptions( dashed dashpattern(on1cm));
     Figure(-5u,-5u,5u,5u);
     pair A,B,C,D;
@@ -9373,7 +9389,23 @@
     drawoptions();
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
+    vardef marque_para(expr dd,ee,pa)=
+  save im;
+  picture im;
+  pair kk,ll,mn,mo;
+  kk=point(pa*length dd) of dd;
+  ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
+  mn=iso(kk,ll);
+  mo=(mn--kk) intersectionpoint cercles(mn,3mm);
+  im=image(
+    drawarrow mo--kk;
+    drawarrow symetrie(mo,mn)--ll;
+    label(btex $//$ etex,mn);
+    );
+  im
+  enddef;
+  
     Figure(-5u,-5u,5u,5u);
     pair A,B,C,D;
     A=u*(1,1);
@@ -9421,7 +9453,7 @@
     draw codeperp(B,J,A,5);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,10u,5u);
     pair A,B,C,D,I,J;
     A=u*(1,1);
@@ -9472,7 +9504,7 @@
     marque_p:="non";
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     Figure(-10u,-10u,10u,10u);
     Initialisation(5,0,10,500);
@@ -9509,12 +9541,12 @@
     draw segment(A,B);
     draw segment(E,F);
     draw segment(A,F);
-    draw appelation(A,B,-2mm,\btex $\ell$ etex);
-    draw appelation(F,E,2mm,\btex $p$ etex);
-    draw appelation(A,F,2mm,\btex $h$ etex);
+    draw appelation(A,B,-2mm,btex $\ell$ etex);
+    draw appelation(F,E,2mm,btex $p$ etex);
+    draw appelation(A,F,2mm,btex $h$ etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     typerepre:="persp";
     Figure(-10u,-10u,10u,10u);
@@ -9579,7 +9611,7 @@
     draw appelation(A,E,3mm,btex hauteur etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     typerepre:="persp";
     Figure(-10u,-10u,10u,10u);
@@ -9659,7 +9691,7 @@
     marque_p:="non";
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     typerepre:="persp";
     Figure(-10u,-10u,10u,10u);
@@ -9719,7 +9751,7 @@
     marque_p:="non";
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     typerepre:="persp";
     Figure(-10u,-10u,10u,10u);
@@ -9772,7 +9804,7 @@
     draw codeperp(z7,z6,z5,8);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-10u,-10u,10u,10u);
     u:=0.5cm;
     z0=(-0.5,0)*u;
@@ -9813,7 +9845,7 @@
     draw appelation(E,H,2mm,btex $a$ etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     typerepre:="persp";
     Figure(-10u,-10u,10u,10u);
@@ -9844,7 +9876,7 @@
     draw appelation(A,B,-3mm,btex $c$ etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,5u,5u);
     pair A,B,C,D;
     A=u*(1,1);
@@ -9879,7 +9911,7 @@
     marque_s:=marque_s*3;
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,5u,5u);
     pair A,B,C,D;
     A=u*(1,1);
@@ -9919,7 +9951,7 @@
     label.lft(btex $\ell$ etex,iso(A,D));
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     pair A,B,C,D;
     A=u*(1,1);
     B-A=u*(3,0);
@@ -9953,7 +9985,7 @@
     draw polygone(A,B,C);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,5u,5u);
     pair A,B,C;
     A=u*(1,1);
@@ -9980,10 +10012,10 @@
     draw segment(B,C);
     marque_p:="croix";
     pointe(A);
-    draw appelation(B,C,3mm,\btex diamètre etex);
+    draw appelation(B,C,3mm,btex diam\`etre etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,5u,5u);
     pair A,B,C;
     A=u*(2.5,2.5);
@@ -9995,7 +10027,7 @@
     draw segment(B,C);
     marque_p:="croix";
     pointe(A);
-    draw appelation(B,C,3mm,\btex diamètre etex);
+    draw appelation(B,C,3mm,\btex diam\`etre etex);
   \end{mpost}
   \fi
 }
@@ -10016,10 +10048,10 @@
     draw segment(A,C);
     marque_p:="croix";
     pointe(A);
-    draw appelation(A,C,3mm,\btex rayon $r$ etex);
+    draw appelation(A,C,3mm,btex rayon $r$ etex);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,5u,5u);
     pair A,B,C;
     A=u*(2.5,2.5);
@@ -10077,7 +10109,7 @@
     drawoptions();
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     Figure(-5u,-5u,5u,5u);
     pair A,B,C,H,I,J;
     A=u*(0.5,1);
@@ -10126,44 +10158,44 @@
     \begin{tikzpicture}[remember picture, overlay]
       \node[draw,fill=\ColorFill,dashed,rounded corners,rotate={\useKV[ClesFormule]{Angle}}] (test) at \useKV[ClesFormule]{Ancre} {\begin{minipage}{\RoundedBoxWidth}%
           \IfStrEqCase{\useKV[ClesFormule]{Surface}}{%
-            {carré}{\begin{center}
+            {carre}{\begin{center}
                 \MPFigureCarre\par
-                Périmètre d'un carré :\par$4\times c$
+                P\'erim\`etre d'un carr\'e :\par$4\times c$
               \end{center}}%
             {polygone}{%
               \begin{center}
                 \MPFigurePolygone\par
-                Périmètre d'un polygone : \par$\text{Somme des côtés}$
+                P\'erim\`etre d'un polygone : \par$\text{Somme des c\^ot\'es}$
               \end{center}
             }%
             {rectangle}{%
               \begin{center}
                 \MPFigureRectangle\par
-                Périmètre d'un rectangle : \par$2\times(L+\ell)$
+                P\'erim\`etre d'un rectangle : \par$2\times(L+\ell)$
               \end{center}
               }%
               {losange}{%
                 \begin{center}
                 \MPFigureLosange\par
-                Périmètre d'un losange : \par$4\times c$
+                P\'erim\`etre d'un losange : \par$4\times c$
               \end{center}
               }%
             {triangle}{%
               \begin{center}
                 \MPFigureTriangle\par
-                Périmètre d'un triangle : \par Somme des côtés
+                P\'erim\`etre d'un triangle : \par Somme des c\^ot\'es
               \end{center}
             }%
             {cercle}{%
               \begin{center}
                 \MPFigureCercle\par
-                Périmètre d'un cercle : \par$\pi\times\text{diamètre}$
+                P\'erim\`etre d'un cercle : \par$\pi\times\text{diam\`etre}$
               \end{center}
             }%
-            {parallélogramme}{%
+            {parallelogramme}{%
               \begin{center}
                 \MPFigureParallelogramme\par
-                Périmètre d'un parallélogramme : \par Somme des côtés
+                P\'erim\`etre d'un parall\'elogramme : \par Somme des c\^ot\'es
               \end{center}
             }}
         \end{minipage}};
@@ -10172,9 +10204,9 @@
       \begin{tikzpicture}[remember picture, overlay]
         \node[draw,fill=\ColorFill,dashed,rounded corners=2,rotate={\useKV[ClesFormule]{Angle}}] (test) at \useKV[ClesFormule]{Ancre} {\begin{minipage}{\RoundedBoxWidth}%
             \IfStrEqCase{\useKV[ClesFormule]{Surface}}{%
-              {carré}{\begin{center}
+              {carr\'e}{\begin{center}
                   \MPFigureCarre\par
-                  Aire d'un carré :\par$c\times c$
+                  Aire d'un carr\'e :\par$c\times c$
               \end{center}}%
             {rectangle}{%
               \begin{center}
@@ -10191,7 +10223,7 @@
             {triangle}{%
               \begin{center}
                 \MPFigureTriangleAire\par\vspace{1em}\par
-                Aire d'un triangle : $\displaystyle\frac{\text{côté}\times\text{hauteur relative à ce côté}}{2}$
+                Aire d'un triangle : $\displaystyle\frac{\text{c\^ot\'e}\times\text{hauteur relative \`a ce c\^ot\'e}}{2}$
               \end{center}
             }%
             {disque}{%
@@ -10200,16 +10232,16 @@
                 Aire d'un disque :\par$\pi\times r\times r$
               \end{center}
             }%
-            {parallélogramme}{%
+            {parallelogramme}{%
               \begin{center}
                 \MPFigureParallelogrammeAire\par
-                Aire d'un parallélogramme : $\text{côté}\times\text{hauteur relative à ce côté}$
+                Aire d'un parall\'elogramme : $\text{c\^ot\'e}\times\text{hauteur relative \`a ce c\^ot\'e}$
                 \end{center}
             }
-            {sphère}{%
+            {sphere}{%
               \begin{center}
                 \MPFigureSphere\par
-                Aire d'une sphère : $4\times\pi\times r^2$
+                Aire d'une sph\`ere : $4\times\pi\times r^2$
               \end{center}
             }}
         \end{minipage}};
@@ -10228,10 +10260,10 @@
                 Volume d'une cube : $a^3\quad(a\times a\times a)$
               \end{center}
             }%
-              {pavé}{%
+              {pave}{%
                 \begin{center}
                   \MPFigurePave\par
-                  Volume d'un pavé droit : $\ell\times h\times p$
+                  Volume d'un pav\'e droit : $\ell\times h\times p$
               \end{center}
               }
               {prisme}{%
@@ -10243,7 +10275,7 @@
               {cylindre}{%
                 \begin{center}
                   \MPFigureCylindre\par
-                  Volume d'un cylindre de révolution : $\pi\times r^2\times h$
+                  Volume d'un cylindre de r\'evolution : $\pi\times r^2\times h$
                 \end{center}
               }
               {pyramide}{%
@@ -10252,10 +10284,10 @@
                   Volume d'une pyramide : $\dfrac{\text{Aire de la base}\times\text{hauteur}}{3}$
                 \end{center}
               }
-              {cône}{%
+              {cone}{%
                 \begin{center}
                   \MPFigureCone\par
-                  Volume d'un cône de révolution : $\displaystyle\dfrac{\pi\times r^2\times h}{3}$
+                  Volume d'un c\^one de r\'evolution : $\displaystyle\dfrac{\pi\times r^2\times h}{3}$
                 \end{center}
               }
               }
@@ -10275,7 +10307,7 @@
 
 \newtoks\toklistepointproba
 
-% Pour construire l'arbre de probabilité
+% Pour construire l'arbre de probabilit\'e
 \def\buildarbreproba{%
   \toklistepointproba{}%
   \foreachitem\compteur\in\ListeProba{\expandafter\Updatetoksproba\compteur\nil}%
@@ -10282,7 +10314,7 @@
   \MPArbreProba{\useKV[ClesProba]{Branche}}{\useKV[ClesProba]{Angle}}{\the\toklistepointproba}{\useKV[ClesProba]{Rayon}}%
 }
 
-% Pour construire l'échelle de probabilité
+% Pour construire l'\'echelle de probabilit\'e
 \def\buildechelleproba{%
   \toklistepointproba{}%
   \foreachitem\compteur\in\ListeProba{\expandafter\Updatetoksprobaechelle\compteur\nil}%
@@ -10290,10 +10322,10 @@
 }
 
 \def\MPEchelleProbaUn#1#2#3#4{%
-  % #1:longueur du segment représentant l'échelle
-  % #2:Liste des évènements/proba
-  % #3: pour l'affichage des labels (0 : rien, 1: fleches, 2 : fleches+evènements, 3: fleches+proba, 4 : tout)
-  % #4 : dimension de "la grille" associée
+  % #1:longueur du segment repr\'esentant l'\'echelle
+  % #2:Liste des \'ev\`enements/proba
+  % #3: pour l'affichage des labels (0 : rien, 1: fleches, 2 : fleches+ev\`enements, 3: fleches+proba, 4 : tout)
+  % #4 : dimension de "la grille" associ\'ee
   \ifluatex
   \begin{mplibcode}
     pair A,B,C[],D[];%les noeuds de l'arbre
@@ -10354,7 +10386,7 @@
     toto(#2);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     pair A,B,C[],D[];%les noeuds de l'arbre
     Figure(-10u,-10u,10u,10u);
     A=u*(1,1);
@@ -10403,7 +10435,7 @@
             dotlabel.top("",C[k]);
           fi;
           if (#3>2):
-            label.bot(LATEX("$\noexpand\frac{"&decimal(num)&"}{"&decimal(deno)&"}$"),C[k]-u*(0,0.5));%Le \noexpand est nécessaire pour éviter un problème à la compilation, dû à l'expansion du \frac par gmp.
+            label.bot(LATEX("$\noexpand\frac{"&decimal(num)&"}{"&decimal(deno)&"}$"),C[k]-u*(0,0.5));%Le \noexpand est n\'ecessaire pour \'eviter un probl\`eme \`a la compilation, dû \`a l'expansion du \frac par gmp.
           fi;
           k:=k+1;
         fi;
@@ -10417,8 +10449,8 @@
 
 \def\MPArbreProba#1#2#3#4{%
   % #1:longueur d'une branche
-  % #2:angle entre deux branches de même origine
-  % #3:Liste des évènements/proba
+  % #2:angle entre deux branches de m\^eme origine
+  % #3:Liste des \'ev\`enements/proba
   \ifluatex
   \begin{mplibcode}
     pair A[],B[];%les noeuds de l'arbre
@@ -10441,7 +10473,7 @@
     endfor;
     n:=1;%compter les informations
     k:=1;% compter les informations noeud pour les placer
-    l:=1;% compter les informations "numériques"
+    l:=1;% compter les informations "num\'eriques"
     vardef toto(text t)=
     for p_=t:
     if (n mod 2)=1:
@@ -10467,7 +10499,7 @@
     toto(#3);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     pair A[],B[];%les noeuds de l'arbre
     Figure(-10u,-10u,10u,10u);
     A0=u*(1,1);
@@ -10488,7 +10520,7 @@
     endfor;
     n:=1;%compter les informations
     k:=1;% compter les informations noeud pour les placer
-    l:=1;% compter les informations "numériques"
+    l:=1;% compter les informations "num\'eriques"
     vardef toto(text t)=
     for p_=t:
     if (n mod 2)=1:
@@ -10513,7 +10545,7 @@
 \newcommand\Proba[2][]{%
   \useKVdefault[ClesProba]%
   \setKV[ClesProba]{#1}%
-  % On liste les différents éléments sous la forme Evènement/proba
+  % On liste les diff\'erents \'el\'ements sous la forme Ev\`enement/proba
   \setsepchar[*]{,*/}\ignoreemptyitems%
   \readlist*\ListeProba{#2}
   \ifboolKV[ClesProba]{Echelle}{%
@@ -10528,7 +10560,7 @@
 % Reperage
 %%%
 \setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black}
-% ValeurOrigine permet de faire des morceaux de demi-droite graduée en passant par droite :)
+% ValeurOrigine permet de faire des morceaux de demi-droite gradu\'ee en passant par droite :)
 
 \def\Updatetoksdroite#1/#2\nil{\addtotok\toklistepointdroite{#1,"#2",}}
 \def\Updatetoksrepere#1/#2/#3\nil{\addtotok\toklistepointrepere{#1,#2,"#3",}}
@@ -10538,7 +10570,7 @@
 \newtoks\toklistepointdroite%
 \newtoks\toklistepointespace%
 
-% Pour construire le repère de l'espace
+% Pour construire le rep\`ere de l'espace
 \def\buildespace{%
   \toklistepointespace{}%
   \ifboolKV[ClesReperage]{Sphere}{%
@@ -10614,7 +10646,7 @@
     vardef tata(text t)=
     n:=1;%pour compter combien de points
     k:=0;%pour garder l'abscisse
-    l:=0;%pour garder l'ordonnée
+    l:=0;%pour garder l'ordonn\'ee
     m:=0;%pour garder l'altitude
     if #8>0:
     for p_=t:
@@ -10650,7 +10682,7 @@
     vardef toto(text t)=
     n:=1;%pour compter combien de points
     k:=0;%pour garder l'abscisse
-    l:=0;%pour garder l'ordonnée
+    l:=0;%pour garder l'ordonn\'ee
     m:=0;%pour garder l'altitude
     if #8>0:
     for p_=t:
@@ -10692,7 +10724,7 @@
     draw Pave(A,B,C,D,E,F,G,H)(#1,#3,#5);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
     typetrace:="3D";
     typerepre:="persp";
     Figure(-20u,-20u,20u,20u);
@@ -10737,7 +10769,7 @@
     vardef tata(text t)=
     n:=1;%pour compter combien de points
     k:=0;%pour garder l'abscisse
-    l:=0;%pour garder l'ordonnée
+    l:=0;%pour garder l'ordonn\'ee
     m:=0;%pour garder l'altitude
     if #8>0:
     for p_=t:
@@ -10773,7 +10805,7 @@
     vardef toto(text t)=
     n:=1;%pour compter combien de points
     k:=0;%pour garder l'abscisse
-    l:=0;%pour garder l'ordonnée
+    l:=0;%pour garder l'ordonn\'ee
     m:=0;%pour garder l'altitude
     if #8>0:
     for p_=t:
@@ -10817,7 +10849,7 @@
   \fi
 }%
 
-% Pour construire le repère du plan
+% Pour construire le rep\`ere du plan
 \def\buildreperenew{%
   \toklistepointrepere{}%
   \foreachitem\compteur\in\ListePointRepere{\expandafter\Updatetoksrepere\compteur\nil}%
@@ -10836,8 +10868,8 @@
   %#2 : unitey, pasy
   %#3 : liste de points
   %#4 : Affichage nom + lecture graphique
-  %#5 : Affichage des (abscisses/ordonnées)
-  %#6 : Graduation complète ?
+  %#5 : Affichage des (abscisses/ordonn\'ees)
+  %#6 : Graduation compl\`ete ?
   %#7 : (unitex,unitey)
   \ifluatex
   \begin{mplibcode}
@@ -10905,7 +10937,7 @@
     endfor;
     drawarrow (B+(-0.75*unitpx,0))--(C+(0.75*unitpx,0));
     drawarrow (D+(0,-0.75*unitpy))--(E+(0,0.75*unitpy));
-    % graduation complète ou pas ?
+    % graduation compl\`ete ou pas ?
     label.llft(btex \footnotesize 0 etex,A);
     if #6>0:
     for k=minx upto maxx:
@@ -10932,8 +10964,8 @@
     vardef tata(text t)=%on place les points
     if #4>0:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -10984,8 +11016,8 @@
     fi;
     if #5=2:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11016,8 +11048,8 @@
     endfor;
     elseif #5=1:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11108,7 +11140,7 @@
     endfor;
     drawarrow (B+(-0.75*unitpx,0))--(C+(0.75*unitpx,0));
     drawarrow (D+(0,-0.75*unitpy))--(E+(0,0.75*unitpy));
-    % graduation complète ou pas ?
+    % graduation compl\`ete ou pas ?
     label.llft(btex \noexpand\footnotesize 0 etex,A);
     if #6>0:
     for k=minx upto maxx:
@@ -11135,8 +11167,8 @@
     vardef tata(text t)=%on place les points
     if #4>0:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11187,8 +11219,8 @@
     fi;
     if #5=2:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11219,8 +11251,8 @@
     endfor;
     elseif #5=1:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11324,8 +11356,8 @@
         vardef tata(text t)=%on place les points
     if #6>0:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11398,7 +11430,7 @@
     Tracage(#5)(#9);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfC-Geometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;}]
   maxx:=-4000;
   minx=4000;
   unitex:=#1*cm;
@@ -11472,8 +11504,8 @@
         vardef tata(text t)=%on place les points
     if #6>0:
     n:=1;
-    k:=0;%pour retenir la coordonnée en x
-    l:=0;%pour retenir la coordonnée en y
+    k:=0;%pour retenir la coordonn\'ee en x
+    l:=0;%pour retenir la coordonn\'ee en y
     for p_=t:
         if (n mod 3)=1:
     if numeric p_:
@@ -11551,10 +11583,10 @@
 \def\MPDEMIGraduee#1#2#3#4#5#6#7#8{%
   % #1 : unite
   % #2 : pas
-  % #3 : liste des points à placer en pas. pour gérer le cas des repérages fractionnaires
+  % #3 : liste des points \`a placer en pas. pour g\'erer le cas des rep\'erages fractionnaires
   % #4 : on affiche le nom des points ou pas
-  % #5 : quelle est la valeur de la longueur unité ?
-  % #6 : la valeur de l'unité (ne sert à rien ici, mais en prévision
+  % #5 : quelle est la valeur de la longueur unit\'e ?
+  % #6 : la valeur de l'unit\'e (ne sert \`a rien ici, mais en pr\'evision
   % de Droite)
   % #7 : on affiche les abscisses ou pas : 0 non, 1 oui, 2 fraction
   % #8 : on affiche tous les multiples de la graduation "principale"
@@ -11564,8 +11596,8 @@
     maxx:=0;
     unitex:=#1*cm;
     pasx:=#2;
-    unitp:=unitex/pasx;%unité de déplacement
-    vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+    unitp:=unitex/pasx;%unit\'e de d\'eplacement
+    vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
     for p_=t:
     if numeric p_:
     if p_>maxx:
@@ -11657,8 +11689,8 @@
     maxx:=0;
     unitex:=#1*cm;
     pasx:=#2;
-    unitp:=unitex/pasx;%unité de déplacement
-    vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+    unitp:=unitex/pasx;%unit\'e de d\'eplacement
+    vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
     for p_=t:
     if numeric p_:
     if p_>maxx:
@@ -11748,7 +11780,7 @@
   \fi
 }
 
-% Pour construire les droite/demi-droite graduée
+% Pour construire les droite/demi-droite gradu\'ee
 \def\builddemidroitenew{%
   \toklistepointdroite{}%
   \foreachitem\compteur\in\ListePointDroite{\expandafter\Updatetoksdroite\compteur\nil}%
@@ -11766,10 +11798,10 @@
 \def\MPDROITEGraduee#1#2#3#4#5#6#7#8{%
   % #1 : unite
   % #2 : pas
-  % #3 : liste des points à placer en pas. pour gérer le cas des repérages fractionnaires
+  % #3 : liste des points \`a placer en pas. pour g\'erer le cas des rep\'erages fractionnaires
   % #4 : on affiche le nom des points ou pas
-  % #5 : quelle est la valeur de la longueur unité ?
-  % #6 : la valeur de l'unité
+  % #5 : quelle est la valeur de la longueur unit\'e ?
+  % #6 : la valeur de l'unit\'e
   % #7 : on affiche les abscisses ou pas : 0 non, 1 oui, 2 fraction
   % #8 : on affiche tous les multiples de la graduation "principale"
   \ifluatex
@@ -11779,8 +11811,8 @@
     minx:=4000;
     unitex:=#1*cm;
     pasx:=#2;
-    unitp:=unitex/pasx;%unité de déplacement
-    vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+    unitp:=unitex/pasx;%unit\'e de d\'eplacement
+    vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
     for p_=t:
     if numeric p_:
     if p_>maxx:
@@ -11894,8 +11926,8 @@
     minx:=4000;
     unitex:=#1*cm;
     pasx:=#2;
-    unitp:=unitex/pasx;%unité de déplacement
-    vardef toto(text t)=%On détermine le nombre "d'unités" à placer
+    unitp:=unitex/pasx;%unit\'e de d\'eplacement
+    vardef toto(text t)=%On d\'etermine le nombre "d'unit\'es" \`a placer
     for p_=t:
     if numeric p_:
     if p_>maxx:
@@ -12037,9 +12069,9 @@
 }
 
 %%%
-% Ecritures d'unités
+% Ecritures d'unit\'es
 %%%
-\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,kmh=true,kms=false,ms=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false}
+\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false}
 
 %D'apres https://tex.stackexchange.com/questions/38905/time-of-the-day-or-time-period-using-the-package-siunitx
 \ExplSyntaxOn
@@ -12116,6 +12148,10 @@
   \SI{#2}{\kWh}%
 }
 
+\newcommand\Prix[2][]{%
+  \SI[round-mode=places,round-precision=2]{#2}{\EuRo}%
+}
+
 \newcommand\Octet[2][]{%
   \useKVdefault[Unites]%
   \setKV[Unites]{#1}%
@@ -12284,13 +12320,17 @@
 \newcommand\Vitesse[2][]{%
   \useKVdefault[Unites]%
   \setKV[Unites]{#1}%
-  \ifboolKV[Unites]{ms}{%
-    \SI[per-mode=symbol]{#2}{\meter\per\second}%
+  \ifboolKV[Unites]{mh}{%
+    \SI[per-mode=symbol]{#2}{\meter\per\hour}%
   }{%
-    \ifboolKV[Unites]{kms}{%
-      \SI[per-mode=symbol]{#2}{\kilo\meter\per\second}%
+    \ifboolKV[Unites]{ms}{%
+      \SI[per-mode=symbol]{#2}{\meter\per\second}%
     }{%
-      \SI[per-mode=symbol]{#2}{\kilo\meter\per\hour}%
+      \ifboolKV[Unites]{kms}{%
+        \SI[per-mode=symbol]{#2}{\kilo\meter\per\second}%
+      }{%
+        \SI[per-mode=symbol]{#2}{\kilo\meter\per\hour}%
+      }%
     }%
   }%
 }%
@@ -12306,7 +12346,7 @@
 }%
 
 %%%
-% Tableaux d'unités
+% Tableaux d'unit\'es
 %%%
 \setKVdefault[ClesTableaux]{Virgule=true,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false}
 
@@ -12314,7 +12354,7 @@
   \useKVdefault[ClesTableaux]%
   \setKV[ClesTableaux]{#1}%
   % 
-  %%% Clé Prefixes
+  %%% Cl\'e Prefixes
   % 
   \ifboolKV[ClesTableaux]{Prefixes}{%
     \setlength{\tabcolsep}{0.01\tabcolsep}%
@@ -12330,21 +12370,21 @@
       }}%
       {>{\centering\arraybackslash}m{3.25em}|}}%
         %
-      	%%% Prise en compte de la clé Partie
+      	%%% Prise en compte de la cl\'e Partie
       	%
         \ifboolKV[ClesTableaux]{Partie}{%
         \multicolumn{%
         \ifboolKV[ClesTableaux]{Milliards}{12}{%
       \ifboolKV[ClesTableaux]{Millions}{9}{6}%
-      }}{c}{\bfseries Partie entière}
+      }}{c}{\bfseries Partie enti\`ere}
         &\multicolumn{1}{c}{\cellcolor{gray!15}\ifboolKV[ClesTableaux]{Virgule}{,}{}}%
         &\multicolumn{%	
       \ifboolKV[ClesTableaux]{Micro}{6}{%
       \ifboolKV[ClesTableaux]{Nano}{9}{3}%
       }}%
-      {c}{\bfseries Partie décimale}\\}{}%
+      {c}{\bfseries Partie d\'ecimale}\\}{}%
         %
-      	%%% Prise en compte de la clé Classes
+      	%%% Prise en compte de la cl\'e Classes
       	%
         \ifboolKV[ClesTableaux]{Classes}{%
         \hline
@@ -12364,7 +12404,7 @@
         {\cellcolor{\useKV[ClesTableaux]{Couleurm}}Classe
           des milliers}%
         &\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe
-          des unités}%
+          des unit\'es}%
         &\ifboolKV[ClesTableaux]{Virgule}{,}{}%
         &\multicolumn{%	
       \ifboolKV[ClesTableaux]{Micro}{6}{%
@@ -12372,7 +12412,7 @@
       }}%
       {c|}{}\\}{}%
       	%
-      	%%% Valeurs par défaut
+      	%%% Valeurs par d\'efaut
       	%
         \hline%
         \ifboolKV[ClesTableaux]{Milliards}{%
@@ -12380,12 +12420,12 @@
         &\fontsize{8.5}{8.5}\selectfont giga%
         &%
         &%
-        &\fontsize{8.5}{8.5}\selectfont méga%
+        &\fontsize{8.5}{8.5}\selectfont m\'ega%
         &%
         }{%
         \ifboolKV[ClesTableaux]{Millions}{%
         &%
-        &\fontsize{8.5}{8.5}\selectfont méga%
+        &\fontsize{8.5}{8.5}\selectfont m\'ega%
         &%
         }{%
         }}%
@@ -12392,8 +12432,8 @@
         &%
         &\fontsize{8.5}{8.5}\selectfont kilo%
         &\fontsize{8.5}{8.5}\selectfont hecto%
-        &\fontsize{8.5}{8.5}\selectfont déca%
-        &\fontsize{8.5}{8.5}\selectfont unités%
+        &\fontsize{8.5}{8.5}\selectfont d\'eca%
+        &\fontsize{8.5}{8.5}\selectfont unit\'es%
         &\ifboolKV[ClesTableaux]{Virgule}{,}{}%
         &\fontsize{8.5}{8.5}\selectfont deci%
         &\fontsize{8.5}{8.5}\selectfont centi%
@@ -12409,7 +12449,7 @@
         &\fontsize{8.5}{8.5}\selectfont nano\\}{\\}%
       	}%     
         %
-      	%%% Prise en compte de la clé Nombres
+      	%%% Prise en compte de la cl\'e Nombres
       	%
         \ifboolKV[ClesTableaux]{Nombres}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
@@ -12452,7 +12492,7 @@
         }{}%
         }{}\\}{}%
         %
-      	%%% Prise en compte de la clé Puissances
+      	%%% Prise en compte de la cl\'e Puissances
       	%
         \ifboolKV[ClesTableaux]{Puissances}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
@@ -12512,7 +12552,7 @@
     \setlength{\tabcolsep}{100\tabcolsep}%
   }{}%
   % 
-  %%% Clé Entiers
+  %%% Cl\'e Entiers
   % 
   \ifboolKV[ClesTableaux]{Entiers}{%
     \setlength{\tabcolsep}{0.01\tabcolsep}%
@@ -12531,29 +12571,29 @@
         \ifboolKV[ClesTableaux]{Millions}{\multicolumn{3}{|c}{\cellcolor{\useKV[ClesTableaux]{CouleurM}}Classe des millions}&}{}
         \multicolumn{3}{|c|}{\cellcolor{\useKV[ClesTableaux]{Couleurm}}Classe
           des milliers}%
-        &\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe des unités}\\}{}
+        &\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe des unit\'es}\\}{}
         \hline
         \ifboolKV[ClesTableaux]{Milliards}{%
         \fontsize{4.5}{4.5}\selectfont centaines de milliards%
         &\fontsize{4.5}{4.5}\selectfont dizaines de milliards%
-        &\fontsize{4.5}{4.5}\selectfont unités de milliards%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de milliards%
         &\fontsize{4.5}{4.5}\selectfont centaines de millions%
         &\fontsize{4.5}{4.5}\selectfont dizaines de millions%
-        &\fontsize{4.5}{4.5}\selectfont unités de millions%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
         &
         }{}
         \ifboolKV[ClesTableaux]{Millions}{%
         \fontsize{4.5}{4.5}\selectfont centaines de millions%
         &\fontsize{4.5}{4.5}\selectfont dizaines de millions%
-        &\fontsize{4.5}{4.5}\selectfont unités de millions%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
         &
         }{}
         \fontsize{4.5}{4.5}\selectfont centaines de milliers%
         &\fontsize{4.5}{4.5}\selectfont dizaines de milliers%
-        &\fontsize{4.5}{4.5}\selectfont unités de milliers%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de milliers%
         &\fontsize{4.5}{4.5}\selectfont centaines%
         &\fontsize{4.5}{4.5}\selectfont dizaines%
-        &\fontsize{4.5}{4.5}\selectfont unités\\%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es\\%
         \ifboolKV[ClesTableaux]{Nombres}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
         \fontsize{4.5}{4.5}\selectfont\num{100000000000}%
@@ -12579,7 +12619,7 @@
         \\
         }{} 
         %
-      	%%% Prise en compte de la clé Puissances
+      	%%% Prise en compte de la cl\'e Puissances
       	%
         \ifboolKV[ClesTableaux]{Puissances}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
@@ -12618,7 +12658,7 @@
     \setlength{\tabcolsep}{100\tabcolsep}%
   }{}%
   %
-  %%% Clé Decimaux
+  %%% Cl\'e Decimaux
   %
   \ifboolKV[ClesTableaux]{Decimaux}{%
     \setlength{\tabcolsep}{0.01\tabcolsep}%
@@ -12631,18 +12671,18 @@
       }}{>{\centering\arraybackslash}m{4.75em}|}>{\columncolor{gray!15}}{c}|*{3}%
       {>{\centering\arraybackslash}m{4.75em}|}}%
       	%
-      	%%% Prise en compte de la clé Partie
+      	%%% Prise en compte de la cl\'e Partie
       	%
         \ifboolKV[ClesTableaux]{Partie}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
-        \multicolumn{12}{c}{\bfseries Partie entière}}{%
+        \multicolumn{12}{c}{\bfseries Partie enti\`ere}}{%
         \ifboolKV[ClesTableaux]{Millions}{%
-        \multicolumn{9}{c}{\bfseries Partie entière}}{%
-        \multicolumn{6}{c}{\bfseries Partie entière}}}%
+        \multicolumn{9}{c}{\bfseries Partie enti\`ere}}{%
+        \multicolumn{6}{c}{\bfseries Partie enti\`ere}}}%
         &\multicolumn{1}{c}{\cellcolor{gray!15}\ifboolKV[ClesTableaux]{Virgule}{,}{}}%
-        &\multicolumn{3}{c}{\bfseries Partie décimale}\\}{}
+        &\multicolumn{3}{c}{\bfseries Partie d\'ecimale}\\}{}
         %
-      	%%% Prise en compte de la clé Classes
+      	%%% Prise en compte de la cl\'e Classes
       	%
         \ifboolKV[ClesTableaux]{Classes}{%
         \hline%
@@ -12657,37 +12697,37 @@
         {\cellcolor{\useKV[ClesTableaux]{Couleurm}}Classe
           des milliers}%
         &\multicolumn{3}{c|}{\cellcolor{\useKV[ClesTableaux]{Couleuru}}Classe
-          des unités}%
+          des unit\'es}%
         &\ifboolKV[ClesTableaux]{Virgule}{,}{}&\multicolumn{3}{c|}{}\\}{}
         %
-        %%% Valeurs ci-dessous par défaut
+        %%% Valeurs ci-dessous par d\'efaut
         %
         \hline
         \ifboolKV[ClesTableaux]{Milliards}{%
         \fontsize{4.5}{4.5}\selectfont centaines de milliards%
         &\fontsize{4.5}{4.5}\selectfont dizaines de milliards%
-        &\fontsize{4.5}{4.5}\selectfont unités de milliards%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de milliards%
         &\fontsize{4.5}{4.5}\selectfont centaines de millions%
         &\fontsize{4.5}{4.5}\selectfont dizaines de millions%
-        &\fontsize{4.5}{4.5}\selectfont unités de millions%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
         &
         }{}
         \ifboolKV[ClesTableaux]{Millions}{%
         \fontsize{4.5}{4.5}\selectfont centaines de millions%
         &\fontsize{4.5}{4.5}\selectfont dizaines de millions%
-        &\fontsize{4.5}{4.5}\selectfont unités de millions%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de millions%
         &
         }{}
         \fontsize{4.5}{4.5}\selectfont centaines de milliers%
         &\fontsize{4.5}{4.5}\selectfont dizaines de milliers%
-        &\fontsize{4.5}{4.5}\selectfont unités de milliers%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es de milliers%
         &\fontsize{4.5}{4.5}\selectfont centaines%
         &\fontsize{4.5}{4.5}\selectfont dizaines%
-        &\fontsize{4.5}{4.5}\selectfont unités%
+        &\fontsize{4.5}{4.5}\selectfont unit\'es%
         &\ifboolKV[ClesTableaux]{Virgule}{,}{}%
-        &\fontsize{4.5}{4.5}\selectfont dixièmes%
-          &\fontsize{4.5}{4.5}\selectfont centièmes%
-        &\fontsize{4.5}{4.5}\selectfont millièmes\\
+        &\fontsize{4.5}{4.5}\selectfont dixi\`emes%
+          &\fontsize{4.5}{4.5}\selectfont centi\`emes%
+        &\fontsize{4.5}{4.5}\selectfont milli\`emes\\
         \ifboolKV[ClesTableaux]{Nombres}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
         \fontsize{4.5}{4.5}\selectfont\num{100000000000}%
@@ -12717,7 +12757,7 @@
         \\
         }{}%
         % 
-        %%% Prise en compte de la clé Puissances
+        %%% Prise en compte de la cl\'e Puissances
         % 
         \ifboolKV[ClesTableaux]{Puissances}{%
         \ifboolKV[ClesTableaux]{Milliards}{%
@@ -12760,7 +12800,7 @@
     \setlength{\tabcolsep}{100\tabcolsep}%
   }{}%
   % 
-  %%% Prise en compte de la clé Metre
+  %%% Prise en compte de la cl\'e Metre
   % 
   \ifboolKV[ClesTableaux]{Metre}{%
     \[\renewcommand{\arraystretch}{1.15}%
@@ -12790,7 +12830,7 @@
   }%
   {}%
   % 
-  %%% Prise en compte de la clé Carre
+  %%% Prise en compte de la cl\'e Carre
   % 
   \ifboolKV[ClesTableaux]{Carre}{%
     \[\renewcommand{\arraystretch}{1.15}%
@@ -12831,7 +12871,7 @@
     \Conversion{100}%
   }{}%
   % 
-  %%% Prise en compte de la clé Cube
+  %%% Prise en compte de la cl\'e Cube
   % 
   \ifboolKV[ClesTableaux]{Cube}{%
     \setlength{\tabcolsep}{0.625\tabcolsep}%
@@ -12875,7 +12915,7 @@
     \Conversion{1000}%
   }{}%
   % 
-  %%% Prise en compte de la clé Litre
+  %%% Prise en compte de la cl\'e Litre
   % 
   \ifboolKV[ClesTableaux]{Litre}{%
     \[\renewcommand{\arraystretch}{1.15}%
@@ -12903,7 +12943,7 @@
     \Conversion{10}%
   }{}%
   % 
-  %%% Prise en compte de la clé Gramme
+  %%% Prise en compte de la cl\'e Gramme
   % 
   \ifboolKV[ClesTableaux]{Gramme}{%
     \[\renewcommand{\arraystretch}{1.15}%
@@ -12977,7 +13017,7 @@
     \coordinate[xshift=-3mm-(\largeurtitre/2)] (B2) at (B1);
     \node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurtitre,fill=TrameCouleur] (T1) at (A2){};
     \node[TexteCouleur] (T1a) at (T1){\Large #1};
-    \node[yshift=-0.65cm] (T1b) at (T1){\tiny réponse précédente};
+    \node[yshift=-0.65cm] (T1b) at (T1){\tiny r\'eponse pr\'ec\'edente};
     \node[inner sep=0pt,rounded corners, rectangle, draw=black,minimum height=1cm,text width=\largeurtitre,fill=TrameCouleur] (T2) at (B2){};
     \node[inner sep=0pt,TexteCouleur] (T2a) at (T2){
       \begin{minipage}{\largeurtitre}
@@ -13122,8 +13162,8 @@
   \end{tikzpicture}
 }
 
-\setKVdefault[Cards]{Largeur=59,Hauteur=89,HauteurTheme=15,Marge=4,Landscape=false,Couleur=Cornsilk,Theme=Théorème\\de
-  Pythagore,ThemeSol=Solution,Trame=false,Titre=false,NomTitre=Jeu 1,Loop,BackgroundAv=false,BackgroundAr=false,ImageAv=4813762.jpg,ImageAr=4813762.jpg}
+\setKVdefault[Cards]{Largeur=59,Hauteur=89,HauteurTheme=15,Marge=4,Landscape=false,Couleur=Cornsilk,Theme=Th\'eor\`eme\\de
+  Pythagore,ThemeSol=Solution,Trame=false,Titre=false,NomTitre=Jeu 1,Loop,BackgroundAv=false,BackgroundAr=false,ImageAv=4813762.jpg,ImageAr=4813762.jpg,AffichageSolution=true}
 
 \newcommand\Cartes[2][]{%
   \useKVdefault[Cards]%
@@ -13211,9 +13251,11 @@
       \begin{MyboxSimpleAv}{\useKV[Cards]{Theme}}%
         \ListeCards[1,1]%
       \end{MyboxSimpleAv}
+      \ifboolKV[Cards]{AffichageSolution}{%
       \begin{MyboxSimpleAr}{\useKV[Cards]{ThemeSol}}%
         \ListeCards[1,2]%
       \end{MyboxSimpleAr}
+      }{}%
     }%
   }%
 }
@@ -13229,9 +13271,9 @@
 %%%
 % Tableur
 %%%
-\setKVdefault[Tableur]{Colonnes=4,Largeur=3,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1}
+\setKVdefault[Tableur]{Colonnes=4,Largeur=3,LargeurUn=3,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1}
 
-%Basé sur un code de Christian Télléchéa.
+%Bas\'e sur un code de Christian T\'ell\'ech\'ea.
 \makeatletter
 \newcount\cntlin
 \newcount\cntcol
@@ -13239,7 +13281,7 @@
 \newtoks\t at b
 \long\def\ifremain at lines#1\\#2\@nil{%
 	\csname @\ifx\@empty#2\@empty second\else first\fi oftwo\endcsname}
-\long\def\subst at eol#1\\#2\@nil{\addtot at b{#1\\\hline}%
+\long\def\subst at eol#1\\#2\@nil{\addtot at b{#1\\}%
   	\ifremain at lines#2\\\@nil{\addtot at b&\subst at eol#2\@nil}{\addtot at b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}=0 || \useKV[Tableur]{Colonne}=0}{}{\tikz\draw[line width=2pt](row-\fpeval{\useKV[Tableur]{Ligne}+1}-|col-\fpeval{\useKV[Tableur]{Colonne}+1}) rectangle (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}});}\end{NiceTabular}}}}
 \long\def\collectcp at body#1\end{\subst at eol#1\@nil\end}
 
@@ -13253,34 +13295,36 @@
   \useKVdefault[Tableur]%
   \setKV[Tableur]{#1}%
   \ttfamily%
-  \setlength{\LongInter}{\fpeval{(\useKV[Tableur]{Colonnes}-1)*\useKV[Tableur]{Largeur}-4}em+\fpeval{\useKV[Tableur]{Colonnes}*2-6}\tabcolsep+\fpeval{\useKV[Tableur]{Colonnes}-3}\arrayrulewidth}
+  \newcolumntype Y{>{\centering\arraybackslash}p{\useKV[Tableur]{LargeurUn}em}}%
   \newcolumntype X{>{\centering\arraybackslash}p{\useKV[Tableur]{Largeur}em}}%
-  \begin{tabular}{|p{\useKV[Tableur]{Largeur}em}|p{1em}|p{5em}|p{\LongInter}|}
-    \cline{1-2}\cline{4-4}%
-    \useKV[Tableur]{Cellule}&\centering\arraybackslash\scriptsize$\blacktriangledown$&$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$&\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$\\
-    \cline{1-2}\cline{4-4}%
-  \end{tabular}
-  
+  \ifboolKV[Tableur]{Bandeau}{%
+    \setlength{\LongInter}{\fpeval{\useKV[Tableur]{LargeurUn}+(\useKV[Tableur]{Colonnes}-2)*\useKV[Tableur]{Largeur}-4}em+\fpeval{\useKV[Tableur]{Colonnes}*2-6}\tabcolsep+\fpeval{\useKV[Tableur]{Colonnes}+1}\arrayrulewidth}%
+    \begin{NiceTabular}{p{\useKV[Tableur]{Largeur}em}p{1em}p{5em}p{\LongInter}}%
+      \Block[draw]{}{}\useKV[Tableur]{Cellule}&\Block[draw]{}{}\centering\arraybackslash\scriptsize$\blacktriangledown$&$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$&\Block[draw]{}{}\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$\\
+      %\cline{1-2}\cline{4-4}%
+    \end{NiceTabular}%
+    \nopagebreak
+    \\
+  }{}
   \cntlin\z@
   \t at b{%
     \begin{NiceTabular}{%
-        |>{%
+        >{%
           \columncolor{gray!15}
-      \global\cntcol\z@\global\advance\cntlin\@ne
-      \centering\arraybackslash
-      \ifnum\cntlin>\@ne\number\numexpr\cntlin-1\relax\fi}
-      p{2em}|*{\useKV[Tableur]{Colonnes}}{X|}}%
-      \hline
+          \global\cntcol\z@\global\advance\cntlin\@ne
+          \centering\arraybackslash
+          \ifnum\cntlin>\@ne\number\numexpr\cntlin-1\relax\fi}
+        p{2em}Y*{\fpeval{\useKV[Tableur]{Colonnes}-1}}{X}}[hvlines]%
       \rowcolor{gray!15}}%
-     \loop
-     \ifnum\cntcol<\useKV[Tableur]{Colonnes}
-     \advance\cntcol\@ne
-     \addtot at b{&}%
-     \edftot at b{{\noexpand\@Alph\the\cntcol}}%
-     \repeat
-     \addtot at b{\\\hline&}%
+    \loop
+    \ifnum\cntcol<\useKV[Tableur]{Colonnes}
+    \advance\cntcol\@ne
+    \addtot at b{&}%
+    \edftot at b{{\noexpand\@Alph\the\cntcol}}%
+    \repeat
+    \addtot at b{\\&}%
     \collectcp at body}{\the\t at b}
-\makeatother
+  \makeatother
 
 %%%
 % Domino
@@ -13419,8 +13463,8 @@
 \setcounter{nbprog}{0}%
 
 \newcommand\ProgCalcul[2][]{%
-  % #1 : clés
-  % #2 : étapes
+  % #1 : cl\'es
+  % #2 : \'etapes
   \useKVdefault[ClesProg]%
   \setKV[ClesProg]{#1}%
   \setsepchar[*]{,* }\ignoreemptyitems%
@@ -13850,7 +13894,7 @@
   \mplibforcehmode%
   \myfontScratch%
   \begin{mplibcode}%
-    input PfC-Scratch;%
+    input PfCScratch;%
     print:=\useKV[Scratch]{Impression};%
     NumeroteLignes:=\useKV[Scratch]{Numerotation};%
     \BODY
@@ -13863,7 +13907,7 @@
 \else
 \NewEnviron{Scratch}[1][]{%
   \setKV[Scratch]{#1}%
-  \begin{mpost}[mpsettings={input PfC-Scratch-pdf;print:=\useKV[Scratch]{Impression};NumeroteLignes:=\useKV[Scratch]{Numerotation};Echelle:=\useKV[Scratch]{Echelle};}]%
+  \begin{mpost}[mpsettings={input PfCScratchpdf;print:=\useKV[Scratch]{Impression};NumeroteLignes:=\useKV[Scratch]{Numerotation};Echelle:=\useKV[Scratch]{Echelle};}]%
     \BODY
     picture recap;%
     recap:=currentpicture scaled Echelle;%



More information about the tex-live-commits mailing list.