% 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{2023/08/16}%
\let\PfCfiledate\filedate%
\def\fileversion{0.99-z-s}%
\let\PfCfileversion\fileversion%
\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%

\RequirePackage{verbatim}%

\RequirePackage{mathtools}%

\newif\if@shellescape \@shellescapetrue%
\newif\if@amssymb \@amssymbtrue%
\DeclareOption{nonshellescape}{\@shellescapefalse}%
\DeclareOption{nonamssymb}{\@amssymbfalse}%
\ProcessOptions\relax%

\if@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%
}%
\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}{£}%


\RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
\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@shellescape%
\RequirePackage[shellescape,latex]{gmp}%inclusion de figures metapost "à la volée"%
\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}%
\else%
\RequirePackage[latex]{gmp}%inclusion de figures metapost "à la volée"%
\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%
\fi%

\RequirePackage{xintexpr}%
\RequirePackage{listofitems}%
\RequirePackage{datatool}%
\RequirePackage{multido}%

\RequirePackage{xlop}%
\RequirePackage{xfp}%

\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}%Pour l'environnement Twitter
\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

%% 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]{%
  \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@th\ialign{%
      \strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil%
      &&\quad\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$%
      \hfil\crcr #1\crcr}}\,}%
\catcode`\@=12%

%%%
% Commandes "utiles"
%%%
%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%
\NewDocumentCommand\Dotfill{}{%
\leavevmode%
\cleaders\hb@xt@.44em{\hss\xleaders\hrule width0.33em\hss}\hfill%
\kern\z@}%

\NewDocumentCommand\PfCdotover{}{\leavevmode\cleaders\hb@xt@ .22em{\hss $\cdot$\hss}\hfill\kern\z@}%

\makeatother%

\NewDocumentCommand\pointilles{o}{%
  \IfNoValueTF{#1}{\Dotfill}{\makebox[#1]{\Dotfill}}%
}%

\NewDocumentCommand\Lignespointilles{m}{%
  \xintifboolexpr{#1>1}{%
    \xintFor* ##1 in {\xintSeq {1}{#1}}\do{%
      \pointilles\par%
    }%
  }{}%
}%

%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%
}

\newcommand\MelangeListe[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)}}%
      \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%
}%

%%%
% 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
}%
\input{PfCDefiCalc}
\input{PfCMulArt}
\input{PfCGrimuku}
\input{PfCHorloge}
\input{PfCCible}
\input{PfCMulPiecesPuzzle}
\input{PfCPyraVoca}
\input{PfCAutomatismes}
\input{PfCNumberHive}
\input{PfCPatronPaves}
\input{PfCErathostene}
\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\multido{\i=1+1}{\TotalP}{\times#1}}{\xdef\TotalP{\fpeval{-#2-1}}\frac{1}{#1\multido{\i=1+1}{\TotalP}{\times#1}}}}%
  }%
}

\input{PfCEcritureUnites}
\input{PfCTableauxUnites}
\input{PfCCartesJeux}
\input{PfCRepresenterTableur}
\input{PfCDomino}
\input{PfCProgrammeCalcul}
\input{PfCPapiers}
\input{PfCScratch}