\clearpage
\section{Le théorème de Thalès}\label{DocThales}
\index[cle]{Thales@\lstinline+\Thales+}
La commande \lstinline!\Thales! permet de rédiger la solution d'un
exercice basé sur le théorème de Thalès. Elle a la forme suivante :

\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \Thales[!\sffamily\textlangle clés\textrangle!]{!\sffamily\textlangle Noms des points considérés\textrangle!}{a}{b}{c}{d}{e}{f}
\end{lstlisting}
où
\begin{itemize}
\item\textlangle\lstinline!clés!\textrangle{} constituent un ensemble d'options pour paramétrer la commande (paramètres optionnels);
\item \textlangle{\ttfamily Noms }\lstinline!des points considérés!\textrangle{}
  sont donnés sous la forme \lstinline!ABCMN! où $ABC$ est le \og triangle
  de base\fg{} et $M$, $N$ appartenant respectivement aux droites
  $(AB)$ et $(AC)$;
\item \lstinline!a!, \lstinline!b!, \lstinline!c!, \lstinline!d!,
  \lstinline!e!, \lstinline!f! sont les longueurs {\em connues ou non}
  des côtés (paramètres obligatoires) données pour compléter l'égalité
  de quotients sous la forme :
  \[\frac{\text{\lstinline!a!}}{\text{\lstinline!d!}}=\frac{\text{\lstinline!b!}}{\text{\lstinline!e!}}=\frac{\text{\lstinline!c!}}{\text{\lstinline!f!}}\]
\end{itemize}
\begin{Codes}[listing side text]{0.475}{}
\Thales{RSTUV}{RU}{15}{7}{25}{40}{ST}
\end{Codes}
Pour les noms de points {\em composés} comme $A'$, $A_1$\dots{} il faut \og protéger\fg{} l'appel du nom :
\begin{Codes}{0.525}{}
\Thales{R{S'}T{U_1}V}{R{U_1}}{15}{3}{25}{40}{8}
\end{Codes}
Comme on peut le voir, des choix pédagogiques ont été faits : la version {\em
  forte} du théorème de Thalès (pour les classes de 3\ieme),
l'écriture sous la forme de quotients\dots{} Mais on peut les modifier par les clés qui suivent.
\clearpage
\begin{tcolorbox}[tikzcle]
  \index[cle]{Thales@\lstinline+\Thales+!Droites|mygobble}
  \index[cle]{Thales@\lstinline+\Thales+!Segment|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Propor|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Precision|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!IntroCalculs|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Unite|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Perso|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Entier|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Figure|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Figure!Echelle|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Figure!Angle|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Figure!CouleurNum|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!Figure!CouleurDen|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!FigureSeule|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!FigureCroisee|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!FigureCroiseeSeule|mygobble}
\index[cle]{Thales@\lstinline+\Thales+!ChoixCalcul|mygobble}
\begin{Key}{Droites}{false}
  modifie le texte introductif à l'écriture des calculs.
\end{Key}
\begin{Key}{Segment}{false}
  écrit la version {\em faible} du théorème de Thalès associé,
  version principalement vue en classe de 4\ieme{}.
\end{Key}
\begin{Key}{Propor}{false}
  insiste sur la proportionnalité entre les côtés.
\end{Key}
\begin{Key}{Precision}{2}
  permet de choisir la précision de l'arrondi affiché.
\end{Key}
\begin{Key}{IntroCalculs}{true}
  permet, lorsqu'elle est positionnée à \lstinline!false!, de supprimer l'affichage de la phrase \og On remplace par les longueurs connues :\fg.
\end{Key}
\begin{Key}{Unite}{cm}
  permet de changer l'unité de longueur affichée dans le(s) calcul(s) effectué(s).
\end{Key}
\begin{Key}{Entier}{false}
  permet d'afficher des calculs exacts et simplifiés si les longueurs
  utilisées sont {\em toutes} entières.
\end{Key}
\begin{KeyS}{Figure}{false}
  dessine une figure dans la configuration {\em classique}, associée
  aux données.
  \begin{SousDescription}
  \item[La clé \Cle{Echelle}] \DefautR{\Lg{1}}
    modifie l'unité de longueur utilisée pour construire les figures.
  \item[La clé \Cle{Angle}] \DefautR{0}
    modifie l'orientation des figures.
  \item[La clé \Cle{CouleurNum}] \DefautR{black}
    modifie la couleur du triangle associé aux numérateurs des quotients.
  \item[La clé \Cle{CouleurDen}] \DefautR{black}
    modifie la couleur du triangle associé aux dénominateurs des quotients.
  \end{SousDescription}
\end{KeyS}
\begin{KeyS}{FigureSeule}{false}
  affiche {\em uniquement} une figure cohérente au nom du
  triangle, aux points et aux valeurs utilisés.
  \begin{SousDescription}
    \item[Les clés \Cle{Echelle}, \Cle{Angle}, \Cle{CouleurNum} et \Cle{CouleurDen}] sont également disponibles.
  \end{SousDescription}
\end{KeyS}
\begin{tcolorbox}[tikzRemarque]
  La figure n'est pas centrée; l'utilisateur peut la placer selon ses souhaits.
\end{tcolorbox}
\begin{KeyS}{FigureCroisee}{false}
  dessine une figure dans la configuration {\em croisée}, associée aux
  données. Elle est incompatible avec la clé \CleS{Figure}.
\end{KeyS}
\begin{KeyS}{FigurecroiseeSeule}{false}
  affiche {\em uniquement} une figure cohérente au nom du
  triangle, aux points et aux valeurs utilisés.
    \begin{SousDescription}
    \item[Les clés \Cle{Echelle}, \Cle{Angle}, \Cle{CouleurNum} et \Cle{CouleurDen}] sont également disponibles.
  \end{SousDescription}
\end{KeyS}
\begin{tcolorbox}[tikzRemarque]
  La figure n'est pas centrée; l'utilisateur peut la placer selon ses souhaits.
\end{tcolorbox}
\begin{Key}{ChoixCalcul}{0}
  permet de choisir les calculs {\em complets} à afficher :
  \begin{itemize}
  \item la valeur 0 est associée à l'intégralité des calculs;
  \item la valeur 1 est associée au calcul utilisant une longueur
    inconnue dans le premier quotient;
  \item la valeur 2 est associée au calcul utilisant une longueur
    inconnue dans le deuxième quotient;
  \item la valeur 3 est associée au calcul utilisant une longueur
    inconnue dans le troisième quotient.
  \end{itemize}
\end{Key}
\begin{Key}{Perso}{false}
  permet de personnaliser la rédaction utilisée grâce à la commande \lstinline!\\RedactionThales! qui est associée aux commandes \lstinline!\\NomTriangle!, \lstinline!\\NomPointA!, \lstinline!\\NomPointB!, \lstinline!\\NomPointC!, \lstinline!\\NomPointM!, \lstinline!\\NomPointN!.
\end{Key}
\end{tcolorbox}
\begin{Exemple}[]{}
\Thales[Droites]{ABCMN}{35}{AN}{7}{80}{90}{16}
\end{Exemple}
\begin{Codes}[listing side text]{0.45}{\small}
\Thales[
Segment,
IntroCalculs=false]%
{ABCMN}{35}{AN}{7}{80}{90}{16}
\end{Codes}
\begin{tcolorbox}[tikzRemarque]
  \begin{itemize}
  \item Les résultats obtenus sont disponibles grâce aux
commandes \lstinline!\ResultatThalesx!, \lstinline!\ResultatThalesy! et
\lstinline!\ResultatThalesz! associées respectivement au premier,
deuxième et troisième quotient.
\begin{Codes}[listing side text,colback=Crimson!15,colframe=Crimson!50]{0.5}{}
Dans l'exemple précédent, la longueur $AN$ est égale à \ResultatThalesy.
\end{Codes}
Comme pour la commande \lstinline!\ResultatPytha!, la valeur obtenue
 n'est pas mise en forme, toujours dans un souci de réutilisation.
 \\Pour formater correctement la valeur ainsi stockée, on utilise la commande
 \lstinline!\num! du package \lstinline!siunitx!
 (\lstinline!\num{\ResultatThalesy}!) ou \lstinline!\Lg! (page \pageref{Grandeurs}).
 \item Pour ceux ne souhaitant pas indiquer d'unité de longueur dans les calculs, il y a deux possibilités :
  \begin{itemize}
  \item \textit{localement}, en indiquant \lstinline!Unite={}! dans les clés de la commande;
  \item \textit{globalement}, en indiquant \lstinline!\setKVdefault[ClesThales]{Unite={}}!.
  \end{itemize}
  \end{itemize}
\end{tcolorbox}
\begin{Exemple}[]{}
\Thales[Propor]{RSTUV}{3}{15}{UV}{5}{25}{40}
\end{Exemple}
\begin{Codes}[listing side text]{0.425}{\small}
\renewcommand{\RedactionThales}{%ABCMN
  Dans le triangle $\NomTriangle$ :
  \begin{itemize}
  \item $\NomPointM \in [\NomPointA \NomPointB]$
  \item $\NomPointN \in [\NomPointA \NomPointC]$
  \item $(\NomPointM \NomPointN)//(\NomPointB \NomPointC)$
  \end{itemize}
  Donc d'après le théorème de Thalès, on a :
  \[\frac{\NomPointA \NomPointM}{\NomPointA \NomPointB}=\frac{\NomPointA \NomPointN}{\NomPointA \NomPointC}=\frac{\NomPointM \NomPointN}{\NomPointB \NomPointC}\]
}
\Thales[Perso,IntroCalculs=false]{IJZEK}{12}{4}{5}{36}{IZ}{JZ}
\end{Codes}

\begin{Exemple}[]{}
\Thales[Precision=3]{IRNTS}{6}{7}{TS}{2.5}{IN}{4}

\Thales[IntroCalculs=false,Unite=km]{IRNTS}{6}{48}{TS}{24}{IN}{40}
\end{Exemple}

\begin{Codes}[]{0.4}{}
\Thales[Entier]{IRNTS}{6}{10}{TS}{20}{IN}{27}
\end{Codes}
%\clearpage
\begin{tcolorbox}[tikzRemarque]
  Les commandes \lstinline!\ResultatThalesx!,
  \lstinline!\ResultatThalesy! et \lstinline!\ResultatThalesz! ne sont
  pas disponibles avec cette clé \Cle{Entier}.
\end{tcolorbox}

\begin{Exemple}[]{}
\Thales[Figure]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\end{Exemple}
\begin{Codes}[]{0.4}{}
% On remarquera que les quotients sont repérés par les mêmes couleurs.
\Thales[Figure,IntroCalculs=false,CouleurDen=Crimson,CouleurNum=NavyBlue]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\end{Codes}

\begin{Exemple}[]{}
\Thales[FigureSeule,Angle=30]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\Thales[FigureSeule,Angle=90,Echelle=7mm]{AMNBC}{12}{AC}{BC}{7}{AN}{35}
\Thales[FigureSeule,Angle=150]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\end{Exemple}

\begin{Codes}[]{0.5}{}
\Thales[Figurecroisee,Droites]{ABCMN}{35}{90}{7}{AB}{AC}{12}
\end{Codes}

\begin{Exemple}[]{}
\Thales[FigurecroiseeSeule,Angle=15]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\Thales[FigurecroiseeSeule,Angle=-15,Echelle=7mm]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\Thales[FigurecroiseeSeule,Angle=120]{ABCMN}{7}{AN}{35}{12}{AC}{BC}
\end{Exemple}
%\clearpage
%On remarque que la commande \lstinline!\Thales! permet de faire les deux calculs
%associés aux informations données. Mais parfois, il n'est demandé
%qu'un seul des deux calculs.
\begin{Codes}[]{0.4}{}
\Thales[Figurecroisee,ChoixCalcul=1,Droites]{ABCMN}{35}{90}{7}{AB}{AC}{12}
\end{Codes}
\clearpage
\subsection*{Uniquement la rédaction ?}\label{RemediationThales}
%On peut également travailler sur la rédaction \og initiale\fg{} du
%théorème de Thalès.
\begin{tcolorbox}[tikzcle]
  \index[cle]{Thales@\lstinline+\Thales+!Redaction|mygobble}
  \index[cle]{Thales@\lstinline+\Thales+!Redaction!Remediation|mygobble}
\begin{Key}{Redaction}{false}
  permet d'afficher le texte justifiant l'utilisation du théorème de
  Thalès.
  \begin{SousDescription}
  \item[La clé \Cle{Remediation}]\DefautR{false}
    propose une version à compléter du texte justificatif.
  \end{SousDescription}
\end{Key}
\end{tcolorbox}
Les clés \CleS{Figure} et \CleS{Figurecroisee} sont également
disponibles pour la clé \Cle{Remediation} {\em sous certaines
  conditions} précisées dans les exemples suivants.
\begin{Codes}[]{0.4}{}
% Clé <Figure> indisponible : le nom du triangle est manquant. Remédiation "partielle".
\Thales[Redaction,Segment]{A{\ldots}C{\ldots}E}{}{}{}{}{}{}
\end{Codes}
\begin{Codes}[]{0.4}{}
% Clé <Figure> disponible : le nom du triangle est présent.
\Thales[Figure,Redaction]{ABCDE}{}{}{}{}{}{}
\end{Codes}
\begin{Exemple}[]{}
% Clé <Figure> indisponible : le nom du triangle est manquant. Remédiation "complète".
\Thales[Droites,Redaction,Remediation]{}{}{}{}{}{}{}
\end{Exemple}
%Même si le code ci-dessus fonctionne, il est préférable d'utiliser le
%code :
\begin{Codes}[]{0.4}{}
% Clé <Figure> disponible : le nom du triangle est présent. Remédiation "complète".
\Thales[Figurecroisee,Droites,Redaction,Remediation]{JRINT}{4.8}{7.2}{RI}{8}{JT}{10}
\end{Codes}
Ce dernier exemple permet, en enlevant les clés \Cle{Redaction} et \Cle{Remediation},
d'obtenir {\em automatiquement} l'intégralité de la rédaction et des
calculs\dots{}
\begin{Exemple}[]{}
\Thales[Figurecroisee,Droites]{JRINT}{4.8}{7.2}{RI}{8}{JT}{10}
\end{Exemple}
\subsection*{La \og réciproque\fg{} du théorème de Thalès}
% Pour cela, on va utiliser la clé \Cle{Reciproque}.
\begin{tcolorbox}[tikzcle]
  \index[cle]{Thales@\lstinline+\Thales+!Reciproque|mygobble}
  \index[cle]{Thales@\lstinline+\Thales+!Reciproque!Produit|mygobble}
  \index[cle]{Thales@\lstinline+\Thales+!Reciproque!Simplification|mygobble}
\begin{Key}{Reciproque}{false}
  permet de rédiger la rédaction d'un exercice utilisant la
  \og réciproque\fg{} du théorème de Thalès.
  \begin{SousDescription}
  \item[La clé \Cle{Produit}]\DefautR{false}
    utilise l'égalité des produits en croix pour prouver que les droites
    sont parallèles ou non. Les paramètres \lstinline!e! et
    \lstinline!f! sont vides qu'on utilise ou pas des nombres entiers.
  \item[La clé \Cle{Simplification}]\DefautR{true}
    est activée {\em par défaut} pour simplifier les écritures fractionnaires.
  \item[Les clés \Cle{Droites}, \Cle{Segment}, \Cle{Propor}, \CleS{Figure},
\CleS{FigureSeule}, \Cle{Angle}, \Cle{Echelle},] \textbf{\CleS{Figurecroisee} et \CleS{FigurecroiseeSeule}}
 sont également disponibles.
  \end{SousDescription}
\end{Key}
\end{tcolorbox}
\begin{tcolorbox}[tikzRemarque]
Avec cette clé \Cle{Reciproque}, la commande a la forme :

\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \Thales[Reciproque,!\sffamily\textlangle autres clés\textrangle!]{!\sffamily\textlangle Noms des points considérés\textrangle!}{a}{b}{c}{d}{e}{f}
\end{lstlisting}
{\em Néanmoins}, il faut veiller à la différence de sens qu'ont les deux derniers paramètres \lstinline!e! et \lstinline!f! de la commande. Sachant que ces paramètres sont respectivement associés aux paramètres \lstinline!a!, \lstinline!b! et aux paramètres \lstinline!c!, \lstinline!d! :
\begin{itemize}
\item ils sont vides si leurs paramètres associés sont des nombres entiers;
\item ils sont un coefficient multiplicateur si les paramètres associés sont des nombres décimaux.
\end{itemize}
\end{tcolorbox}
La figure ci-dessous permet de positionner les éléments du code :

\begin{multicols}{2}
  \phantom{t}\vfill
\begin{Codes}[listing only]{0.35}{\small}
\Thales[Reciproque]{OABCD}{a}{b}{c}{d}{}{}
\end{Codes}
\vfill\phantom{t}

\columnbreak

\[\includegraphics[width=0.95\linewidth]{ThalesExplicationReciproque-1}\]
\end{multicols}
Suivant les enseignants, la preuve de l'égalité des quotients peut se
faire par comparaison de fractions (choix par défaut) ou en prouvant
l'égalité des produits en croix associés aux quotients. Le comportement par défaut et l'utilisation des deux clés \Cle{Propor} et \Cle{Produit} sont proposés sur les exemples suivants.
\begin{Codes}[]{0.4}{}
\Thales[Reciproque]{ABCMN}{35}{90}{7}{18}{}{}
\end{Codes}
\begin{Codes}[]{0.4}{}
\Thales[Reciproque,Propor]{ABCMN}{3.5}{9}{0.07}{0.18}{10}{100}
\end{Codes}
\begin{Codes}[]{0.4}{}
\Thales[Reciproque,Droites,Produit]{ABCMN}{3.5}{9}{0.07}{0.18}{}{}
\end{Codes}
%Les fractions sont irréductibles. Il faut désactiver la clé \Cle{Simplification>.}
\begin{Codes}[]{0.4}{}
\Thales[Reciproque,Simplification=false]{ABCMN}{7}{13}{23}{31}{}{}
\end{Codes}
\begin{Codes}[]{0.4}{}
\Thales[Reciproque,Figurecroisee,Echelle=8mm]{RSVHZ}{30}{80}{7}{18}{}{}
\end{Codes}