\index[cle]{Propor@\lstinline+\Propor+}
La commande \lstinline!\Propor! permet d'afficher un tableau de proportionnalité (ou non),
auquel sont associées les fonctions utiles\footnote{Flèches de
  définition; de linéarité; du coefficient de proportionnalité.} aux
enseignants. Elle a la forme suivante :
\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \Propor[!\sffamily\textlangle clés{\sffamily\textrangle}!]{!\sffamily\textlangle Liste des éléments par colonne{\sffamily\textrangle}!}
\end{lstlisting}
où
\begin{itemize}
\item{\sffamily\textlangle}\lstinline!clés!{\sffamily\textrangle} constituent un ensemble
  d'options pour paramétrer la commande (paramètres optionnels);
  \item{\sffamily\textlangle}{\ttfamily Liste }\lstinline!des éléments par colonne!{\sffamily\textrangle} est donnée sous la forme\footnote{\lstinline!c1! colonne 1; \lstinline!l1! ligne 1\dots} \lstinline!c1-l1 /  c1-l2, c2-l1 / c2-l2!\dots
  \end{itemize}
\begin{Codes}[listing side text]{0.6}{}
\Propor{1/2,3/5,6/9,10/11}
\end{Codes}
\begin{tcolorbox}[tikzcle]
  \index[cle]{Propor@\lstinline+\Propor+!Vertical|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!GrandeurA|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!GrandeurB|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!Math|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!Stretch|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!Largeur|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!CouleurTab|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!Simple|mygobble}
  \index[cle]{Propor@\lstinline+\Propor+!Condense|mygobble}
\begin{Key}{Vertical}{false}
  affiche le tableau verticalement.
\end{Key}
\begin{Key}{GrandeurA}{Grandeur A}
  modifie la légende de la première ligne (ou de la première colonne).
\end{Key}
\begin{Key}{GrandeurB}{Grandeur B}
  modifie la légende de la deuxième ligne (ou de la deuxième colonne).
\end{Key}
\begin{Key}{Math}{false}
  permet d'inscrire des éléments mathématiques dans le tableau.
  \begin{tcolorbox}[tikzRemarque]
    Dans ce cas, le formatage des
    nombres n'est pas mis en place\dots{} On utilise donc \lstinline!\\num\{3.5\}!.
  \end{tcolorbox}
\end{Key}
\begin{Key}{Stretch}{1}
  est un paramètre multiplicatif qui permet de modifier la hauteur
  des lignes du tableau.
\end{Key}
\begin{Key}{Largeur}{1cm}
  modifie la largeur des colonnes \og numériques\fg{} du tableau.
\end{Key}
\begin{Key}{CouleurTab}{gray!15}
  modifie la couleur de la première colonne du tableau.
\end{Key}
\begin{Key}{Simple}{false}
  n'affiche pas, lorsqu'elle est positionnée à \lstinline!true!, la première colonne du tableau associée aux grandeurs.
\end{Key}
\begin{Key}{Condense}{false}
  supprime la création des flèches hautes et basses afin de condenser les espaces verticaux autour du tableau créé.
\end{Key}
\end{tcolorbox}
\begin{Exemple}[]{}
\Propor[Vertical]{1/2,3/5,6/9,10/11}

\begin{center}
  \Propor[GrandeurA=Temps (s),GrandeurB=Distance ({\Lg[m]{}})]{1/2,3/5,6/9}%
\end{center}

\Propor[Math,GrandeurA=Rayon (\Lg{}),GrandeurB=Périmètre (\Lg{})]{1/$2\pi$,4/$8\pi$,5/$10\pi$}
\end{Exemple}
\clearpage
\begin{Codes}{0.5}{}
\Propor[Math,Vertical,Largeur=3cm,GrandeurA=Rayon (\Lg{}),GrandeurB=Périmètre (\Lg{})]{1/$2\pi$,4/$8\pi$,5/$10\pi$}
\end{Codes}

\begin{multicols}{2}
  \begin{center}
    \begin{Codes}[]{0.4}{}
% Pas terrible.
\Propor[Math]{2/\num{3.4},\dots/51,$\dfrac{3}{4}$/\dots}
    \end{Codes}
  \end{center}
    \begin{center}
      \begin{Codes}[]{0.4}{}
% C'est mieux.
\Propor[Math,Stretch=2]{2/\num{3.4},\dots/51,$\dfrac{3}{4}$/\dots}
    \end{Codes}
  \end{center}
\end{multicols}

\begin{multicols}{2}
  \begin{center}
    \begin{Codes}[]{0.4}{}
% Pas terrible.
\Propor[Math]{\num{125000}/\dots,\dots/\num{51000000}}
    \end{Codes}
  \end{center}
    \begin{center}
      \begin{Codes}[]{0.4}{}
% C'est mieux.
\Propor[Math,Largeur=1.75cm]{\num{125000}/\dots,\dots/\num{51000000}}
    \end{Codes}
  \end{center}
\end{multicols}

\begin{Codes}[listing side text]{0.4}{}
\Propor[CouleurTab=Cornsilk]{2/5,3/10,7/35}
\end{Codes}
Une fois le tableau construit, il y a plusieurs \og marqueurs
invisibles\fg{} permettant de se repérer :
\begin{center}
  \begin{tabular}{c|c|c|c|c|c|c}%
    \multicolumn{1}{c}{}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{H\ding{172}}&\multicolumn{1}{c}{H\ding{173}}&\multicolumn{1}{c}{\hbox to2cm{\dotfill}}&\multicolumn{1}{c}{}&\\
    \hhline{~---~-~}
    \multicolumn{1}{c|}{G\ding{172}}&\cellcolor{gray!15}Grandeur A&\hbox to1cm{}&\hbox to1cm{}&\hbox to2cm{\dotfill}&\hbox to1cm{}&\multicolumn{1}{c}{D\ding{172}}\\
    \hhline{~---~-~}
    \multicolumn{1}{c|}{G\ding{173}}&\cellcolor{gray!15}Grandeur B&\hbox to1cm{}&\hbox to1cm{}&\hbox to2cm{\dotfill}&\hbox to1cm{}&\multicolumn{1}{c}{D\ding{173}}\\
    \hhline{~---~-~}
\multicolumn{1}{c}{}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{B\ding{172}}&\multicolumn{1}{c}{B\ding{173}}&\multicolumn{1}{c}{\hbox to2cm{\dotfill}}\\
\end{tabular}
\end{center}
ou pour les tableaux verticaux :
\begin{center}
  \begin{tabular}{c|c|c|c}%
    \multicolumn{1}{c}{}&\multicolumn{1}{c}{H\ding{172}}&\multicolumn{1}{c}{H\ding{173}}&\\
    \hhline{~--~}
                        &\cellcolor{gray!15}Grandeur A&\cellcolor{gray!15}Grandeur B&\\
    \hhline{~--~}
    \multicolumn{1}{c|}{G\ding{172}}&&&\multicolumn{1}{c}{D\ding{172}}\\
    \hhline{~--~}
    \multicolumn{1}{c|}{G\ding{173}}&&&\multicolumn{1}{c}{D\ding{173}}\\
    \hhline{~--~}
    \multicolumn{1}{c}{$\vdots$}&\multicolumn{1}{c}{$\vdots$}&\multicolumn{1}{c}{$\vdots$}&\multicolumn{1}{c}{$\vdots$}\\
    \multicolumn{1}{c}{$\vdots$}&\multicolumn{1}{c}{$\vdots$}&\multicolumn{1}{c}{$\vdots$}&\multicolumn{1}{c}{$\vdots$}\\
    \hhline{~--~}
    \multicolumn{1}{c|}{}&&&\multicolumn{1}{c}{}\\
    \hhline{~--~}
    \multicolumn{1}{c}{}&\multicolumn{1}{c}{B\ding{172}}&\multicolumn{1}{c}{B\ding{173}}&\\
\end{tabular}
\end{center}

On dispose alors des {\em commandes}\footnote{Ce ne sont pas des clés
  !} suivantes permettant de relier ces marqueurs :
\begin{enumerate}[label=\textbullet]
\item
  \lstinline!\FlechesPH{a}{b}{!{\sffamily\textlangle}\lstinline!texte!{\sffamily\textrangle}\lstinline!}!$^{\text{\faIcon{sync-alt}}}$
  pour relier les marqueurs H\lstinline!a! et H\lstinline!b! par une
  flèche associée au texte {\sffamily\textlangle texte\textrangle};
\item
  \lstinline!\FlechesPB{a}{b}{!{\sffamily\textlangle}\lstinline!texte!{\sffamily\textrangle}\lstinline!}!$^{\text{\faIcon{sync-alt}}}$
  pour relier les marqueurs B\lstinline!a! et B\lstinline!b! par une
  flèche associée au texte {\sffamily\textlangle texte\textrangle};
\item\lstinline!\FlechesPG{a}{b}{!{\sffamily\textlangle}\lstinline!texte!{\sffamily\textrangle}\lstinline!}!$^{\text{\faIcon{sync-alt}}}$
  pour relier les marqueurs G\lstinline!a! et G\lstinline!b! par une
  flèche associée au texte {\sffamily\textlangle texte\textrangle};
\item\lstinline!\FlechesPD{a}{b}{!{\sffamily\textlangle}\lstinline!texte!{\sffamily\textrangle}\lstinline!}!$^{\text{\faIcon{sync-alt}}}$
  pour relier les marqueurs D\lstinline!a! et D\lstinline!b! par une
  flèche associée au texte {\sffamily\textlangle texte\textrangle};
\item \lstinline!\FlecheLineaireH{a}{b}{c}{opération}! pour associer linéairement les marqueurs H\lstinline!a! et H\lstinline!b! avec opération afin d'obtenir le marqueur H\lstinline!c! (les commandes \lstinline!\FlecheLineaireB{a}{b}{c}{opération}!, \lstinline!\FlecheLineaireG{a}{b}{c}{opération}! et \lstinline!\FlecheLineaireD{a}{b}{c}{opération}! sont également disponibles);
  \item \lstinline!\FlechePCG{a}{b}! pour obtenir le tracé \og d'un produit en croix\fg{} d'extrémité la cellule gauche de la ligne \lstinline!a! en partant de la cellule gauche de la ligne \lstinline!b!;
\item \lstinline!\FlechePCD{a}{b}! pour obtenir le tracé \og d'un produit en croix\fg{} d'extrémité la cellule droite de la ligne \lstinline!a! en partant de la cellule droite de la ligne  \lstinline!b!;
\item \lstinline!\FlechePCH{a}{b}! pour obtenir le tracé \og d'un produit en croix\fg{} d'extrémité la cellule haute de la colonne \lstinline!a! en partant de la cellule haute de la colonne \lstinline!b!;
\item \lstinline!\FlechePCB{a}{b}! pour obtenir le tracé \og d'un produit en croix\fg{} d'extrémité la cellule basse de la colonne \lstinline!a! en partant de la cellule basse de la colonne \lstinline!b!.
\end{enumerate}  
    \begin{Codes}[listing side text]{0.5}{\small}
\begin{center}
  \Propor{1/2.5,2/5,5/12.5}
\end{center}
\FlechesPH{1}{2}{$\times2$}
\FlechesPB{1}{3}{$\times5$}
\FlechesPD{1}{2}{$\times\num{2.5}$}
\FlechesPG{2}{1}{$\div\num{2.5}$}
\end{Codes}
    \begin{Codes}[listing side text]{0.5}{\small}
\begin{center}
  \Propor[Vertical,Largeur=3cm]{1/2.5,2/5,5/12.5}
\end{center}
\FlechesPH{1}{2}{$\times\num{2.5}$}
\FlechesPB{2}{1}{$\div\num{2.5}$}
\FlechesPD{1}{2}{$\times\num{2}$}
\FlechesPG{2}{1}{$\div\num{2}$}
\end{Codes}

  \begin{Codes}[]{0.4}{}
% L'affichage final n'est pas terrible.
\begin{center}
  \Propor[Stretch=1.25,Math,Largeur=0.75cm,%
  GrandeurA=Hauteur $h$ (\Lg{}),%
  GrandeurB=Volume (en \Vol{}) d'un cylindre de rayon \Lg{5} et de hauteur $h$%
  ]{2/$50\pi$,3/$75\pi$,5/}
\end{center}
\FlecheLineaireH{1}{2}{3}{$+$}
\FlecheLineaireB{1}{2}{3}{$+$}
\end{Codes}
\begin{Exemple}[]{}
% Le rendu est maintenant meilleur.
\begin{center}
  \Propor[Stretch=1.25,%
  Math,%
  GrandeurA=Hauteur $h$ (\Lg{}),%
  GrandeurB=\begin{tabular}{c}Volume (en \Vol{}) d'un cylindre\\ de rayon \Lg{5} et de hauteur $h$\end{tabular},%
  Largeur=0.75cm]{2/$50\pi$,3/$75\pi$,5/}
\end{center}
\FlecheLineaireH{1}{2}{3}{$+$}
\FlecheLineaireB{1}{2}{3}{$+$}
\end{Exemple}
  \begin{Codes}[]{0.4}{}
\begin{center}
\Propor[Stretch=1.25,%
Math,%
GrandeurA=Hauteur $h$ (\Lg{}),%
GrandeurB=\begin{tabular}{c}Volume (en \Vol{}) d'un cylindre\\ de rayon \Lg{5} et
de hauteur $h$\end{tabular},%
Largeur=0.75cm]{2/$50\pi$,3/$75\pi$,5/}
\end{center}
\FlecheLineaireH{1}{2}{3}{$+$}
\FlecheLineaireB{1}{2}{3}{$+$}
\FlechePCB{3}{2}
  \end{Codes}

\begin{Codes}[listing side text]{0.4}{}
\begin{center}
  \Propor[Simple,
  Math,
  Stretch=1.25,%
  ]{3/\num{5.1},7/\num{11.9},10/?}
\end{center}
\FlecheLineaireH{1}{2}{3}{$+$}
\FlecheLineaireB{1}{2}{3}{$+$}
\end{Codes}
\begin{Codes}[listing side text]{0.4}{}
\begin{center}
  \Propor[Simple,
  Math,
  Stretch=1.25,%
  ]{\num{5.1}/3,?/10,\num{11.9}/7}
\end{center}
\FlechePCH{2}{3}
\end{Codes}
\clearpage
\subsection*{Au sujet des flèches} Le style des flèches est conditionné au style \lstinline!FlechePropor! qui est un style \TIKZ. On peut donc le redéfinir comme le montre l'exemple suivant.
\begin{Codes}[listing side text]{0.5}{}
% Pour accéder à ce changement de style particulier,
% il faudra ajouter, dans le préambule :
% \usetikzlibrary{arrows.meta}

\tikzstyle{FlechePropor}=[-{Stealth[length=3mm, width=2mm]}]

\begin{center}
\Propor[Stretch=2]{1/2.5,2/5,5/12.5}
\end{center}
\FlechesPH{1}{2}{$\times2$}
\FlechesPB{1}{3}{$\times5$}
\FlechesPD{1}{2}{$\times\num{2.5}$}
\FlechesPG{2}{1}{$\div\num{2.5}$}
\end{Codes}