\section*{Avant-propos}
L'idée de ce \og package\fg{} est venue naturellement après plusieurs
années d'utilisation de \LaTeX{} en collège et surtout, après un stage
animé en janvier 2020. Rassembler les commandes déjà écrites, en
améliorer d'autres, en créer de nouvelles\dots{} sont les besoins
ressentis après cette animation. Le confinement, malheureusement, m'a
permis de mettre en \oe uvre ce projet.

Il a pris corps au fil des idées, des découvertes de programmation,
des échanges avec Thomas {\sc Dehon}\footnote{Un ancien élève, devenu
  collègue.}. Il se veut {\em pratico-pratique}, sans prétention aucune
concernant la programmation {\em latexienne}. Néanmoins, les facilités
qu'il apporte devraient aider les collègues souhaitant
sauter le pas et utiliser \LaTeX{} en collège.


Pour la partie technique, différents packages\footnote{Tous sont
  disponibles dans les distributions \TeX Live ou Mik\TeX.} sont
automatiquement chargés. En voici la liste exhaustive\footnote{Cela permettra d'alléger le préambule des utilisateurs.} :
\begin{multicols}{2}
  \begin{itemize}
  \item\lstinline!verbatim!
  \item\lstinline!mathtools!
  \item\lstinline!amssymb!
  \item\lstinline!siunitx!
  \item \lstinline!xcolor! avec les options \lstinline!table,svgnames!
  \item\lstinline!xstring!
  \item\lstinline!simplekv!
  \item\lstinline!ifthen!
  \item\lstinline!modulus!
  \item\lstinline!xinttools!
  \item\lstinline!iftex!
  \item\lstinline!luacas!
  \item\lstinline!luamplib!
  \item\lstinline!gmp! avec les options \lstinline!shellescape,latex!
  \item\lstinline!xintexpr!
  \item\lstinline!listofitems!
  \item\lstinline!datatool!
%  \item\lstinline!multido!
  \item\lstinline!xlop!
  \item\lstinline!tcolorbox!
  \item\lstinline!tikz!
  \item\lstinline!multicol!
  \item\lstinline!hhline!
  \item\lstinline!stackengine!
  \item\lstinline!cancel! avec l'option \lstinline!thicklines! 
  \item\lstinline!fontawesome5!
  \item\lstinline!pifont!
  \item\lstinline!nicematrix!
  \item\lstinline!multirow!
  \item\lstinline!longtable!
  \item\lstinline!fmtcount!
  \item\lstinline!ifoddpage!%ok
  \end{itemize}
\end{multicols}

En complément, des
packages\footnote{Tous sont joints au package et leur
  installation est faite en même temps que celle du package \lstinline!ProfCollege!.}\footnote{Leurs noms ont été modifiés (suppression du tiret) pour une meilleure utilisation sous Mac.}\MP{} sont nécessaires :
\begin{itemize}
\item {\ttfamily\color{DodgerBlue}PfCConstantes.mp} pour définir quelques constantes;
\item {\ttfamily\color{DodgerBlue}PfCCalculatrice.mp} pour les touches et écran d'une calculatrice;
\item {\ttfamily\color{DodgerBlue}PfCLaTeX.mp} pour l'écriture de certaines étiquettes;
\item {\ttfamily\color{DodgerBlue}PfCGeometrie.mp} pour les tracés géométriques;
  \item {\ttfamily\color{DodgerBlue}PfCMonde.mp} pour la partie Cartographie;
\item {\ttfamily\color{DodgerBlue}PfCAfficheur.mp} pour l'utilisation d'un afficheur
  \og sept segments\fg;
\item {\ttfamily\color{DodgerBlue}PfCEngrenages.mp} pour dessiner des engrenages;
\item {\ttfamily\color{DodgerBlue}PfCMosaique.mp} pour créer des\dots{} mosaïques;
\item {\ttfamily\color{DodgerBlue}PfCSvgnames.mp} pour avoir accès à certaines couleurs prédéfinies;
\item {\ttfamily\color{DodgerBlue}PfCArithmetique.mp} pour les tracés des arbres arithmétiques;
\item {\ttfamily\color{DodgerBlue}PfCPseudo.mp} pour afficher des algorithmes dans un pseudo-langage;
\item {\ttfamily\color{DodgerBlue}PfCSolid.mp} et {\ttfamily\color{DodgerBlue}PfCObjets.mp} pour afficher des solides de l'espace;
\item et {\ttfamily\color{DodgerBlue}PfCScratch.mp} / {\ttfamily\color{DodgerBlue}PfCScratchpdf.mp} pour afficher les briques utilisées par Scratch.
\end{itemize}

\bigskip

Enfin, je tiens à remercier toutes les personnes avec qui j'ai pu échanger au sujet de ce package : elles sont citées au fil du document.
%\clearpage
\section*{Installation}
Le package \lstinline!ProfCollege! étant disponible sur
\url{https://ctan.org/pkg/profcollege}, il est contenu dans les distributions \TeX{} Live et
Mik\TeX{} récentes.
\\Cependant, si vous utilisez une ancienne version de ces
distributions (ou d'autres), il faudra certainement installer
manuellement le package \lstinline!ProfCollege! ainsi que les packages
nécessaires à son utilisation. Dans ce cas, l'installation du package 
\lstinline!ProfCollege! se fera dans un répertoire local\footnote{%
  Pour les fichiers \lstinline!tex! :
  \begin{itemize}
  \item Sous Linux :
    \directory{/home/\metamk{utilisateur}/texmf/tex/latex/}
  \item Sous Mac : \directory{/Users/\metamk{utilisateur}/Library/texmf/tex/latex/}
  \item Sous Windows : \directory{C:/Users/\metamk{utilisateur}/texmf/tex/latex/}
  \end{itemize}
  Pour les fichiers \MP{} :
  \begin{itemize}
  \item Sous Linux :
    \directory{/home/\metamk{utilisateur}/texmf/metapost/}
  \item Sous Mac : \directory{/Users/\metamk{utilisateur}/Library/texmf/metapost/}
  \item Sous Windows : \directory{C:/Users/\metamk{utilisateur}/texmf/metapost/}
  \end{itemize}\vspace{-\baselineskip}
}\footnote{\`A noter que sous Windows, avec la distribution MikTeX, il
  faudra {\em en plus} :
  \begin{itemize}
  \item ouvrir la console MikTeX et la page des préférences;
  \item prendre l'onglet \og Directories\fg{} (ou répertoires);
  \item cliquer sur \og Add\fg{} (ou Ajouter) et chercher le dossier
    \directory{C:/Users/\metamk{utilisateur}/texmf/tex/latex/}
  \end{itemize}\vspace{-\baselineskip}
}.
%\clearpage
\section*{Lecture de la documentation}
Les commandes fournies par le package \lstinline!ProfCollege! sont, pour la plupart,
construites sur un système de clés. Ce sont des paramètres passés à
une commande pour modifier / adapter son comportement.\\Dans l'exemple
ci-dessous, la clé \Cle{Reciproque} permet à la commande
\lstinline!\Pythagore! d'afficher la preuve qu'un triangle est rectangle.%e le triangle $ABC$ est un triangle rectangle en $B$.
\begin{Codes}[]{}{}
\Pythagore[Reciproque]{ABC}{5}{4}{3}
\end{Codes}
Selon les choix pédagogiques, on peut vouloir écrire les calculs en
colonnes. Dans ce cas, pour modifier le comportement de la clé \Cle{Reciproque}, on
peut utiliser la \og sous-clé\fg{} \Cle{ReciColonnes}.
\begin{Codes}[]{}{}
\Pythagore[Reciproque,ReciColonnes]{ABC}{5}{4}{3}
\end{Codes}
Un cadre tel que celui ci-dessous explique ce comportement.
\begin{tcolorbox}[tikzcle]
\begin{Key}{Reciproque}{false}
  effectue la preuve qu'un triangle est ou n'est pas rectangle.
  \begin{SousDescription}
  \item[La clé \Cle{ReciColonnes}\footnotemark]\DefautR{false}
    affiche les calculs en colonnes et non en lignes.
  \end{SousDescription}
\end{Key}
\end{tcolorbox}

Afin de ne pas trop surcharger la lecture et la documentation, un cadre tel que celui-ci invite le lecteur à tester le code proposé à l'aide d'un copier-coller.
\begin{Exemple}[]{}
\Engrenages{0.75/11}  
\end{Exemple}
\footnotetext{Le trombone utilisé est issu du package \lstinline!bclogo! de
  Maxime {\sc Chupin}.}
%\clearpage
De plus, dans cette documentation, il est souvent fait état de trois
modes :
\begin{itemize}
\item le mode texte : c'est le mode\dots{} texte \RKbigsmile{};
\item le mode mathématique : c'est lorsqu'on se trouve dans un
  environnement \lstinline!$...$!;
\item le mode mathématique hors texte : c'est lorsqu'on se trouve dans
  un environnement \lstinline!\[...\]!.
\end{itemize}

\smallskip

Selon les commandes, elles peuvent être utilisées dans un ou plusieurs
de ces modes. Par exemple :
\begin{itemize}
\item la commande \lstinline!\Pythagore[Reciproque]{ABC}{5}{4}{3}!
  est acceptée en mode texte alors qu'en mode mathématique, elle
  provoque une erreur;
\end{itemize}
  \begin{tcolorbox}[colback=white,colframe=gray!50,bottom=0pt]
\lstinline!$\Pythagore[Reciproque]{ABC}{5}{4}{3}$!
\tcblower
\begin{verbatim}
      Undefined control sequence.
<argument> Dans le triangle $ABC$, $[\NomA 
                            \NomC ]$ est le plus grand côté.\ifboolKV [Cl
l.1  $\Pythagore[Reciproque]{ABC}{5}{4}{3}$
\end{verbatim}
\end{tcolorbox}
\begin{itemize}
\item alors que la commande \lstinline!\Simplification{15}{25}!
  s'utilise indifférement du mode choisi.
\end{itemize}
  \begin{Codes}[]{0.35}{\small}
\og $\frac{15}{25}$ se simplifie en \Simplification{15}{25}\fg{} ou \og On écrit $\frac{15}{25}=\Simplification{15}{25}$\fg{} ou \og La simplification de $\frac{15}{25}$ est :%
\[\Simplification{15}{25}\]
\end{Codes}
\begin{tcolorbox}[tikzRemarque]
  Lors de la description d'une commande, si rien n'est indiqué, cela
  signifie qu'elle est utilisable {\em uniquement} en mode texte. Sinon, les
  modes adéquats sont précisés.
\end{tcolorbox}

\bigskip

Parfois, dans les codes proposés, on aperçoit un \lstinline!%!
(tel que dans le code ci-dessus). Leur rôle peut être :
\begin{itemize}
\item d'annoncer un commentaire;
\item d'éviter les espaces parasites qui pourraient engendrer une mise
  en forme incorrecte des documents produits;
\item d'\og aérer\fg{} le code proposé.
\end{itemize}
\clearpage
\section{Utiliser le package \textcolor{DodgerBlue}{\ttfamily ProfCollege}}
Comme tous les autres packages (All)\LaTeX{}, il faut utiliser la
commande \lstinline!\usepackage{ProfCollege}!\footnote{On se réfèrera
  à la page \pageref{ProblemesConnus} pour les problèmes
  connus.}\footnote{Le package \lstinline!ProfCollege! est utilisable,
  sauf mention contraire, en \hologo{pdfLaTeX}, \hologo{XeLaTeX} {\em
    et} \hologo{LuaLaTeX} (suite à une proposition de Maxime {\sc Chupin}).}.
\begin{tcolorbox}[colframe=white!75!black,colback=white,]
  \begin{lstlisting}[frame=]
\documentclass{article}
\usepackage{ProfCollege}
\begin{document}
  \Pythagore[Entier,Exact]{ABC}{3}{4}{}
\end{document}
\end{lstlisting}
\tcblower
\begin{center}
  \includegraphics{St-Intro-crop}
\end{center}
\end{tcolorbox}
%\clearpage
%Après compilation du code ci-dessus, on obtient le résultat suivant :

Le résultat produit est conforme aux attentes, le package \lstinline!ProfCollege!
ne gère ni les fontes (c'est la fonte de base qui est utilisée), ni le format de
page (la géométrie de la page obtenue est celle de base)\dots{} Voici
un exemple un peu plus complet.
\begin{tcolorbox}[colframe=white!75!black,colback=white,]
  \begin{lstlisting}[frame=]
\documentclass[12pt,a4paper,french]{article}
\usepackage{ProfCollege}
% Pour gérer la fonte.
\usepackage{fourier}
% Pour gérer la géométrie de la page.
\usepackage[margin=1cm,noheadfoot]{geometry}
% Pour utiliser les usages français grâce au <french> de l'option de classe.
\usepackage{babel}
\begin{document}
  \ResolEquation[Lettre=t,Entier,Simplification,Solution]{6}{-3}{1}{2}
\end{document}
\end{lstlisting}
\tcblower
\includegraphics[]{St-Intro-1-crop.pdf}
\end{tcolorbox}
\clearpage
\begin{tcolorbox}[tikzRemarque,bottom=0pt]
  \textbf{Au sujet des fontes}\par
  \begin{itemize}
  \item Sous \hologo{XeLaTeX} \& \hologo{LuaLaTeX}, le package \lstinline!ProfCollege! utilisant le package \lstinline!mathtools!, il est nécessaire de placer l'appel au package \lstinline!ProfCollege! {\em avant} l'appel des fontes.
  \item Sous \hologo{XeLaTeX} \& \hologo{LuaLaTeX}, certaines fontes (par exemple \lstinline!fourier-otf!) redéfinissent les fontes générées par le package \lstinline!amssymb! et peuvent provoquer un \og warning\fg{} au mieux, une erreur de compilation au pire. Pour cela, on pourra appeler le package \lstinline!ProfCollege! avec l'option \lstinline!nonamssymb! :
    \begin{lstlisting}[frame=]
\documentclass[12pt,a4paper,french]{article}
\usepackage[nonamssymb]{ProfCollege}
\usepackage{fourier-otf}
\end{lstlisting}
  \end{itemize}
\end{tcolorbox}
%\clearpage%\subsection*{Comment compiler un document utilisant le package \lstinline!ProfCollege! ?}
Lorsqu'on utilise le package \lstinline!ProfCollege!, une double compilation est
parfois nécessaire, par exemple pour obtenir le
positionnement correct\footnote{Ce positionnement correct des flèches est géré
  par \TIKZ.} des flèches dans le tableau ci-dessous.
\begin{Codes}[middle=1em,bottom=1em,listing side text]{0.55}{}
\Tableau[Metre,Fleches]{}
\end{Codes}
Cette double compilation est indiquée par le symbole \faIcon{sync-alt}.
\begin{tcolorbox}[tikzcle]
\begin{Key}{Metre}{false}
  affiche le tableau des unités de longueur.
  \begin{SousDescription}
  \item[La clé \CleD{Fleches}]\DefautR{false}
    affiche les liens entre deux unités consécutives.
  \end{SousDescription}
\end{Key}
\end{tcolorbox}
\bigskip

De même, pour les utilisateurs de \hologo{pdfLaTeX} et
\hologo{XeLaTeX}, une compilation en
\textcolor{red}{\lstinline!shell-escape!}\footnote{Pour des
  compléments d'information, on se réfèrera à la page
  \pageref{Shell}.} est parfois nécessaire, par exemple pour obtenir
la figure ci-dessous.
\begin{Codes}[listing side text]{0.45}{}
\Ratio[Figure]{2,3}
\end{Codes}
Cette compilation en \textcolor{red}{\lstinline!shell-escape!} est indiquée par le symbole \faExternalLink*.
\begin{tcolorbox}[tikzcle]
\begin{KeyS}{Figure}{false}
  permet d'afficher une figure en accord avec le ratio demandé.
\end{KeyS}
\end{tcolorbox}
%\clearpage
L'écriture des nombres est un point essentiel de l'enseignement des
mathématiques. Le package \lstinline!ProfCollege! charge le
package \lstinline!siunitx! afin d'avoir un affichage correct des
divers nombres intervenant dans les calculs ainsi qu'une gestion
automatique des espaces lors d'utilisation d'unités de grandeurs (page
\pageref{Grandeurs}).
\begin{Codes}[listing side text]{0.45}{\footnotesize}
  1000 est différent de $1 000$ lui-même différent de 1 000.

  1000 est différent de $1 000$ lui-même différent de \num{1000}.
\end{Codes}
\clearpage
\selectlanguage{english}
\section{For foreigner teacher}\label{ForeignTeacher}
As a package for french teacher, the \lstinline!ProfCollege! package use french notations. In a beginning of internationalization, some commands can use $\cdot$ instead $\times$ for multiplication and $:$ instead $\div$ for division :
\begin{itemize}
\item \lstinline!\RoseMul! (page \pageref{RoseTable}) and \lstinline!\RondeInfernale! (page \pageref{DocRondeInfernale}) as \MP{} commands have some new keys;
\item \lstinline!\Serpent! (page \pageref{DocSerpent}), \lstinline!\CibleQuatreOperations! (page \pageref{DocCibleQOp}), \lstinline!\DefiCalculatrice! (page \pageref{DocDefiCalc}), \lstinline!\Garam! (page \pageref{DocGaram}), \lstinline!\CompteBon! (page \pageref{DocCompteBon}) and \lstinline!\CalculsCroises! (page \pageref{DocCalculsCroises}) as \LaTeX{} commands use \lstinline!\PfCSymbolTimes! and \lstinline!\PfCSymbolDiv!. User can redefine it :
\begin{Codes}[listing only]{}{}
\def\PfCSymbolTimes{\cdot}
\def\PfCSymbolDiv{:}
\end{Codes}
\end{itemize}
\selectlanguage{french}