texlive[71295] Master/texmf-dist: profcollege (18may24)

commits+karl at tug.org commits+karl at tug.org
Sat May 18 22:13:57 CEST 2024


Revision: 71295
          https://tug.org/svn/texlive?view=revision&revision=71295
Author:   karl
Date:     2024-05-18 22:13:57 +0200 (Sat, 18 May 2024)
Log Message:
-----------
profcollege (18may24)

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/PfCPatronPaves.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollegeT.sty

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)

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex	2024-05-18 20:13:34 UTC (rev 71294)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex	2024-05-18 20:13:57 UTC (rev 71295)
@@ -30,6 +30,149 @@
   }%
 }%
 
+\setsepchar{,}\ignoreemptyitems
+\readlist*\ListePatronsCube{%
+  {ooxo,xxxx,ooxo},%
+  {oxoo,xxxx,xooo},%
+  {ooxo,xxxx,oxoo},%
+  {ooox,xxxx,xooo},%
+  {ooox,xxxx,oxoo},%
+  {xxxoo,ooxxx},%
+  {xxoo,oxxo,ooxx},%
+  {xxoo,oxxx,ooox},%
+  {xxoo,oxxx,ooxo},%
+  {ooox,xxxx,ooox},%
+  {ooxo,xxxo,ooxx}%
+}%
+\readlist*\ListePatronsCubeCouleurs{%
+  {LightSteelBlue,Crimson,Yellow,Crimson,Yellow,LightSteelBlue},%
+  {LightSteelBlue,Crimson,Yellow,Crimson,Yellow,LightSteelBlue},%
+  {LightSteelBlue,Crimson,Yellow,Crimson,Yellow,LightSteelBlue},%
+  {LightSteelBlue,Crimson,Yellow,Crimson,Yellow,LightSteelBlue},%
+  {LightSteelBlue,Crimson,Yellow,Crimson,Yellow,LightSteelBlue},%
+  {LightSteelBlue,Crimson,LightSteelBlue,Yellow,Crimson,Yellow},%
+  {LightSteelBlue,Crimson,Yellow,LightSteelBlue,Crimson,Yellow},%
+  {LightSteelBlue,Crimson,Yellow,LightSteelBlue,Yellow,Crimson},%
+  {LightSteelBlue,Crimson,Yellow,LightSteelBlue,Yellow,Crimson},%
+  {LightSteelBlue,Crimson,Yellow,Crimson,Yellow,LightSteelBlue},%
+  {LightSteelBlue,Crimson,Yellow,Crimson,LightSteelBlue,Yellow}%
+}%
+
+\readlist*\ListePatronsPave{%
+  {hlpl,lopo,hopo,lopo},%
+  {hlpo,loph,hopo,lopo},%
+  {hlpo,lopo,hopl,lopo},%
+  {hlpo,lopo,hopo,loph},%
+  {hopo,lhph,hopo,lopo},%
+  {hopo,lhpo,hopl,lopo},%
+  {hopo,lhpo,hopo,lopl},%
+  {hopo,lopo,hlpl,lopo},%
+  {hopo,lopo,hlpo,loph},%
+  {hopo,lopo,hopo,lhph},%10
+  {plhl,loho,poho,loho},%
+  {plho,loho,pohl,loho},%
+  {plho,loho,pohl,loho},%
+  {plho,loho,poho,lohp},%
+  {poho,lphp,poho,loho},%
+  {poho,lpho,pohl,loho},%
+  {poho,lpho,poho,lohp},%
+  {poho,loho,plhl,loho},%
+  {poho,loho,plho,lohp},%
+  {poho,loho,poho,lphp},%
+  {phlh,holo,polo,holo},%
+  {phlo,holp,polo,holo},%
+  {phlo,holo,polh,holo},%
+  {phlo,holo,polo,holp},%
+  {polo,hplp,polo,holo},%
+  {polo,hplo,polh,holo},%
+  {polo,hplo,polo,holp},%
+  {polo,holo,phlh,holo},%
+  {polo,holo,phlo,holp},%
+  {polo,holo,polo,hplp},%
+  {hlpo,lopo,hopl,pool},%
+  {hopo,lhpo,hopl,pool},%
+  {hopo,lopo,hlph,pool},%
+  {lhpo,hopo,loph,pooh},%
+  {lopo,hlpo,loph,pooh},%
+  {lopo,hopo,lhoh,pooh},%
+  {plho,loho,pohl,hool},%
+  {poho,lpho,pohl,hool},%
+  {poho,loho,plhl,hool},%
+  {lpho,poho,lohp,hoop},%
+  {loho,plho,lohp,hoop},%
+  {loho,poho,lphp,hoop},%
+  {phlo,holo,polh,looh},%
+  {polo,hplo,polh,looh},%
+  {polo,holo,phlh,looh},%
+  {hplo,polo,holp,loop},%
+  {holo,phlo,holp,loop},%
+  {holo,polo,hplp,loop},%
+  {hpo,lpo,hpl,pol,hol},%
+  {lpo,hpo,lph,poh,loh},%
+  {pho,plo,phl,hol,pol},%
+  {hpoo,lpho,pohl,hool},%
+  {lpoo,hplo,polh,looh},%
+  {phoo,lhpo,hopl,pool}
+}
+
+\readlist*\ListePatronsPaveCouleurs{%
+  {Orange,Crimson,Orange,LightGreen,Crimson,LightGreen},
+  {Orange,Crimson,LightGreen,Orange,Crimson,LightGreen},
+  {Orange,Crimson,LightGreen,Crimson,Orange,LightGreen},
+  {Orange,Crimson,LightGreen,Crimson,LightGreen,Orange},
+  {Crimson,Orange,LightGreen,Orange,Crimson,LightGreen},
+  {Crimson,Orange,LightGreen,Crimson,Orange,LightGreen},
+  {Crimson,Orange,LightGreen,Crimson,LightGreen,Orange},
+  {Crimson,LightGreen,Orange,Crimson,Orange,LightGreen},
+  {Crimson,LightGreen,Orange,Crimson,LightGreen,Orange},
+  {Crimson,LightGreen,Crimson,Orange,LightGreen,Orange},%10
+  {LightGreen,Crimson,LightGreen,Orange,Crimson,Orange},%
+  {LightGreen,Crimson,Orange,LightGreen,Crimson,Orange},%
+  {LightGreen,Crimson,Orange,Crimson,LightGreen,Orange},%
+  {LightGreen,Crimson,Orange,Crimson,Orange,LightGreen},%
+  {Crimson,LightGreen,Orange,LightGreen,Crimson,Orange},%
+  {Crimson,LightGreen,Orange,Crimson,LightGreen,Orange},%
+  {Crimson,LightGreen,Orange,Crimson,Orange,LightGreen},%
+  {Crimson,Orange,LightGreen,Crimson,LightGreen,Orange},%
+  {Crimson,Orange,LightGreen,Crimson,Orange,LightGreen},%
+  {Crimson,Orange,Crimson,LightGreen,Orange,LightGreen},%20
+  {Crimson,LightGreen,Crimson,Orange,LightGreen,Orange},%
+  {Crimson,LightGreen,Orange,LightGreen,Crimson,Orange},%
+  {Crimson,LightGreen,Orange,LightGreen,Crimson,Orange},%
+  {Crimson,LightGreen,Orange,LightGreen,Orange,Crimson},%
+  {LightGreen,Crimson,Orange,Crimson,LightGreen,Orange},%
+  {LightGreen,Crimson,Orange,LightGreen,Crimson,Orange},%
+  {LightGreen,Crimson,Orange,LightGreen,Orange,Crimson},%
+  {LightGreen,Orange,Crimson,LightGreen,Crimson,Orange},%
+  {LightGreen,Orange,Crimson,LightGreen,Orange,Crimson},%
+  {LightGreen,Orange,LightGreen,Crimson,Orange,Crimson},%30
+  {Orange,Crimson,LightGreen,Crimson,Orange,LightGreen},%
+  {Crimson,Orange,LightGreen,Crimson,Orange,LightGreen},%
+  {Crimson,LightGreen,Orange,Crimson,Orange,LightGreen},%
+  {Orange,LightGreen,Crimson,LightGreen,Orange,Crimson},%
+  {LightGreen,Orange,Crimson,LightGreen,Orange,Crimson},%
+  {LightGreen,Crimson,Orange,LightGreen,Orange,Crimson},%
+  {LightGreen,Crimson,Orange,Crimson,LightGreen,Orange},%
+  {Crimson,LightGreen,Orange,Crimson,LightGreen,Orange},%
+  {Crimson,Orange,LightGreen,Crimson,LightGreen,Orange},%
+  {LightGreen,Orange,Crimson,Orange,LightGreen,Crimson},%40
+  {Orange,LightGreen,Crimson,Orange,LightGreen,Crimson},%
+  {Orange,Crimson,LightGreen,Orange,LightGreen,Crimson},%
+  {Crimson,LightGreen,Orange,LightGreen,Crimson,Orange},%
+  {LightGreen,Crimson,Orange,LightGreen,Crimson,Orange},%
+  {LightGreen,Orange,Crimson,LightGreen,Crimson,Orange},%
+  {Crimson,Orange,LightGreen,Orange,Crimson,LightGreen},%
+  {Orange,Crimson,LightGreen,Orange,Crimson,LightGreen},%
+  {Orange,LightGreen,Crimson,Orange,Crimson,LightGreen},%
+  {Crimson,LightGreen,Crimson,Orange,LightGreen,Orange},%
+  {LightGreen,Crimson,LightGreen,Orange,Crimson,Orange},%50
+  {Crimson,Orange,Crimson,LightGreen,Orange,LightGreen},%
+  {Crimson,LightGreen,Orange,Crimson,LightGreen,Orange},%
+  {LightGreen,Crimson,Orange,LightGreen,Crimson,Orange},%
+  {Crimson,Orange,LightGreen,Crimson,Orange,LightGreen}% 
+}%
+\reademptyitems
+
 \def\MPPatronCubeCode{%
   Arete=\useKV[ClesPatron]{Arete};
   %

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex	2024-05-18 20:13:34 UTC (rev 71294)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex	2024-05-18 20:13:57 UTC (rev 71295)
@@ -1,30 +1,105 @@
 %%%
 % Vue Cubes
 %%%
-\setKVdefault[VueCubes]{Solution=false,Hauteur=5,Profondeur=4,Largeur=3,Angle=60,Nom=Ex1,Trou=false,Echelle=0.25,CouleurCube=LightSteelBlue,CouleurFleche=LightGray,Face=false,Creation=false,Grilles=false,Seul=false}
+\setKVdefault[VueCubes]{Solution=false,Hauteur=5,Profondeur=4,Largeur=3,Angle=60,Nom=Ex1,Trou=false,Echelle=0.25,CouleurCube=LightSteelBlue,CouleurFleche=LightGray,Face=false,Creation=false,Grilles=false,Seul=false,Perso=false,EclateX=0,EclateZ=0,EclateY=0}
 
 \newtoks\toklisteVueCube%
 \def\UpdatetoksVueCube#1\nil{\addtotok\toklisteVueCube{#1,}}%
+\def\UpdatetoksEmpilementPerso#1\nil{\addtotok\toklisteVueCube{"#1",}}%
 
 \NewDocumentCommand\VueCubes{o m}{%
   \useKVdefault[VueCubes]%
-  \setKV[VueCubes]{#1}
-  \ifboolKV[VueCubes]{Solution}{%
-    \BuildVueCubesSolution%
+  \setKV[VueCubes]{#1}%
+  \toklisteVueCube{}%
+  \ifboolKV[VueCubes]{Perso}{%
+    \setsepchar[*]{,*/}\ignoreemptyitems%
+    \readlist*\ListeCouches{#2}%
+    \reademptyitems%
+    \foreachitem\compteur\in\ListeCouches{%
+      \foreachitem\compteurdeux\in\ListeCouches[\compteurcnt]{%
+        \expandafter\UpdatetoksEmpilementPerso\compteurdeux\nil%
+      }%
+    }%
+    \BuildMPEmpilementPerso{\the\toklisteVueCube}{\ListeCoucheslen}{\listlen\ListeCouches[1]}%
   }{%
-    \ifboolKV[VueCubes]{Creation}{%Le nombre de données doit être compatible avec le "volume du pavé droit"
-      \ignoreemptyitems%
-      \readlist*\PfCListeHauteursCubes{#2}%
-      \reademptyitems%
-      \toklisteVueCube{}%
-      \foreachitem\compteur\in\PfCListeHauteursCubes{\expandafter\UpdatetoksVueCube\compteur\nil}%
-      \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}%
+    \ifboolKV[VueCubes]{Solution}{%
+      \BuildVueCubesSolution%
     }{%
-      \BuildVueCubes{\useKV[VueCubes]{Angle}}{}%
+      \ifboolKV[VueCubes]{Creation}{%Le nombre de données doit être compatible avec le "volume du pavé droit"
+        \ignoreemptyitems%
+        \readlist*\PfCListeHauteursCubes{#2}%
+        \reademptyitems%
+        \foreachitem\compteur\in\PfCListeHauteursCubes{\expandafter\UpdatetoksVueCube\compteur\nil}%
+        \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}%
+      }{%
+        \BuildVueCubes{\useKV[VueCubes]{Angle}}{}%
+      }%
     }%
   }%
 }%
 
+\NewDocumentCommand{\BuildMPEmpilementPerso}{mmm}{%
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      nbcouches=#2;
+      nblignes:=#3;
+      
+      input PfCSolid;
+
+      intensite:=1.5;
+      
+      Ferme[0]:=false;
+      outcolor:=\useKV[VueCubes]{CouleurCube};%
+      incolor:=white;
+      nb:=1;subh:=1;
+      creux:=true;
+
+      Phi := \useKV[VueCubes]{Angle};
+      Echelle:=\useKV[VueCubes]{Echelle};
+      EclateX:=\useKV[VueCubes]{EclateX};
+      EclateY:=\useKV[VueCubes]{EclateY};
+      EclateZ:=\useKV[VueCubes]{EclateZ};
+
+      string LesSymboles[];
+      string LesLignes[][];
+
+      TotalObj:=0;
+
+      vardef CreationSolide(text t)=
+      n:=0;
+      for p_=t:
+      n:=n+1;
+      LesSymboles[n]=p_;
+      endfor;
+      for l=nbcouches downto 1:
+      for k=nblignes downto 1:
+      LesLignes[l][k]=LesSymboles[(nbcouches-l)*nblignes+(nblignes-k+1)];
+      endfor;
+      endfor;
+      for l=nbcouches downto 1:
+      for k=nblignes downto 1:
+      for m=0 upto (length(LesLignes[l][k])-1):
+      if (substring((m,m+1)) of LesLignes[l][k])="x":
+      TotalObj:=incr TotalObj;
+      TR:=(Echelle*(nblignes-k)+Echelle*(nblignes-k)*EclateX,Echelle*(m+m*EclateY),Echelle*l-Echelle*(nbcouches-l)*EclateZ);
+      ObjetDeplacement[TotalObj](0);
+      fi;
+      endfor;
+      endfor;
+      endfor;
+      enddef;
+      
+      Initialisation(2500,Phi,20,50);
+      Objetcube0("a="&decimal(Echelle));
+
+      CreationSolide(#1);
+      nbobj:=TotalObj;
+      DessineFusion;
+    \end{mplibcode}
+  \fi
+}
+
 \NewDocumentCommand\BuildVueCubes{m m}{%
   \ifluatex
   \mplibforcehmode

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-05-18 20:13:34 UTC (rev 71294)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-05-18 20:13:57 UTC (rev 71295)
@@ -2,9 +2,9 @@
 % licence    : Released under the LaTeX Project Public License v1.3c
 % or later, see http://www.latex-project.org/lppl.txtf
 \NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/04/26}%
+\def\filedate{2024/05/18}%
 \let\PfCfiledate\filedate%
-\def\fileversion{0.99-A-d}%
+\def\fileversion{0.99-A-f}%
 \let\PfCfileversion\fileversion%
 \ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
 
@@ -165,18 +165,6 @@
 
 \def\bla{}%JCC :) Pour les tests sur arguments vides
 
-%% Colorer en mode mathématique. \color ne gère pas les espaces propres au mode mathématique. Donc besoin de changer
-% https://tex.stackexchange.com/questions/21598/how-to-color-math-symbols
-%\makeatletter%
-%\def\mathcolor#1#{\@mathcolor{#1}}%
-%\def\@mathcolor#1#2#3{%
-%  \protect\leavevmode%
-%  \begingroup%
-%    \color#1{#2}#3%
-%  \endgroup%
-%}%
-%\makeatother%
-
 % Pb ProfCollege<->Chinois soulev\'e par Denis
 % Solution by egreg :)
 \newcommand\getstrut[1]{%
@@ -326,20 +314,11 @@
   \IfNoValueTF{#1}{\Dotfill}{\makebox[#1]{\Dotfill}}%
 }%
 
-%\NewDocumentCommand\Lignespointilles{m}{%
-%  \xintifboolexpr{\fpeval{#1}>1}{%
-%    \xintFor* ##1 in {\xintSeq {1}{\fpeval{#1}}}\do{%
-%      \pointilles\par%
-%    }%
-%  }{}%
-%}%
-
 \NewDocumentCommand\PfCNbLignesRestantes{}{%
   \edef\measurepage{\dimexpr\pagegoal-\pagetotal\relax}%
-  \xintifboolexpr{\fpeval{\the\measurepage}>\fpeval{\the\textheight}}{
-%    Toto
-     \edef\measurepage{\dimexpr\textheight\relax}
-    }{}
+  \xintifboolexpr{\fpeval{\the\measurepage}>\fpeval{\the\textheight}}{%
+    \edef\measurepage{\dimexpr\textheight\relax}%
+  }{}%
   \xdef\PfCResteLignes{\fpeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
 }%
 
@@ -509,16 +488,76 @@
   \day=\the\PfCrappeljour\relax%
 }
 
-\newcommand\MelangeLettres[2]{%
+\NewDocumentCommand\MelangeLettres{smm}{%
   % #2 Nombre d'éléments à conserver
+  % #3 Nom de la commande qui reçoit la liste.
   \setsepchar{,}\ignoreemptyitems%
   \readlist*\ListeInter{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}%
   \xdef\faa{}% Liste construite
   \xdef\fii{}% Liste détruite
-  \xintFor* ##1 in {\xintSeq{1}{#1}}\do{%
+  \IfBooleanTF{#1}{%
+    \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
+      \xintifboolexpr{\ListeInterlen>1}{%
+        \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
+        \xdef\faa{\faa\ListeInter[\Alea],}%
+        \xdef\fii{}%
+        \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
+          \xintifboolexpr{##2 == \Alea}{%
+          }{%
+            \xdef\fii{\fii \ListeInter[##2],}%
+          }%
+        }%
+      }{%
+        \xdef\faa{\faa\ListeInter[1]}%
+      }%
+      \readlist*\ListeInter{\fii}%
+    }%
+  }{%
+    \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
+      \xintifboolexpr{\ListeInterlen>1}{%
+        \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
+        \xdef\faa{\faa\ListeInter[\Alea]}%
+        \xdef\fii{}%
+        \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
+          \xintifboolexpr{##2 == \Alea}{%
+          }{%
+            \xdef\fii{\fii \ListeInter[##2],}%
+          }%
+        }%
+      }{%
+        \xdef\faa{\faa\ListeInter[1]}%
+      }%
+      \readlist*\ListeInter{\fii}%
+    }%
+  }%
+  \xdef#3{\faa}%
+}%
+
+\NewDocumentCommand\MelangeListe{smm}{%
+  \IfBooleanTF{#1}{%
+    %Si on cherche un seul élément, on peut l'utiliser directement 
+    \MelangeListeOne{#2}{#3}%
+  }{%
+    \MelangeListeNoOne{#2}{#3}%
+  }%
+}
+
+\NewDocumentCommand\MelangeListeOne{mm}{%
+  % #1 Liste à mélanger
+  % #2 Nombre d'éléments à conserver
+  \setsepchar{,}\ignoreemptyitems%
+  \readlist*\ListeInter{#1}%
+  \xdef\faa{}% Liste construite
+  \xdef\fii{}% Liste détruite
+  % on crée les #2 premieres solutions.
+  \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
     \xintifboolexpr{\ListeInterlen>1}{%
       \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
-      \xdef\faa{\faa\ListeInter[\Alea]}%
+      \ifnum\fpeval{##1}=1\relax
+        \xdef\faa{\ListeInter[\Alea]}%
+      \else
+        \xdef\faa{\faa,\ListeInter[\Alea]}%
+      \fi
       \xdef\fii{}%
       \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
         \xintifboolexpr{##2 == \Alea}{%
@@ -527,14 +566,14 @@
         }%
       }%
     }{%
-      \xdef\faa{\faa\ListeInter[1]}%
+      \xdef\faa{\faa,\ListeInter[1]}%
     }%
     \readlist*\ListeInter{\fii}%
   }%
-  \xdef#2{\faa}%
+  \reademptyitems%
 }%
 
-\newcommand\MelangeListe[2]{%
+\NewDocumentCommand\MelangeListeNoOne{mm}{%
   % #1 Liste à mélanger
   % #2 Nombre d'éléments à conserver
   \setsepchar{,}\ignoreemptyitems%
@@ -787,6 +826,8 @@
 \def\PfCSymbolTimes{\times}%
 \def\PfCSymbolDiv{\div}%
 
+\input{PfCVisualisationMulDeci}
+\input{PfCArbreChiffre}
 \input{PfCAssemblagesSolides}
 \input{PfCTicketCaisse}
 \input{PfCRecyclage}

Deleted: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollegeT.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollegeT.sty	2024-05-18 20:13:34 UTC (rev 71294)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollegeT.sty	2024-05-18 20:13:57 UTC (rev 71295)
@@ -1,974 +0,0 @@
-% Author     : Christophe Poulain
-% licence    : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/05/15}%
-\let\PfCfiledate\filedate%
-\def\fileversion{0.99-A-e}%
-\let\PfCfileversion\fileversion%
-\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
-
-\RequirePackage{verbatim}%
-
-\RequirePackage{mathtools}%
-
-\newif\if at shellescape \@shellescapetrue%
-\newif\if at amssymb \@amssymbtrue%
-%
-\newif\if at Euro \@Eurotrue
-\newif\if at CFA \@CFAfalse
-\newif\if at CFP \@CFPfalse
-\newif\if at CHF \@CHFfalse
-\newif\if at US \@USfalse
-\newif\if at UK \@UKfalse
-
-\DeclareOption{CFA}{\@Eurofalse\@CFAtrue}%
-\DeclareOption{CFP}{\@Eurofalse\@CFPtrue}%
-\DeclareOption{CHF}{\@Eurofalse\@CHFtrue}%
-\DeclareOption{UK}{\@Eurofalse\@UKtrue}%
-\DeclareOption{US}{\@Eurofalse\@UStrue}%
-%
-\DeclareOption{nonshellescape}{\@shellescapefalse}%
-\DeclareOption{nonamssymb}{\@amssymbfalse}%
-\ProcessOptions\relax%
-
-\if at amssymb%
-\RequirePackage{amssymb}%
-\fi%
-
-% mathématiques
-\RequirePackage{siunitx}%
-\sisetup{%
-  locale=FR,mode = match,
-  propagate-math-font = true,%
-  reset-math-version = false, reset-text-family = false,%
-  reset-text-series = false, reset-text-shape = false,%
-  text-family-to-math = true, text-series-to-math = true,%
-  output-decimal-marker={,},%
-  group-minimum-digits=4,%
-  quantity-product={~}%
-}%
-\DeclareSIUnit{\kmh}{\km\per\hour}%
-\newcommand\speed[1]{\SI{#1}{\kmh}}%
-\newcommand\Speed[1]{\SI[per-mode=symbol]{#1}{\kmh}}%
-
-\DeclareSIUnit{\are}{a}%
-\DeclareSIUnit{\annee}{an}%
-\DeclareSIUnit{\mois}{mois}%
-\DeclareSIUnit{\jour}{j}%
-\DeclareSIUnit{\quintal}{q}%
-\DeclareSIUnit{\octet}{o}%
-\DeclareSIUnit{\fahrenheit}{\text{\textdegree}F}%
-\DeclareSIUnit{\EuRo}{€}%
-\DeclareSIUnit{\Dollar}{\$}%
-\DeclareSIUnit{\LivreSterling}{£}%
-\DeclareSIUnit{\PfCCFA}{F.C.F.A.}%
-\DeclareSIUnit{\PfCCFP}{F.C.F.P.}%
-\DeclareSIUnit{\PfCCHF}{CHF}%
-
-%
-\if at CFA%
-  \DeclareSIUnit{\DeviseDefaut}{F.C.F.A.}%
-\fi%
-\if at CFP%
-  \DeclareSIUnit{\DeviseDefaut}{F.C.F.P.}%
-\fi%
-\if at CHF%
-  \DeclareSIUnit{\DeviseDefaut}{CHF}%
-\fi%
-\if at Euro%
-  \DeclareSIUnit{\DeviseDefaut}{€}%
-\fi%
-\if at US%
-  \DeclareSIUnit{\DeviseDefaut}{\Dollar}%
-\fi%
-\if at UK%
-  \DeclareSIUnit{\DeviseDefaut}{\LivreSterling}%
-\fi%
-
-
-\RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
-%\PassOptionsToPackage{table,svgnames}{xcolor}
-\RequirePackage{xstring}%Gestion de chaines de caractères
-\RequirePackage{simplekv}%Gestion de paramètres sous forme de clés
-\RequirePackage{ifthen}%
-\RequirePackage{modulus}%Pour certains calculs arithmétiques.
-\RequirePackage{xinttools}%Pour la création dynamique d'un tableau
-
-\RequirePackage{iftex}%
-
-\ifluatex%
-\RequirePackage{luacas}%
-\RequirePackage{luamplib}%
-\mplibtextextlabel{enable}%à partir de la v2.25 de mplibcode
-\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"%
-\else%
-%
-\RequirePackage[latex]{gmp}%inclusion de figures metapost "à la volée"%
-\fi%
-\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}%
-\usempxclass{article}%
-\usempxpackage{ProfCollege}%
-\usempxpackage[utf8]{inputenc}%
-\usempxpackage[T1]{fontenc}%
-\usempxpackage{fourier}%
-\usempxpackage[french]{babel}%
-\usempxpackage{pifont}%
-\fi%
-
-\RequirePackage{xintexpr}%
-\RequirePackage{listofitems}%
-\RequirePackage{datatool}%
-\RequirePackage{multido}%
-
-\RequirePackage{xlop}%
-
-\RequirePackage{tcolorbox}%
-\tcbuselibrary{breakable,external,fitting,hooks,magazine,poster,raster,skins,theorems,listings,listingsutf8}
-
-\RequirePackage{tikz}%
-% https://tex.stackexchange.com/questions/349259/curved-arrow-describing-a-step-in-a-equation-derivation
-%https://tex.stackexchange.com/questions/58656/best-way-to-draw-a-chevron-diagram-using-tikz
-\usetikzlibrary{calc,shapes,arrows,tikzmark,chains,positioning,shapes.symbols,babel,fit,backgrounds}%
-
-%\RequirePackage{suffix}%pour la commande étoilée
-
-\RequirePackage{multicol}%
-
-\RequirePackage{hhline}%
-
-\RequirePackage{stackengine}%
-\RequirePackage[thicklines]{cancel}%
-
-\RequirePackage{fontawesome5}%
-\RequirePackage{pifont}%Pour la commande \Autonomie
-\RequirePackage{nicematrix}%
-\NiceMatrixOptions{allow-duplicate-names}%
-
-\let\myoldmulticolumn\multicolumn%
-\AtBeginEnvironment{tabular}{\let\multicolumn\myoldmulticolumn}%
-
-%\RequirePackage{multirow}%
-\RequirePackage{longtable}
-
-\RequirePackage{fmtcount}%
-\FCloadlang{french}%
-
-% https://stackoverflow.com/questions/3391103/how-to-make-the-grayed-round-box-using-tiks
-%\RequirePackage{environ}%
-
-%%%%% Quelques besoins particuliers
-
-\def\bla{}%JCC :) Pour les tests sur arguments vides
-
-% Pb ProfCollege<->Chinois soulev\'e par Denis
-% Solution by egreg :)
-\newcommand\getstrut[1]{%
-  \the\expandafter#1\expanded{\strutbox}%
-}%
-
-% Colorer uniquement la barre de soulignement
-% https://tex.stackexchange.com/questions/9466/color-underline-a-formula/153884
-\def\mathunderline#1#2{\color{#1}\underline{{\color{black}#2}}\color{black}}%
-
-% Ecrire des lignes d'équations
-\catcode`\@=11%
-\def\Eqalign#1{\null\,\vcenter{\openup\jot\m at th\ialign{%
-      \strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil%
-      &&\quad\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$%
-      \hfil\crcr #1\crcr}}\,}%
-\catcode`\@=12%
-
-%%%
-% Commandes "utiles"
-%%%
-\NewDocumentCommand\NumMA{m}{%
-  \xintifboolexpr{#1<0}{%
-    (\num{#1})%
-  }{%
-    \num{#1}%
-  }%
-}%
-
-\NewDocumentCommand\NumS{m}{%
-  \xintifboolexpr{#1==0}{}{\xintifboolexpr{#1>0}{+\num{#1}}{\num{#1}}}
-}%
-
-\newcounter{Marque}
-
-\NewDocumentCommand\AffichageTab{O{x}mmm}{%
-  \ifnum#2=0\relax%
-    \ifnum#3=0\relax%
-      \ifnum#4=0\relax%
-      \else%
-        #4%
-      \fi%
-    \else%
-      #3*#1%
-      \ifnum#4=0\relax%
-      \else%
-        \ifnum#4<0\relax%
-          #4%
-        \else%
-          +#4%
-        \fi%
-      \fi%
-    \fi%
-  \else%
-    #2*#1*#1%
-    \ifnum#3=0\relax%
-      \ifnum#4=0\relax%
-      \else%
-        \ifnum#4<0%
-          #4%
-        \else%
-          +#4%
-        \fi%
-      \fi%
-    \else%
-      \ifnum#3<0%
-        #3*#1%
-      \else%
-        +#3*#1%
-      \fi%
-      \ifnum#4=0\relax%
-      \else%
-        \ifnum#4<0%
-          #4%
-        \else%
-          +#4%
-        \fi%
-      \fi%
-    \fi%
-  \fi%
-}%
-%encadrer avec des "sommets arrondis"
-%\newsavebox{\logobox}%
-
-\newcommand\Logo[2]{%
-\setbox1=\hbox{\includegraphics[scale=#2]{#1}}%
-\begin{tikzpicture}%
-\clip[rounded corners=5mm] (0,0) rectangle (\wd1,\ht1);%
-\node[xshift=0.5\wd1, yshift=0.5\ht1, inner xsep=0pt, inner ysep=0pt] (box) {%
-\includegraphics[scale=#2]{#1}%
-};%
-\end{tikzpicture}%
-}%
-
-\newcommand\LogoTW[2]{%
-\setbox1=\hbox{\includegraphics[scale=#2]{#1}}%
-\begin{tikzpicture}%
-  \clip (0,0) circle (4mm);%
-  \draw (0,0) circle (4mm);%
-  \node[xshift=0mm, yshift=0mm, inner xsep=0pt, inner ysep=0pt] (0,0) {%
-    \includegraphics[scale=#2]{#1}%
-  };%
-\end{tikzpicture}%
-}%
-
-\makeatletter
-\def\Suspensionfill{%
-\leavevmode
-\cleaders \hb at xt@\LongBoitePoint{\ldotp}\hfill
-\kern\z@}
-\makeatother
-
-\newlength{\LongBoitePoint}
-
-\NewDocumentCommand\PointsSuspension{m}{%
-  \setbox2=\hbox{\ldotp}%
-  \setlength{\LongBoitePoint}{\wd2}%
-  \ifx\bla#1\bla%
-    \Suspensionfill%
-  \else%
-    \setbox1=\hbox{#1}%
-    \StrLen{#1}[\LongueurPoints]%
-    \ifmmode%
-      \mathinner{%
-        \xintFor* ##1 in {\xintSeq{1}{\LongueurPoints}}\do{%
-          \ldotp%
-        }%
-      }%
-    \else%
-      \xintFor* ##1 in {\xintSeq{1}{\fpeval{round(\wd1/\wd2)}}}\do{%
-        \ldotp%
-      }%
-    \fi%
-  \fi%
-}%
-
-\makeatletter%
-\NewDocumentCommand\Dotfill{}{%
-\leavevmode%
-\cleaders\hb at xt@.44em{\hss\xleaders\hrule width0.33em\hss}\hfill%
-\kern\z@}%
-
-\NewDocumentCommand\PfCdotover{}{\leavevmode\cleaders\hb at xt@ .22em{\hss $\cdot$\hss}\hfill\kern\z@}%
-\makeatother%
-
-\NewDocumentCommand\pointilles{o}{%
-  \IfNoValueTF{#1}{\Dotfill}{\makebox[#1]{\Dotfill}}%
-}%
-
-\NewDocumentCommand\PfCNbLignesRestantes{}{%
-  \edef\measurepage{\dimexpr\pagegoal-\pagetotal\relax}%
-  \xintifboolexpr{\fpeval{\the\measurepage}>\fpeval{\the\textheight}}{%
-    \edef\measurepage{\dimexpr\textheight\relax}%
-  }{}%
-  \xdef\PfCResteLignes{\fpeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
-}%
-
-\NewDocumentCommand\PfCLignesFinales{}{%
-  \PfCNbLignesRestantes%
-  \xintFor* ##1 in {\xintSeq {1}{\PfCResteLignes}}\do{%
-    \pointilles\par%
-  }%
-}%
-
-\NewDocumentCommand\Lignespointilles{m}{%
-  \ifx\bla#1\bla%
-    \par\PfCLignesFinales%
-  \else%
-    \xintifboolexpr{\fpeval{#1}>1}{%
-      \xintFor* ##1 in {\xintSeq {1}{#1}}\do{%
-        \pointilles\par%
-      }%
-    }{}%
-  \fi
-}%
-
-%https://tex.stackexchange.com/questions/128991/frac-or-inference-rule-with-dotted-line
-\newcommand\PfCfrac[2]{%
-\ooalign{$\genfrac{}{}{0pt}{0}{#1}{#2}$\cr\PfCdotover\cr}%
-}%
-
-\NewDocumentCommand\MultiCol{O{}+m+m}{%
-  \setsepchar[*]{/}%
-  \readlist*\ListeNombreCol{#2}%
-  \setsepchar[*]{§}%
-  \readlist*\ListeContenuCol{#3}%
-  \xintFor* ##1 in {\xintSeq{1}{\ListeNombreCollen}}\do{%
-    \itemtomacro\ListeContenuCol[##1]\PfMTexte
-    \begin{minipage}[#1]{\ListeNombreCol[##1]\linewidth}%
-      \PfMTexte
-    \end{minipage}%
-    \xintifboolexpr{##1<\ListeNombreCollen}{\hfill\vrule width \columnseprule\hfill}{}%
-  }%
-}%
-
-\newcount\PfCrappeljour%
-
-\newcommand\Demain{%
-  \PfCrappeljour=\day\relax%
-  \advance\day by 1\relax%
-  \ifnum\month=1\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=2\relax%
-  \ifnum\day>28\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=3\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=4\relax%
-  \ifnum\day>30\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=5\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=6\relax%
-  \ifnum\day>30\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=7\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=8\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=9\relax%
-  \ifnum\day>30\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=10\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=11\relax%
-  \ifnum\day>30\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \ifnum\month=12\relax%
-  \ifnum\day>31\relax%
-  \day=\numexpr1\relax%
-  \advance\month by 1\relax%
-  \today\relax%
-  \advance\month by -1\relax%
-  \else%
-  \today\relax%
-  \fi%
-  \fi%
-  \day=\the\PfCrappeljour\relax%
-}
-
-\NewDocumentCommand\MelangeLettres{smm}{%
-  % #2 Nombre d'éléments à conserver
-  % #3 Nom de la commande qui reçoit la liste.
-  \setsepchar{,}\ignoreemptyitems%
-  \readlist*\ListeInter{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}%
-  \xdef\faa{}% Liste construite
-  \xdef\fii{}% Liste détruite
-  \IfBooleanTF{#1}{%
-    \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
-      \xintifboolexpr{\ListeInterlen>1}{%
-        \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
-        \xdef\faa{\faa\ListeInter[\Alea],}%
-        \xdef\fii{}%
-        \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
-          \xintifboolexpr{##2 == \Alea}{%
-          }{%
-            \xdef\fii{\fii \ListeInter[##2],}%
-          }%
-        }%
-      }{%
-        \xdef\faa{\faa\ListeInter[1]}%
-      }%
-      \readlist*\ListeInter{\fii}%
-    }%
-  }{%
-    \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
-      \xintifboolexpr{\ListeInterlen>1}{%
-        \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
-        \xdef\faa{\faa\ListeInter[\Alea]}%
-        \xdef\fii{}%
-        \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
-          \xintifboolexpr{##2 == \Alea}{%
-          }{%
-            \xdef\fii{\fii \ListeInter[##2],}%
-          }%
-        }%
-      }{%
-        \xdef\faa{\faa\ListeInter[1]}%
-      }%
-      \readlist*\ListeInter{\fii}%
-    }%
-  }%
-  \xdef#3{\faa}%
-}%
-
-\NewDocumentCommand\MelangeListe{smm}{%
-  \IfBooleanTF{#1}{%
-    %Si on cherche un seul élément, on peut l'utiliser directement 
-    \MelangeListeOne{#2}{#3}%
-  }{%
-    \MelangeListeNoOne{#2}{#3}%
-  }%
-}
-
-\NewDocumentCommand\MelangeListeOne{mm}{%
-  % #1 Liste à mélanger
-  % #2 Nombre d'éléments à conserver
-  \setsepchar{,}\ignoreemptyitems%
-  \readlist*\ListeInter{#1}%
-  \xdef\faa{}% Liste construite
-  \xdef\fii{}% Liste détruite
-  % on crée les #2 premieres solutions.
-  \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
-    \xintifboolexpr{\ListeInterlen>1}{%
-      \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
-      \ifnum\fpeval{##1}=1\relax
-        \xdef\faa{\ListeInter[\Alea]}%
-      \else
-        \xdef\faa{\faa,\ListeInter[\Alea]}%
-      \fi
-      \xdef\fii{}%
-      \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
-        \xintifboolexpr{##2 == \Alea}{%
-        }{%
-          \xdef\fii{\fii \ListeInter[##2],}%
-        }%
-      }%
-    }{%
-      \xdef\faa{\faa,\ListeInter[1]}%
-    }%
-    \readlist*\ListeInter{\fii}%
-  }%
-  \reademptyitems%
-}%
-
-\NewDocumentCommand\MelangeListeNoOne{mm}{%
-  % #1 Liste à mélanger
-  % #2 Nombre d'éléments à conserver
-  \setsepchar{,}\ignoreemptyitems%
-  \readlist*\ListeInter{#1}%
-  \xdef\faa{}% Liste construite
-  \xdef\fii{}% Liste détruite
-  % on crée les #2 premieres solutions.
-  \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
-    \xintifboolexpr{\ListeInterlen>1}{%
-      \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
-      \xdef\faa{\faa \ListeInter[\Alea],}%
-      \xdef\fii{}%
-      \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
-        \xintifboolexpr{##2 == \Alea}{%
-        }{%
-          \xdef\fii{\fii \ListeInter[##2],}%
-        }%
-      }%
-    }{%
-      \xdef\faa{\faa \ListeInter[1]}%
-    }%
-    \readlist*\ListeInter{\fii}%
-  }%
-  \reademptyitems%
-}%
-
-\newcommand\MelangeListeNewTwo[2]{%
-  % #1 Liste à mélanger
-  % #2 Nombre d'éléments à conserver
-  \setsepchar{,}\ignoreemptyitems%
-  \readlist*\ListeInter{#1}%
-%  \xdef\faa{}% Liste construite
-  \xdef\fii{}% Liste détruite
-  % on crée les #2 premieres solutions.
-  \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
-    \xintifboolexpr{\ListeInterlen>1}{%
-      \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
-      \ifnum\fpeval{##1}=1\relax
-        \xdef\faa{\ListeInter[\Alea]}%
-      \else
-        \xdef\faa{\faa,\ListeInter[\Alea]}%
-      \fi
-      \xdef\fii{}%
-      \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
-        \xintifboolexpr{##2 == \Alea}{%
-        }{%
-          \xdef\fii{\fii \ListeInter[##2],}%
-        }%
-      }%
-    }{%
-      \xdef\faa{\faa \ListeInter[1]}%
-    }%
-    \readlist*\ListeInter{\fii}%
-  }%
-  \reademptyitems%
-}%
-
-%%%
-% Smiley
-%%% https://tex.stackexchange.com/questions/3695/smileys-in-latex/227226
-\tikzset{face/.style={shape=circle,minimum size=4ex,shading=radial,outer sep=0pt, inner color=white!50!yellow,outer color= yellow!70!orange}}
-
-\newcommand\emoticon[2][]{%
-\scalebox{.5}{\begin{tikzpicture}
-\node[face,#1,draw,thick] (emoticon) {};
-%% The eyes are fixed.
-\draw[fill=white] (-1ex,0ex) ..controls (-0.5ex,0.2ex)and(0.5ex,0.2ex)..(1ex,0.0ex) ..controls ( 1.5ex,1.5ex)and( 0.2ex,1.7ex)..(0ex,0.4ex) ..controls (-0.2ex,1.7ex)and(-1.5ex,1.5ex)..(-1ex,0ex)--cycle;
-#2%
-\end{tikzpicture}}%
-}
-
-\newcommand\pupils{
-%% standard pupils
-\fill[shift={(0.5ex,0.5ex)},rotate=80] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.5ex,0.5ex)},rotate=100] (0,0) ellipse (0.3ex and 0.15ex);}
-
-\def\RKsmallsmile{%
-\emoticon{%
-\pupils
-%% mouth
-\draw[thick] (-0.5ex,-1ex)..controls (-0.25ex,-1.25ex)and(0.25ex,-1.25ex)..(0.5ex,-1ex);
-}%\emoticon
-}
-
-\def\RKsmile{%
-\emoticon{%
-\pupils
-\draw[thick] (-1ex,-1ex)..controls (-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKbigsmile{%
-\emoticon{%
-\pupils
-%% mouth
-\draw[thick] (-1.5ex,-0.5ex)..controls (-0.7ex,-1.7ex)and(0.7ex,-1.7ex)..(1.5ex,-0.5ex);
-}%\emoticon
-}
-
-\def\RKsad{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-0.5ex)and(0.5ex,-0.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKneutral{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
-%% mouth
-\draw[thick] (-0.5ex,-1ex)--(0.5ex,-1ex);
-}%\emoticon
-}
-
-\def\RKconfused{%
-\emoticon{%
-\pupils
-%% mouth
-\draw[thick] (-1ex,-0.75ex)--(1ex,-1.25ex);
-}%\emoticon
-}
-
-\def\RKsexy{%
-\emoticon{%
-\pupils
-%% mouth
-\draw[very thick,red,line cap=round] (-1ex,-1ex)..controls (-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-%% eyelashes
-\draw (0.60ex,1.20ex)--(0.60ex,1.60ex)
-  (0.85ex,1.25ex)--(0.95ex,1.45ex)
-  (1.00ex,1.00ex)--(1.20ex,1.10ex)
-  (0.35ex,1.15ex)--(0.25ex,1.35ex)
-  (-0.60ex,1.20ex)--(-0.60ex,1.60ex)
-  (-0.85ex,1.25ex)--(-0.95ex,1.45ex)
-  (-1.00ex,1.00ex)--(-1.20ex,1.10ex)
-  (-0.35ex,1.15ex)--(-0.25ex,1.35ex);
-}%\emoticon
-}
-
-\def\RKangry{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-0.5ex)and(0.5ex,-0.5ex)..(1ex,-1ex);
-%% eyebrows
-\draw[thick] (0.2ex,1.15ex)--(0.5ex,1.6ex)(-0.2ex,1.15ex)--(-0.5ex,1.6ex);
-}%\emoticon
-}
-
-\def\RKlookup{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.5ex,1.05ex)},rotate= 80] (0,0) ellipse (0.2ex and 0.2ex);
-\fill[shift={(-0.5ex,1.05ex)},rotate=100] (0,0) ellipse (0.2ex and 0.2ex);
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKlookdown{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.5ex,0.3ex)},rotate= 80] (0,0) ellipse (0.2ex and 0.2ex);
-\fill[shift={(-0.5ex,0.3ex)},rotate=100] (0,0) ellipse (0.2ex and 0.2ex);
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKlookleft{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.25ex,0.5ex)},rotate=100] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.95ex,0.5ex)},rotate=100] (0,0) ellipse (0.3ex and 0.15ex);
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKlookright{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.95ex,0.5ex)},rotate=80] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.25ex,0.5ex)},rotate=80] (0,0) ellipse (0.3ex and 0.15ex);
-%% mouth
-\draw[thick] (-1.0ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKblush{%
-\emoticon{%
-\pupils
-%% mouth
-\draw[thick] (-0.5ex,-1ex)..controls (-0.25ex,-1.25ex)and(0.25ex,-1.25ex)..(0.5ex,-1ex);
-%% blush
-\shade[shading=radial,inner color=white!50!red,outer color= yellow!80!orange] ( 1ex,-0.5ex) circle (0.4ex);
-\shade[shading=radial,inner color=white!50!red,outer color= yellow!80!orange] (-1ex,-0.5ex) circle (0.4ex);
-}%\emoticon
-}
-
-\def\RKalmostcrying{%
-\emoticon{%
-%% pupils
-\fill[shift={( 0.5ex,0.5ex)},rotate=105] (0,0) ellipse (0.3ex and 0.15ex);
-\fill[shift={(-0.5ex,0.5ex)},rotate= 75] (0,0) ellipse (0.3ex and 0.15ex);
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls
-(-0.5ex,-0.8ex)and(0.5ex,-0.8ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKmartian{%
-\emoticon[inner color=white!50!green,outer color=green!70!red]{%
-\pupils
-%% mouth
-\draw[thick] (-1ex,-1ex)..controls
-(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-}%\emoticon
-}
-
-\def\RKdevilish{%
-\raisebox{-0.6ex}[0ex][0ex]{%
-\emoticon[inner color=white!50!red,outer color= red!70!red!90!black]{%
-\pupils
-%% mouth
-\draw[thick,line cap=round] (-1ex,-1ex)..controls (-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
-%% tail
-\draw[line width=0.45ex,-stealth,black] (emoticon.330)--++(330:0.01ex)..controls (3ex,-3ex)and(3.5ex,1ex)..(4.25ex,-3ex);
-\draw[line width=0.27ex,-stealth,red!90!black] (emoticon.330)--++(330:0.01ex)..controls (3ex,-3ex)and(3.5ex,1ex)..(4.22ex,-2.8ex);
-%% horns
-\draw[fill] (emoticon.80)..controls ( 0.6ex,2.4ex)..( 1ex,2.5ex)..controls ( 0.8ex,2.3ex)..(emoticon.70);
-\draw[fill] (emoticon.100)..controls (-0.6ex,2.4ex)..(-1ex,2.5ex)..controls (-0.8ex,2.3ex)..(emoticon.110); 
-\draw[thick] (0,0) circle (2ex);
-}%\emoticon
-}%\raisebox
-}%
-
-\setsepchar[*]{,*/}\ignoreemptyitems
-\readlist*\ListeMateriaux{aluminium/'/2.7,chêne/e~/0.69,bouleau/e~/0.65,sapin/e~/0.45,polystyrène/e~/1.04,porcelaine/la/2.5,acier/'/7.85,cuivre/e~/8.92,fer/e~/7.86,or/'/19.3,argent/'/10.5,bronze/e~/8.4,plomb/e~/11.35,marbre/e~/2.75,laiton/e~/7.3,titane/e~/4.5,PVC/e~/1.38}
-\setsepchar{,}\reademptyitems
-
-%Internationalisation
-\def\PfCSymbolTimes{\times}%
-\def\PfCSymbolDiv{\div}%
-
-\input{PfCVisualisationMulDeci}
-\input{PfCArbreChiffre}
-\input{PfCAssemblagesSolides}
-\input{PfCTicketCaisse}
-\input{PfCRecyclage}
-\input{PfCDontCountDots}
-\input{PfCConversion}
-\input{PfCCritere}
-\input{PfCLego}
-\input{PfCJeton}
-\input{PfCDessinAlgo}
-\input{PfCBonbon}
-\input{PfCPattern}
-\input{PfCNumerationsAnciennes}
-\input{PfCSerpent}
-\input{PfCFractionNombre}
-\input{PfCAllumettes}
-\input{PfCFractionAireCarre.tex}
-\input{PfCMulJal}
-\input{PfCCibleQOp}
-\input{PfCFubuki}
-\input{PfCMulJap}
-\input{PfCCryptarithme}
-\input{PfCDefiCalc}
-\input{PfCMulArt}
-\input{PfCGrimuku}
-\input{PfCHorloge}
-\input{PfCCible}
-\input{PfCMulPiecesPuzzle}
-\input{PfCPyraVoca}
-\input{PfCAutomatismes}
-\input{PfCNumberHive}
-\input{PfCPatronPaves}
-\input{PfCEratosthene}
-\input{PfCDobble}
-\input{PfCPavage}
-\input{PfCNonogramme}
-\input{PfCJeuRangement}
-\input{PfCTrio}
-\input{PfCCalculsFractions}
-\input{PfCDecDeci}
-\input{PfCKakurasu}
-\input{PfCMidpoint}
-\input{PfCGrades}
-\input{PfCSquaro}
-\input{PfCGaram}
-\input{PfCFutoshiki}
-\input{PfCRondeInfernale}
-\input{PfCHiddenMessage}
-\input{PfCPuzzleSommePyramide}
-\input{PfCCalisson}
-\input{PfCTectonic}
-\input{PfCEnigmeAire}
-\input{PfCBarresCalculs}
-\input{PfCSolides}
-\input{PfCVueCubes}
-\input{PfCRLE}
-\input{PfCEngrenagesBase}
-\input{PfCTortueBase}
-\input{PfCCompteBon}
-\input{PfCNombreAstral}
-\input{PfCMentalo}
-\input{PfCCalculsCroises}
-\input{PfCShikaku}
-\input{PfCKakuro}
-\input{PfCKenKen}
-\input{PfCPixelArt}
-\input{PfCYohaku}
-\input{PfCRose}
-\input{PfCPuissanceQuatre}
-\input{PfCBillard}
-\input{PfCRepresenterEntier}
-\input{PfCCAN}
-\input{PfCFrise}
-\input{PfCGeometrie}
-\input{PfCEnquete}
-\input{PfCModeleBarre}
-\input{PfCFicheMemo}
-\input{PfCOperationsTrou}
-\input{PfCCartographie}
-\input{PfCReseauxSociaux}
-\input{PfCBonSortie}
-\input{PfCEcritureLettres}
-\input{PfCDecompFracDeci}
-\input{PfCPyramideCalculs}
-\input{PfCTablesOperations}
-\input{PfCDefiTables}
-\input{PfCRangementNombres}
-\input{PfCMotsCodes}
-\input{PfCLabyrintheJeu}
-\input{PfCTriominos}
-\input{PfCLabyrintheNombre}
-\input{PfCMotsCroises}
-\input{PfCMotsEmpiles}
-\input{PfCColorilude}
-\input{PfCMosaique}
-\input{PfCQuiSuisJe}
-\input{PfCDessinGradue}
-\input{PfCAutonomie}
-\input{PfCCalculatrice}
-\input{PfCQuestionsFlash}
-\input{PfCRapido}
-\input{PfCRepresenterFraction}
-\input{PfCQuestionsRelier}
-\input{PfCEcrireunQCM}
-\input{PfCSommeAngles}
-\input{PfCPythagore}
-\input{PfCDistributivite}
-\input{PfCFactorisation}
-\input{PfCDecomposerNombrePremier}
-\input{PfCSimplifierFraction}
-\input{PfCThales}
-\input{PfCTrigonometrie}
-\input{PfCStatistiques}
-\input{PfCDiagrammeRadar}
-\input{PfCBarreNiveaux}
-\input{PfCResoudreEquation}
-\input{PfCPropor}
-\input{PfCPourcentage}
-\input{PfCDessinerRatio}
-\input{PfCCartesMentales}
-\input{PfCProprietesDroites}
-\input{PfCFonctionAffine}
-\input{PfCNotionFonction}
-\input{PfCRepresentationGraphique}
-\input{PfCRappelsFormules}
-\input{PfCProbabilites}
-\input{PfCReperage}
-
-%%%
-% Puissances
-%%%
-\newcommand\Puissances[2]{%
-  \ensuremath{%
-    \xintifboolexpr{#2==0}{1}{\xintifboolexpr{#2>0}{\xdef\TotalP{\fpeval{#2-1}}#1\xintFor* ##1 in{\xintSeq{1}{\TotalP}}\do{\times#1}}{\xdef\TotalP{\fpeval{-#2-1}}\frac{1}{#1\xintFor* ##1 in{\xintSeq{1}{\TotalP}}\do{\times#1}}}}%
-  }%
-}%
-
-\input{PfCEcritureUnites}
-\input{PfCTableauxUnites}
-\input{PfCCartesJeux}
-\input{PfCRepresenterTableur}
-\input{PfCDomino}
-\input{PfCProgrammeCalcul}
-\input{PfCPapiers}
-\input{PfCScratch}
\ No newline at end of file



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