diff options
author | Karl Berry <karl@freefriends.org> | 2022-10-20 20:37:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-10-20 20:37:29 +0000 |
commit | ddb13569e983337a6c182f47d2b8f28a5784b4ff (patch) | |
tree | ba2ef52aec536de9ca05032882216aaa35a38948 /Master | |
parent | dfd3a224de343462796bcded2036ad4d70799aad (diff) |
proflycee (20oct22)
git-svn-id: svn://tug.org/texlive/trunk@64765 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf | bin | 930967 -> 948293 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex | 796 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty | 106 |
3 files changed, 584 insertions, 318 deletions
diff --git a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf Binary files differindex 0e377d341f2..985f37eab34 100644 --- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf +++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf diff --git a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex index 25b0e9471ca..be4ad40a073 100644 --- a/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex +++ b/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex @@ -33,6 +33,8 @@ \usepackage{graphics} \usepackage{hvlogos} \usepackage{simplekv} +\usepackage{menukeys} +\let\tab\relax \usepackage{tabto} \usepackage{pgf,pgfplots} \pgfplotsset{ @@ -63,8 +65,8 @@ \setlength{\parindent}{0pt} \definecolor{LightGray}{gray}{0.9} -\def\PLversion{1.3.5} -\def\PLdate{17 Octobre 2022} +\def\PLversion{1.3.6} +\def\PLdate{18 Octobre 2022} \tcbset{vignettes/.style={% nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% @@ -308,7 +310,7 @@ Le {package} \ctex{ProfLycee} charge les {packages} : \item \ctex{xcolor} avec les options \textsf{[table,svgnames]} ; \item \ctex{tikz}, \ctex{pgf}, \ctex{xfp} ; \item \ctex{xparse}, \ctex{xkeyval}, \ctex{xstring}, \ctex{simplekv} ; - \item \ctex{listofitems}, \ctex{xintexpr} et \ctex{xintbinhex} ; + \item \ctex{listofitems}, \ctex{xintexpr} , \ctex{xintbinhex} et \ctex{xintgcd}; \item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{tcolorbox}. \end{itemize} \end{codeinfo} @@ -354,11 +356,11 @@ Par défaut, \ctex{minted} est chargé et donc la compilation nécessite d'utili \begin{codeinfo} En compilant (notamment avec les packages \ctex{minted} et \ctex{pythontex}) on peut spécifier des répertoires particuliers pour les (ou des) fichiers auxiliaires. -Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \ctex{minted} et \ctex{pythontex} dans un répertoire \textsf{build} du répertoire courant. +Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \ctex{minted} et \ctex{pythontex} dans un répertoire \menu{build} du répertoire courant. \smallskip -Dans ce cas il vaut mieux créer au préalable le répertoire \textsf{build} avant de compiler un fichier ! +Dans ce cas il vaut mieux créer au préalable le répertoire \menu{build} avant de compiler un fichier ! \end{codeinfo} \begin{codetex}[listing only] @@ -509,7 +511,7 @@ Pour déclarer les paramètres : \end{codetex} \begin{codecles} -Certains paramètres peuvent être gérés directement dans la commande \ctex{\textbackslash splinetikz} : +Certains paramètres peuvent être gérés directement dans la commande \ctex{splinetikz} : % \begin{itemize} \item la couleur de la courbe par la \textsf{clé} \Cle{couleur} ;\hfill{}défaut \Cle{red} @@ -654,11 +656,11 @@ Le plus \og simple \fg{} est donc: \subsection{Définitions} \begin{codeidee} -En parallèle de l'outil \ctex{\textbackslash splinetikz}, il existe l'outil \ctex{\textbackslash tangentetikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{\textbackslash splinetikz}. +En parallèle de l'outil \ctex{splinetikz}, il existe l'outil \ctex{tangentetikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{splinetikz}. \smallskip -NB : il peut fonctionner indépendamment de l'outil \ctex{\textbackslash splinetikz} puisque la liste des points de travail est gérée de manière autonome ! +NB : il peut fonctionner indépendamment de l'outil \ctex{splinetikz} puisque la liste des points de travail est gérée de manière autonome ! \end{codeidee} \begin{codetex}[listing only] @@ -1007,7 +1009,7 @@ Les \Cle{Clés} disponibles sont : \subsection{La commande \og ligneCF \fg} \begin{codeinfo} -Une fois les paramètres déclarés, il faut créer les différentes lignes, grâce à la \ctex{\textbackslash ligneCF}. +Une fois les paramètres déclarés, il faut créer les différentes lignes, grâce à la \ctex{ligneCF}. \end{codeinfo} \begin{codetex}[listing only] @@ -1089,7 +1091,7 @@ Le package \ctex{listings} ne nécessite pas de compilation particulière, au co \end{codeinfo} \begin{codeinfo} -Le style utilisé pour formater le code Python n'est pas modifiable. Il donne un rendu proche de celui des packages commes \ctex{pythontex} ou \ctex{minted}. +Le style utilisé pour formater le code Python n'est pas modifiable. Il donne un rendu proche de celui des packages comme \ctex{pythontex} ou \ctex{minted}. \smallskip @@ -1099,7 +1101,7 @@ Donc, si plusieurs \textit{méthodes} sont utilisées pour insérer du code Pyth \subsection{Présentation de code Python grâce à listings} \begin{codeidee} -L'environnement \ctex{\textbackslash envcodepython} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier. +L'environnement \ctex{envcodepython} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier. \end{codeidee} \begin{codetex}[listing only] @@ -1288,7 +1290,7 @@ Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une b \subsection{Présentation de code Python via pythontex}\label{pythontex} \begin{codeidee} -L'environnement \ctex{\textbackslash envcodepythontex} est donc lié à \ctex{pythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier. +L'environnement \ctex{envcodepythontex} est donc lié à \ctex{pythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier. \end{codeidee} \begin{codetex}[listing only] @@ -1346,7 +1348,7 @@ Pour celles et ceux qui ne sont pas à l'aise avec le {package} \ctex{pythontex} \end{codeinfo} \begin{codeidee} -L'environnement \ctex{\textbackslash envcodepythonminted} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style (\textit{minted}) particulier. +L'environnement \ctex{envcodepythonminted} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style (\textit{minted}) particulier. \end{codeidee} \begin{codetex}[listing only] @@ -1402,7 +1404,7 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles : \begin{codeidee} \ctex{pythontex} permet également de \textit{simuler} (en exécutant également !) du code python dans une \textit{console}. -C'est l'environnement \ctex{\textbackslash envconsolepythontex} qui permet de le faire. +C'est l'environnement \ctex{envconsolepythontex} qui permet de le faire. \end{codeidee} \begin{codetex}[listing only] @@ -1470,7 +1472,7 @@ Le {package} \ctex{listings} permet d'insérer et de présenter du code, et avec \subsection{Présentation de Pseudo-Code} \begin{codeidee} -L'environnement \ctex{\textbackslash envpseudocode} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}. +L'environnement \ctex{envpseudocode} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}. \end{codeidee} \begin{codeinfo} @@ -1555,7 +1557,7 @@ Il s'agit ici de présenter une version \og clé en main \fg{}. \begin{codeinfo} Le style \ctex{listings} utilisé par la commande a l'option \Cle{mathescape} activé, et accessible grâce aux délimiteurs \Cle{(*...*)}. -Cela permet d'insérer du code \LaTeX{} dans l'environnement \ctex{\textbackslash envpseudocode} (attention au fontes de rendu par contre !). +Cela permet d'insérer du code \LaTeX{} dans l'environnement \ctex{envpseudocode} (attention au fontes de rendu par contre !). \end{codeinfo} \begin{codetex}[listing only] @@ -2367,7 +2369,7 @@ La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des \end{codesortie} \begin{codeinfo} -IL existe également une commande auxiliaire, \ctex{PLreglinpts} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots +Il existe également une commande auxiliaire, \ctex{PLreglinpts} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots \end{codeinfo} \begin{codetex}[listing only] @@ -2712,9 +2714,9 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide Il existe, de manière marginale, quelques commandes complémentaires qui ne seront pas trop détaillées mais qui sont présentes dans l'introduction : \begin{itemize} - \item \ctex{\textbackslash{}PLfenetre} qui restreint les tracés à la fenêtre (utile pour des courbes qui \textit{débordent}) ; - \item \ctex{\textbackslash{}PLfenetresimple} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ; - \item \ctex{\textbackslash{}PLorigine} pour rajouter le libellé de l'origine si non affiché par les axes. + \item \ctex{PLfenetre} qui restreint les tracés à la fenêtre (utile pour des courbes qui \textit{débordent}) ; + \item \ctex{PLfenetresimple} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ; + \item \ctex{PLorigine} pour rajouter le libellé de l'origine si non affiché par les axes. \end{itemize} \end{codeinfo} @@ -2739,7 +2741,7 @@ Il existe, de manière marginale, quelques commandes complémentaires qui ne ser \end{codetex} \begin{codecles} -Cette commande, liée à la commande \ctex{\textbackslash{}PLreglin} permet de représenter le nuage de points associé aux deux listes, avec les \Cle{clés} suivantes : +Cette commande, liée à la commande \ctex{PLreglin} permet de représenter le nuage de points associé aux deux listes, avec les \Cle{clés} suivantes : \begin{itemize} \item \Cle{taille} qui est la taille des points du nuage ; \hfill~défaut \Cle{2pt} @@ -2788,7 +2790,7 @@ Cette commande, liée à la commande \ctex{\textbackslash{}PLreglin} permet de r \end{codetex} \begin{codecles} -Cette commande permet de rajouter le point moyen du nuage, calculé par la commande \ctex{\textbackslash{}PLreglin}, avec les \Cle{clés} : +Cette commande permet de rajouter le point moyen du nuage, calculé par la commande \ctex{PLreglin}, avec les \Cle{clés} : \begin{itemize} \item \Cle{police}, comme précédemment ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont} ; @@ -3345,8 +3347,8 @@ Les (deux) commandes sont donc liées à un environnement \ctex{tikzpicture}, et Les \Cle{donnees} seront à préciser sous forme \ctex{<sommet1>/<proba1>/<position1>,<sommet2>/<proba2>/<position2>,...} avec comme \og sens de lecture \fg{} de la gauche vers la droite puis du haut vers le bas (on balaye les \textit{sous-arbres}), avec comme possibilités : \begin{itemize} - \item une donnée \Cle{<proba>} peut être laissée vide ; - \item une donnée \Cle{<position>} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur). + \item une donnée \Cle{proba} peut être laissée vide ; + \item une donnée \Cle{position} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur). \end{itemize} \end{codeinfo} @@ -3556,6 +3558,390 @@ Pour le moment, seules les lois (continues) exponentielles et normales sont disp \newpage +\part{Outils pour l'arithmétique} + +\section{Conversions binaire/hexadécimal/décimal}\label{conversions} + +\subsection{Idée} + +\begin{codeidee} +L'idée est de \textit{compléter} les possibilités offertes par le package \ctex{xintbinhex}, en mettant en forme quelques conversions : + +\begin{itemize} + \item décimal en binaire avec blocs de 4 chiffres en sortie ; + \item conversion binaire ou hexadécimal en décimal avec écriture polynomiale. +\end{itemize} +\end{codeidee} + +\begin{codeinfo} +Le package \ctex{xintbinhex} est la base de ces macros, puisqu'il permet de faire des conversions directes ! + +\smallskip + +Les macros présentées ici ne font que les intégrer dans un environnement adapté à une correction ou une présentation ! +\end{codeinfo} + +\begin{codetex}[listing only] +\xintDecToHex{100} +\xintDecToBin{51} +\xintHexToDec{A4C} +\xintBinToDec{110011} +\xintBinToHex{11111111} +\xintHexToBin{ACDC} +\xintCHexToBin{3F} +\end{codetex} + +\begin{codesortie} +\xintDecToHex{100} + +\xintDecToBin{51} + +\xintHexToDec{A4C} + +\xintBinToDec{110011} + +\xintBinToHex{11111111} + +\xintHexToBin{ACDC} + +\xintCHexToBin{3F} +\end{codesortie} + +\subsection{Conversion décimal vers binaire} + +\begin{codetex}[listing only] +\PLconvdecbin(*)[<clés>]{<nombre>} +\end{codetex} + +\begin{codecles} +Concernant la commande en elle même, peu de paramétrage : + +\begin{itemize} + \item la version \textit{étoilée} qui permet de ne pas afficher de zéros avant pour \og compléter \fg{} ; + \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true} + \item l'argument, mandataire, est le nombre entier à convertir. +\end{itemize} + +Le formatage est géré par \ctex{sinuitx}, le mieux est donc de positionner la commande dans un environnement mathématique. + +\smallskip + +Les nombres écrits en binaire sont, par défaut, présentés en bloc(s) de 4 chiffres. +\end{codecles} + +\begin{codetex}[listing only] +% Conversion avec affichage de la base et par bloc de 4 +$\PLconvdecbin{415}$ +% Conversion avec affichage de la base et sans forcément des blocs de 4 +$\PLconvdecbin*{415}$ +% Conversion sans affichage de la base et par bloc de 4 +$\PLconvdecbin[affbase=false]{415}$ +% Conversion sans affichage de la base et sans forcément des blocs de 4 +$\PLconvdecbin*[affbase=false]{415}$ +\end{codetex} + +\begin{codesortie} +$\PLconvdecbin{415}$ + +\smallskip + +$\PLconvdecbin*{415}$ + +\smallskip + +$\PLconvdecbin[affbase=false]{415}$ + +\smallskip + +$\PLconvdecbin*[affbase=false]{415}$ +\end{codesortie} + +\subsection{Conversion binaire vers hexadécimal} + +\begin{codeinfo} +L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres : + +\begin{itemize} + \item la macro rajoute éventuellement les zéros pour compléter ; + \item elle découpe par blocs de 4 chiffres binaires ; + \item elle présente la conversion de chacun des blocs de 4 chiffres binaires ; + \item elle affiche la conversion en binaire. +\end{itemize} +\end{codeinfo} + +\begin{codetex}[listing only] +\PLconvbinhex[<clés>]{<nombre>} +\end{codetex} + +\begin{codecles} +Quelques \Cle{clés} sont disponibles pour cette commande : + +\begin{itemize} + \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true} + \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true} + %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt} +\end{itemize} + +Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique. +\end{codecles} + +\begin{codetex}[listing only] +%conversion avec détails et affichage de la base +$\PLconvbinhex{110011111}$ +%conversion sans détails et affichage de la base +$\PLconvbinhex[details=false]{110011111}$ +%conversion sans détails et sans affichage de la base +$\PLconvbinhex[affbase=false,details=false]{110011111}$ +\end{codetex} + +\begin{codesortie} +$\PLconvbinhex{110011111}$ + +$\PLconvbinhex[details=false]{110011111}$ + +$\PLconvbinhex[affbase=false,details=false]{110011111}$ +\end{codesortie} + +\pagebreak + +\subsection{Conversion binaire ou hexadécimal en décimal} + +\begin{codeinfo} +L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale : + +\begin{itemize} + \item écrit la somme des puissances ; + \item convertir si besoin les \textit{chiffres} hexadécimal ; + \item peut ne pas afficher les monômes de coefficient 0. +\end{itemize} +\end{codeinfo} + +\begin{codetex}[listing only] +\PLconvtodec[<clés>]{<nombre>} +\end{codetex} + +\begin{codecles} +Quelques \Cle{clés} sont disponibles pour cette commande : + +\begin{itemize} + \item la clé \Cle{basedep} qui est la base de départ (2 ou 16 !) ; \hfill{}défaut \Cle{2} + \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true} + \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4 ; \hfill{}défaut \Cle{true} + \item le booléen \Cle{zeros} qui affiche les chiffres 0 dans la somme. \hfill{}défaut \Cle{true} +\end{itemize} + +Le formatage est toujours géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique. +\end{codecles} + +\begin{codetex}[listing only] +%conversion 16->10 avec détails et affichage de la base et zéros +$\PLconvtodec[basedep=16]{19F}$ +%conversion 2->10 avec détails et affichage de la base et zéros +$\PLconvtodec{110011}$ +%conversion 2->10 avec détails et affichage de la base et sans zéros +$\PLconvtodec[zeros=false]{110011}$ +%conversion 16->10 sans détails et affichage de la base et avec zéros +$\PLconvtodec[basedep=16,details=false]{AC0DC}$ +%conversion 16->10 avec détails et sans affichage de la base et sans zéros +$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$ +\end{codetex} + +\begin{codesortie} +$\PLconvtodec[basedep=16]{19F}$ + +$\PLconvtodec{110011}$ + +$\PLconvtodec[zeros=false]{110011}$ + +$\PLconvtodec[basedep=16,details=false]{AC0DC}$ + +$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$ +\end{codesortie} + +\newpage + +\section{Conversion \og présentée \fg{} d'un nombre en décimal}\label{convrestes} + +\subsection{Idée} + +\begin{codeidee} +L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque. + +\smallskip + +Les commandes de la section précédente donne \textit{juste} les résultats, dans cette section il y a en plus la présentation de la conversion. + +\smallskip + +La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit. +\end{codeidee} + +\begin{codetex}[listing only] +... +\tikzstyle{every picture}+=[remember picture] +... +\end{codetex} + +\subsection{Code et clés} + +\begin{codetex}[] +%conversion basique +\PLconvDepuisDec{78}{2} +\end{codetex} + +\begin{codeinfo} +La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles. +\end{codeinfo} + +\begin{codetex}[listing only] +\PLconvDepuisDec[<options>]{<nombre en base 10>}{<base d'arrivée>} +\end{codetex} + +\begin{codecles} +Quelques options pour cette commande : + +\begin{itemize} + \item la clé \Cle{couleur} pour la couleur du \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{red} + \item la clé \Cle{decalh} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt} + \item la clé \Cle{decalv} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt} + \item la clé \Cle{noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ; \hfill{}défaut \Cle{EEE} + \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{true} + \item le booléen \Cle{couleurres} pour afficher ou non la conversion en couleur (identique au rectangle). \hfill{}défaut \Cle{false} +\end{itemize} +\end{codecles} + +\begin{codetex}[listing only] +%conversion avec changement de couleur +\PLconvDepuisDec[couleur=DarkBlue]{45}{2} + +%conversion sans le rectangle +Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}. + +%conversion avec gestion du decalh pour le placement précis du rectangle +\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16} + +%conversion avec nœud personnalisé et réutilisation +\PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}. +\begin{tikzpicture} + \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ; +\end{tikzpicture} +\end{codetex} + +\begin{codesortie} +\PLconvDepuisDec[couleur=DarkBlue]{45}{2} + +\medskip + +Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}. + +\medskip + +\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16} + +\medskip + +On obtient donc \PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}. +\begin{tikzpicture} + \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ; +\end{tikzpicture} + +\vspace{1.5cm} + +~ +\end{codesortie} + +\newpage + +\section{Algorithme d'Euclide pour le PGCD}\label{prespgcd} + +\subsection{Idée} + +\begin{codeidee} +L'idée est de proposer une \og présentation \fg{} de l'algorithme d'Euclide pour le calcul du PGCD de deux entiers. + +Le package \ctex{xintgcd} permet déjà de le faire, il s'agit ici de travailler sur la \textit{mise en forme} avec alignement des restes. +\end{codeidee} + +\begin{codetex}[listing only] +\PresentationPGCD[<options>]{a}{b} +\end{codetex} + +\begin{codetex}[listing only] +... +\tikzstyle{every picture}+=[remember picture] +... +\PresentationPGCD{150}{27} +\end{codetex} + +\begin{codesortie} +\PresentationPGCD{150}{27} +\end{codesortie} + +\begin{codeattention} +La mise en valeur du dernier reste non nul est géré par du code \TikZ, en mode \ctex{overlay}, donc il faut bien penser à déclarer dans le préambule : + +\hspace{5mm}\ctex{\textbackslash{}tikzstyle\{every picture\}+=[remember picture]} +\end{codeattention} + +\subsection{Options et clés} + +\begin{codecles} +Quelques options disponibles pour cette commande : + +\begin{itemize} + \item la clé \Cle{Couleur} qui correspond à la couleur pour la mise en valeur ; \hfill{}défaut \Cle{red} + \item la clé \Cle{DecalRect} qui correspond à l'écartement du rectangle de mise en valeur ; \hfill{}défaut \Cle{2pt} + \item le booléen \Cle{Rectangle} qui gère l'affichage ou non du rectangle de mise ne valeur ; \hfill{}défaut \Cle{true} + \item la clé \Cle{Noeud} qui gère le préfixe du nom du nœud \TikZ{} du rectangle (pour exploitation ultérieure) ; \hfill{}défaut \Cle{FFF} + \item le booléen \Cle{CouleurResultat} pour mettre ou non en couleur de PGCD ; \hfill{}défaut \Cle{false} + \item le booléen \Cle{AfficheConclusion} pour afficher ou non la conclusion ; \hfill{}défaut \Cle{true} + \item le booléen \Cle{AfficheDelimiteurs} pour afficher ou non les délimiteurs (accolade gauche et trait droit). \hfill{}défaut \Cle{true} +\end{itemize} + +\medskip + +Le rectangle de mise en valeur est donc un nœud \TikZ{} qui sera nommé, par défaut \ctex{FFF1}. + +\medskip + +La présentation est dans un environnement \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas indispensables. +\end{codecles} + +\begin{codetex}[] +\PresentationPGCD[CouleurResultat]{150}{27} +\end{codetex} + +\pagebreak + +\begin{codetex}[] +\PresentationPGCD[CouleurResultat,Couleur=ForestGreen]{1250}{450}. + +\PresentationPGCD[CouleurResultat,Couleur=DarkBlue]{13500}{2500}. + +\PresentationPGCD[Rectangle=false]{420}{540}. + +\medskip + +D'après l'algorithme d'Euclide, on a $\left| \PresentationPGCD[Couleur=LightSkyBlue,AfficheConclusion=false,AfficheDelimiteurs=false]{123456789}{9876} \right.$ +\begin{tikzpicture} + \draw[overlay,LightSkyBlue,thick,<-] (FFF1.east) to[bend right] ++ (2cm,0.75cm) node[right] {dernier reste non nul} ; +\end{tikzpicture} +\end{codetex} + +\subsection{Compléments} + +\begin{codeinfo} +La présentation des divisions euclidiennes est gérée par un tableau du type \ctex{array}, avec alignement vertical de symboles \ctex{=} et \ctex{+}. + +Par défaut, les délimiteurs choisis sont donc l'accolade gauche et le trait droit, mais la clé booléenne \Cle{AfficheDelimiteurs=false} permet de choisir des délimiteurs différents. +\end{codeinfo} + +\begin{codetex}[] +$\left[ \PresentationPGCD[AfficheConclusion=false,AfficheDelimiteurs=false]{1234}{5} \right]$ +\end{codetex} + +\newpage + \part{Outils divers et variés} \section{Fractions, ensembles} @@ -3578,7 +3964,7 @@ Peu d'options pour ces commandes : \item le second, mandataire, est le \textsf{calcul} ou la \textsf{division} à convertir. \end{itemize} -À noter que la macro est dans un bloc \textsf{ensuremath} donc les \textsf{\$\ldots\$} ne sont pas nécessaires. +À noter que la macro est dans un bloc \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas nécessaires. \end{codecles} \begin{codetex}[listing only] @@ -3911,296 +4297,6 @@ En ce qui concerne les autres arguments : \end{center} \end{codesortie} -\section{Conversions binaire/hexadécimal/décimal}\label{conversions} - -\subsection{Idée} - -\begin{codeidee} -L'idée est de \textit{compléter} les possibilités offertes par le package \ctex{xintbinhex}, en mettant en forme quelques conversions : - -\begin{itemize} - \item décimal en binaire avec blocs de 4 chiffres en sortie ; - \item conversion binaire ou hexadécimal en décimal avec écriture polynomiale. -\end{itemize} -\end{codeidee} - -\begin{codeinfo} -Le package \ctex{xintbinhex} est la base de ces macros, puisqu'il permet de faire des conversions directes ! - -\smallskip - -Les macros présentées ici ne font que les intégrer dans un environnement adapté à une correction ou une présentation ! -\end{codeinfo} - -\begin{codetex}[listing only] -\xintDecToHex{100} -\xintDecToBin{51} -\xintHexToDec{A4C} -\xintBinToDec{110011} -\xintBinToHex{11111111} -\xintHexToBin{ACDC} -\xintCHexToBin{3F} -\end{codetex} - -\begin{codesortie} -\xintDecToHex{100} - -\xintDecToBin{51} - -\xintHexToDec{A4C} - -\xintBinToDec{110011} - -\xintBinToHex{11111111} - -\xintHexToBin{ACDC} - -\xintCHexToBin{3F} -\end{codesortie} - -\subsection{Conversion décimal vers binaire} - -\begin{codetex}[listing only] -\PLconvdecbin(*)[<clés>]{<nombre>} -\end{codetex} - -\begin{codecles} -Concernant la commande en elle même, peu de paramétrage : - -\begin{itemize} - \item la version \textit{étoilée} qui permet de ne pas afficher de zéros avant pour \og compléter \fg{} ; - \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true} - \item l'argument, mandataire, est le nombre entier à convertir. -\end{itemize} - -Le formatage est géré par \ctex{sinuitx}, le mieux est donc de positionner la commande dans un environnement mathématique. - -\smallskip - -Les nombres écrits en binaire sont, par défaut, présentés en bloc(s) de 4 chiffres. -\end{codecles} - -\begin{codetex}[listing only] -% Conversion avec affichage de la base et par bloc de 4 -$\PLconvdecbin{415}$ -% Conversion avec affichage de la base et sans forcément des blocs de 4 -$\PLconvdecbin*{415}$ -% Conversion sans affichage de la base et par bloc de 4 -$\PLconvdecbin[affbase=false]{415}$ -% Conversion sans affichage de la base et sans forcément des blocs de 4 -$\PLconvdecbin*[affbase=false]{415}$ -\end{codetex} - -\begin{codesortie} -$\PLconvdecbin{415}$ - -\smallskip - -$\PLconvdecbin*{415}$ - -\smallskip - -$\PLconvdecbin[affbase=false]{415}$ - -\smallskip - -$\PLconvdecbin*[affbase=false]{415}$ -\end{codesortie} - -\subsection{Conversion binaire vers hexadécimal} - -\begin{codeinfo} -L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres : - -\begin{itemize} - \item la macro rajoute éventuellement les zéros pour compléter ; - \item elle découpe par blocs de 4 chiffres binaires ; - \item elle présente la conversion de chacun des blocs de 4 chiffres binaires ; - \item elle affiche la conversion en binaire. -\end{itemize} -\end{codeinfo} - -\begin{codetex}[listing only] -\PLconvbinhex[<clés>]{<nombre>} -\end{codetex} - -\begin{codecles} -Quelques \Cle{clés} sont disponibles pour cette commande : - -\begin{itemize} - \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true} - \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true} - %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt} -\end{itemize} - -Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique. -\end{codecles} - -\begin{codetex}[listing only] -%conversion avec détails et affichage de la base -$\PLconvbinhex{110011111}$ -%conversion sans détails et affichage de la base -$\PLconvbinhex[details=false]{110011111}$ -%conversion sans détails et sans affichage de la base -$\PLconvbinhex[affbase=false,details=false]{110011111}$ -\end{codetex} - -\begin{codesortie} -$\PLconvbinhex{110011111}$ - -$\PLconvbinhex[details=false]{110011111}$ - -$\PLconvbinhex[affbase=false,details=false]{110011111}$ -\end{codesortie} - -\pagebreak - -\subsection{Conversion binaire ou hexadécimal en décimal} - -\begin{codeinfo} -L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale : - -\begin{itemize} - \item écrit la somme des puissances ; - \item convertir si besoin les \textit{chiffres} hexadécimal ; - \item peut ne pas afficher les monômes de coefficient 0. -\end{itemize} -\end{codeinfo} - -\begin{codetex}[listing only] -\PLconvtodec[<clés>]{<nombre>} -\end{codetex} - -\begin{codecles} -Quelques \Cle{clés} sont disponibles pour cette commande : - -\begin{itemize} - \item la clé \Cle{basedep} qui est la base de départ (2 ou 16 !) ; \hfill{}défaut \Cle{2} - \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true} - \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4 ; \hfill{}défaut \Cle{true} - \item le booléen \Cle{zeros} qui affiche les chiffres 0 dans la somme. \hfill{}défaut \Cle{true} -\end{itemize} - -Le formatage est toujours géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique. -\end{codecles} - -\begin{codetex}[listing only] -%conversion 16->10 avec détails et affichage de la base et zéros -$\PLconvtodec[basedep=16]{19F}$ -%conversion 2->10 avec détails et affichage de la base et zéros -$\PLconvtodec{110011}$ -%conversion 2->10 avec détails et affichage de la base et sans zéros -$\PLconvtodec[zeros=false]{110011}$ -%conversion 16->10 sans détails et affichage de la base et avec zéros -$\PLconvtodec[basedep=16,details=false]{AC0DC}$ -%conversion 16->10 avec détails et sans affichage de la base et sans zéros -$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$ -\end{codetex} - -\begin{codesortie} -$\PLconvtodec[basedep=16]{19F}$ - -$\PLconvtodec{110011}$ - -$\PLconvtodec[zeros=false]{110011}$ - -$\PLconvtodec[basedep=16,details=false]{AC0DC}$ - -$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$ -\end{codesortie} - -\newpage - -\section{Conversion \og présentée \fg{} d'un nombre en décimal}\label{convrestes} - -\subsection{Idée} - -\begin{codeidee} -L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque. - -\smallskip - -Les commandes de la section précédente donne \textit{juste} les résultats, dans cette section il y a en plus la présentation de la conversion. - -\smallskip - -La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit. -\end{codeidee} - -\begin{codetex}[listing only] -... -\tikzstyle{every picture}+=[remember picture] -... -\end{codetex} - -\subsection{Code et clés} - -\begin{codetex}[] -%conversion basique -\PLconvDepuisDec{78}{2} -\end{codetex} - -\begin{codeinfo} -La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles. -\end{codeinfo} - -\begin{codetex}[listing only] -\PLconvDepuisDec[<options>]{<nombre en base 10>}{<base d'arrivée>} -\end{codetex} - -\begin{codecles} -Quelques options pour cette commande : - -\begin{itemize} - \item la clé \Cle{couleur} pour la couleur du \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{red} - \item la clé \Cle{decalh} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt} - \item la clé \Cle{decalv} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt} - \item la clé \Cle{noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ; \hfill{}défaut \Cle{EEE} - \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{true} - \item le booléen \Cle{couleurres} pour afficher ou non la conversion en couleur (identique au rectangle). \hfill{}défaut \Cle{false} -\end{itemize} -\end{codecles} - -\begin{codetex}[listing only] -%conversion avec changement de couleur -\PLconvDepuisDec[couleur=DarkBlue]{45}{2} - -%conversion sans le rectangle -Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}. - -%conversion avec gestion du decalh pour le placement précis du rectangle -\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16} - -%conversion avec nœud personnalisé et réutilisation -\PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}. -\begin{tikzpicture} - \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ; -\end{tikzpicture} -\end{codetex} - -\begin{codesortie} -\PLconvDepuisDec[couleur=DarkBlue]{45}{2} - -\medskip - -Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}. - -\medskip - -\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16} - -\medskip - -On obtient donc \PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}. -\begin{tikzpicture} - \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ; -\end{tikzpicture} - -\vspace{1.5cm} - -~ -\end{codesortie} - \newpage \section{Style \og main levée \fg{} en \TikZ}\label{mainlevee} @@ -4272,6 +4368,69 @@ Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens - \newpage +\section{Écriture d'un trinôme, trinôme aléatoire}\label{trinome} + + +\subsection{Idée} + +\begin{codeidee} +L'idée est de proposer une commande pour écrire, sous forme développée réduite, un trinôme en fonction de ses coefficients $a$, $b$ et $c$ (avec $a\neq0$), avec la gestion des coefficients nuls ou égaux à $\pm1$. + +\smallskip + +En combinant avec le package \ctex{xfp} et fonction de générateur d'entiers aléatoires, on peut de ce fait proposer une commande pour générer aléatoirement des trinômes à coefficients entiers (pour des fiches d'exercices par exemple). + +\smallskip + +L'affichage des monômes est géré par le package \ctex{siunitx} et le tout est dans un environnement \ctex{ensuremath}. +\end{codeidee} + +\begin{codetex}[listing only] +\EcritureTrinome[<options>]{a}{b}{c} +\end{codetex} + +\begin{codetex}[] +\EcritureTrinome{1}{7}{0}\\ +\EcritureTrinome{1.5}{7.3}{2.56}\\ +\EcritureTrinome{-1}{0}{12}\\ +\EcritureTrinome{-1}{-5}{0} +\end{codetex} + +\subsection{Clés et options} + +\begin{codecles} +Quelques clés et options sont disponibles : + +\begin{itemize} + \item la clé booléenne \Cle{Alea} pour autoriser les coefficients aléatoires (voir plus bas pour la syntaxe) ;\hfill{}défaut \Cle{false} + \item la clé booléenne \Cle{Anegatif} pour autoriser $a$ à être négatif.\hfill{}défaut \Cle{true} +\end{itemize} +\end{codecles} + +\begin{codeinfo} +La clé \Cle{Alea} va modifier la manière de saisir les coefficients, il suffira dans ce cas de préciser les bornes, sous la forme \ctex{valmin,valmax}, de chacun des coefficients. C'est ensuite le package \ctex{xfp} qui va se charger de générer les coefficients. +\end{codeinfo} + +\begin{codetex}[sidebyside] +Avec $a$ entre 1 et 5 (et signe aléatoire) puis $b$ entre $-2$ et 7 puis $c$ entre $-10$ et 20 : + +$f(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\ +$g(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\ +$h(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$ + +\medskip + +Avec $a$ entre 1 et 10 (forcément positif) puis $b$ entre $-2$ et 2 puis $c$ entre 0 et 4 : + +\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4} + +\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4} + +\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4} +\end{codetex} + +\newpage + \part{Jeux et récréations} \section{PixelART via un fichier csv, en \TikZ}\label{pixelart} @@ -4336,7 +4495,6 @@ L'option \Cle{csvii} permet de passer l'appel au package en version \LaTeXe. \begin{filecontents*}[overwrite]{basique.csv} A,B,C,D A,B,D,C -B,A,C,D B,A,D,C C,A,B,D \end{filecontents*} @@ -4774,6 +4932,10 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0 \part{Historique} +{\small \bverb|v1.3.6|~:~~~~Présentation de l'algorithme d'Euclide pour le PGCD (page \pageref{prespgcd}) + +{\small \bverb| |~:~~~~Affichage d'un trinôme par coefficients, aléatoires ou non (page \pageref{trinome}) + {\small \bverb|v1.3.5|~:~~~~Correction d'un bug avec la loi géométrique (page \pageref{calcprobas}) {\small \bverb|v1.3.4|~:~~~~Ajout de petits schémas, en \TikZ{}, de lois normales et exponentielles (page \pageref{schemasprobas}) @@ -4806,7 +4968,7 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0 {\small \bverb|v1.2.1|~:~~~~Amélioration de la gestion du csv pour Pixelart -{\small \bverb|v1.2 |~:~~~~Correction d'un méchant bug sur Pixelart +{\small \bverb|v1.2.0|~:~~~~Correction d'un \textit{méchant} bug sur Pixelart {\small \bverb|v1.1.9|~:~~~~Pixelart en \TikZ{} (page \pageref{pixelart}) diff --git a/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty b/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty index b4651856e79..43391bc2b5b 100644 --- a/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty +++ b/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty @@ -3,7 +3,8 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2022/10/17 v1.3.5 - Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2022/10/18 v1.3.6 - Aide pour l'utilisation de LaTeX en lycee] +% 1.3.6 Ajout d'un "générateur" de trinômes (ou mise en forme basique) % 1.3.5 Correction de bugs sur les calculs de probas (loi géométrique) % 1.3.4 Ajout des calculs de probas geomtriques et hypergeometriques + petits schémas probas % 1.3.3 Ajout de commandes pour des arbres de probas classiques, en tikz @@ -2989,4 +2990,107 @@ \end{tikzpicture} } +%===============TRINOMEALEA============== OK! +\setKVdefault[trinomealea]{% + Alea=false,% + Anegatif=true +} + +\NewDocumentCommand\EcritureTrinome{ O{} m m m }{% + \useKVdefault[trinomealea]% + \setKV[trinomealea]{#1}% + \ifboolKV[trinomealea]{Alea}% + {% + \xdef\Coeffa{\fpeval{randint(#2)}}\xdef\Coeffb{\fpeval{randint(#3)}}\xdef\Coeffc{\fpeval{randint(#4)}}% + \xdef\AleaSigneA{\fpeval{randint(1,2)}}% + \ifboolKV[trinomealea]{Anegatif}% + {\xintifboolexpr{\AleaSigneA == 1}{\def\TriSigneA{}}{\def\TriSigneA{-}}}% + {\def\TriSigneA{}}%forcément a>0 + }% + {% + \xdef\Coeffa{#2}\xdef\Coeffb{#3}\xdef\Coeffc{#4}% + \def\TriSigneA{}% + }% + \def\TriPartieA{\num{\TriSigneA\Coeffa} x^2}% + \xintifboolexpr{\Coeffa == 1}% + {\def\TriPartieA{x^2}}{}% + \xintifboolexpr{\Coeffa == -1}% + {\def\TriPartieA{-x^2}}{}% + \def\TriPartieB{\num[print-implicit-plus]{\Coeffb}x}% + \xintifboolexpr{\Coeffb == 0}% + {\def\TriPartieB{}}{}% + \xintifboolexpr{\Coeffb == 1}% + {\def\TriPartieB{+x}}{}% + \xintifboolexpr{\Coeffb == -1}% + {\def\TriPartieB{-x}}{}% + \xintifboolexpr{\Coeffc == 0}% + {\def\TriPartieC{}}{\def\TriPartieC{\num[print-implicit-plus]{\Coeffc}}}% + %formatage + \ensuremath{\TriPartieA\TriPartieB\TriPartieC}% +} + + +%=================PRESPGCD=============== OK! +\DeclareMathOperator{\PLpgcd}{PGCD} +\defKV[prespgcd]{% + Couleur=\def\PLPGCDCouleur{#1},% + DecalRect=\def\PLPGCDDecal{#1},% + Noeud=\def\PLPGCDNoeud{#1} +} + +\setKVdefault[prespgcd]{% + Couleur=red,% + DecalRect=2pt,% + Rectangle=true,% + Noeud=FFF,% + CouleurResultat=false,% + AfficheConclusion=true,% + AfficheDelimiteurs=true +} + +\newcommand\PresentationPGCD[3][]{% + \useKVdefault[prespgcd]% + \setKV[prespgcd]{#1}% + \xdef\respgcd{\xinteval{gcd(#2,#3)}} + \xdef\ValA{#2}\xdef\ValB{#3}%on stocke les valeurs du départ + \ensuremath{% + \ifboolKV[prespgcd]{AfficheDelimiteurs}% + {\left\lbrace}% + {}% + \begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r} + %1ère division + \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}} + \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}% + \xintifboolexpr{\ValR == \respgcd}% + {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd + {\num{\ValR}}% + \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs + \whiledo {\ValR > 0}% + {% + \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}% + \\% + \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}% + \xintifboolexpr{\ValR == \respgcd}% + {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd + {\num{\ValR}}% + \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs + }% + \end{array}% + \ifboolKV[prespgcd]{AfficheDelimiteurs}% + {\right|}% + {}% + \ifboolKV[prespgcd]{AfficheConclusion}% + {% + \Rightarrow \PLpgcd\left(\num{#2}\mathpunct{};\num{#3}\right)=\ifboolKV[prespgcd]{CouleurResultat}{\mathcolor{\PLPGCDCouleur}{\num{\respgcd}}}{\num{\respgcd}}% + }% + {}% + }% + \ifboolKV[prespgcd]{Rectangle}% + {% + \begin{tikzpicture} + \draw[overlay,rounded corners=4pt,\PLPGCDCouleur,thick] ($(\PLPGCDNoeud1.north west)+(-\PLPGCDDecal,\PLPGCDDecal)$) rectangle ($(\PLPGCDNoeud1.south east)+(\PLPGCDDecal,-\PLPGCDDecal)$) ; + \end{tikzpicture}% + }{}% +} + \endinput
\ No newline at end of file |