texlive[65313] Master/texmf-dist: proflycee (19dec22)

commits+karl at tug.org commits+karl at tug.org
Mon Dec 19 22:57:36 CET 2022


Revision: 65313
          http://tug.org/svn/texlive?view=revision&revision=65313
Author:   karl
Date:     2022-12-19 22:57:36 +0100 (Mon, 19 Dec 2022)
Log Message:
-----------
proflycee (19dec22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
    trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
    trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty

Modified: trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex	2022-12-19 21:57:22 UTC (rev 65312)
+++ trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex	2022-12-19 21:57:36 UTC (rev 65313)
@@ -6,7 +6,7 @@
 
 \documentclass{article}
 \usepackage[french]{babel}
-\usepackage{ProfLycee}
+\usepackage[pythontex]{ProfLycee}
 \usepackage{mathtools}
 \usepackage{lualatex-math}
 \usepackage{luatexbase}
@@ -62,8 +62,8 @@
 \setlength{\parindent}{0pt}
 \definecolor{LightGray}{gray}{0.9}
 
-\def\PLversion{2.0.9}
-\def\PLdate{15 Décembre 2022}
+\def\PLversion{2.1.0}
+\def\PLdate{18 Décembre 2022}
 
 \tcbset{vignettes/.style={%
 		nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -221,7 +221,7 @@
 
 \thispagestyle{empty}
 
-{\Large {\bfseries Résumé} : Quelques commandes pour faciliter l'utilisation de \LaTeX{} pour les enseignants de mathématiques en lycée.}
+{\large {\bfseries Résumé} : Quelques commandes pour faciliter l'utilisation de \LaTeX{} pour les enseignants de mathématiques en lycée.}
 
 \medskip
 
@@ -265,8 +265,10 @@
 
 Une commande pour générer des listes d'entiers aléatoires (avec ou sans répétitions).
 
-\vspace{1.5cm}
+\ldots
 
+~
+
 \hfill{}\textit{Merci à Anne pour ses retours et sa relecture !}
 
 \hfill{}\textit{Merci à Christophe pour ses retours et ses éclairages !}
@@ -279,13 +281,13 @@
 
 \medskip
 
-\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}}
-	{\huge \LaTeX} & & & & &\\
-	& {\huge \pdfLaTeX} & & & & \\
-	& & {\huge \LuaLaTeX} & & & \\
-	& & & {\huge \TikZ} & & \\
-	& & & & {\huge \TeXLive} & \\
-	& & & & & {\huge \MiKTeX} \\
+\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily\LARGE}}
+	{\LaTeX} & & & & &\\
+	& {\pdfLaTeX} & & & & \\
+	& & {\LuaLaTeX} & & & \\
+	& & & {\TikZ} & & \\
+	& & & & {\TeXLive} & \\
+	& & & & & {\MiKTeX} \\
 \end{tblr}
 
 \medskip
@@ -345,10 +347,10 @@
 \begin{codetex}[listing only]
 %exemple de chargement pour une compilation en (pdf)latex
 \documentclass{article}
-\usepackage[french]{babel}
 \usepackage{ProfLycee}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
+\usepackage[french]{babel}
 ...
 \end{codetex}
 
@@ -355,10 +357,9 @@
 \begin{codetex}[listing only]
 %exemple de chargement pour une compilation en (xe/lua)latex
 \documentclass{article}
-\usepackage[french]{babel}
 \usepackage{ProfLycee}
-\usepackage{mathtools}
 \usepackage{fontspec}
+\usepackage[french]{babel}
 ...
 \end{codetex}
 
@@ -377,6 +378,18 @@
 ...
 \end{codetex}
 
+\begin{codeattention}
+\cmaj{2.1.0} Le package\ctex{pythontex} nécessitant une chaîne de compilation particulière, j'ai décidé de le mettre en \textit{option}.
+
+Pour utiliser le package \ctex{pythontex} et utiliser les commandes définies à partir de lui, il faut désormais charger \ctex{ProfLycee} avec l'option \Cle{pythontex}.
+\end{codeattention}
+
+\begin{codetex}[listing only]
+...
+\usepackage[pythontex]{ProfLycee}
+...
+\end{codetex}
+
 \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.
 
@@ -402,6 +415,8 @@
 \end{itemize}
 \end{codeinfo}
 
+\pagebreak
+
 \section{Compléments}
 
 \subsection{Changements à partir de cette version !!}
@@ -483,6 +498,8 @@
 À noter que certaines commandes disponibles sont liées à un environnement \ctex{tikzpicture}, elles ne sont pas autonomes mais permettent de conserver -- en parallèle -- toute commande liée à \TikZ{} !
 \end{codeinfo}
 
+\pagebreak
+
 \subsection{Compilateur(s)}
 
 \begin{codeinfo}
@@ -516,12 +533,20 @@
 En dehors de cela, ce sont des tests multiples et variés qui permettront de détecter d'éventuels bugs !
 \end{codeinfo}
 
+\pagebreak
+
+~
+
 \vfill
 
-\hfill{\Huge $\leftrightsquigarrow$ Bonne(s) découverte(s) $\leftrightsquigarrow$}\hfill~
+%\hfill{\Huge $\leftrightsquigarrow$ Bonne(s) découverte(s) $\leftrightsquigarrow$}\hfill~
 
+\hfill\tikz \draw (0,0) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate=25,scale=4] {$\leftrightsquigarrow$ Bonne(s) découverte(s) $\leftrightsquigarrow$} ;\hfill~
+
 \vfill
 
+~
+
 \newpage
 
 \part{Liste des commandes, par thème}
@@ -540,6 +565,10 @@
 %Présentation d'une solution par balayage (TVI)
 \SolutionTVI[<options>]{<fonction>}{<valeur>}
 
+%schémas pour le signe affine/trinôme, dans un environnement tikz
+\MiniSchemaSignes[<clés>]
+\MiniSchemaSignesTkzTab[<options>]{<numligne>}[<echelle>][<décalage horizontal>]
+
 %Calculer le terme d'une suite récurrente simple, toile pour une suite récurrente simple
 \CalculTermeRecurrence[<options>]{<fonction associée>}
 \ToileRecurrence[<clés>][<options du tracé>][<option supplémentaire des termes>]
@@ -556,10 +585,10 @@
 %présentation de code Python
 \begin{CodePythonLst}(*)[<largeur>]{<commandes tcbox>}...\end{CodePythonLst}
 \begin{CodePiton}[<options>]...\end{CodePiton}
-\begin{CodePythontex}[<options>]...\end{CodePythontex}
+\begin{CodePythontex}[<options>]...\end{CodePythontex}    %avec l'option [pythontex]
 \begin{CodePythonMinted}(*)[<largeur>][<options>]...\end{CodePythonMinted}
 
-%console Python
+%console Python avec l'option [pythontex]
 \begin{ConsolePythontex}[<options>]...\end{ConsolePythontex}
 
 %présentation de pseudocode
@@ -610,24 +639,26 @@
 \BinomP(*)[prec]{n}{p}{k}
 \BinomC(*)[prec]{n}{p}{a}{b}
 
-%loi de Poisson P (l)
+%loi de Poisson P(l)
 \CalcPoissP{l}{k}
 \CalcPoissC{l}{a}{b}
 \PoissonP(*)[prec]{l}{k}
 \PoissonC(*)[prec]{l}{a}{b}
 
-%loi géométrique G (p)
+%loi géométrique G(p)
 \CalcGeomP{p}{k}
 \CalcGeomC{l}{a}{b}
 \GeomP{p}{k}
 \GeomC{l}{a}{b}
 
-%loi hypergéométrique H (N,n,m)
+%loi hypergéométrique H(N,n,m)
 \CalcHypergeomP{N}{n}{m}{k}
 \CalcHypergeomP{N}{n}{m}{a}{b}
 \HypergeomP{N}{n}{m}{k}
 \HypergeomC{N}{n}{m}{a}{b}
+\end{codetex}
 
+\begin{codetex}[listing only]
 %loi normale N(m,s)
 \CalcNormC{m}{s}{a}{b}
 \NormaleC(*)[prec]{m}{s}{a}{b}
@@ -646,6 +677,17 @@
 \end{codetex}
 
 \begin{codetex}[listing only]
+%entier aléatoire entre a et b
+\NbAlea{a}{b}{<macro>}
+%nombre décimal (n chiffres après la virgule) aléatoire entre a et b+1 (exclus)
+\NbAlea[n]{a}{b}{<macro>}
+%création d'un nombre aléatoire sous forme d'une macro
+\VarNbAlea{<macro>}{<calculs>}
+%liste d'entiers aléatoires
+\TirageAleatoireEntiers[<options>]{<macro>}
+\end{codetex}
+
+\begin{codetex}[listing only]
 %conversions
 \ConversionDecBin(*)[<clés>]{<nombre>}
 \ConversionBinHex[<clés>]{<nombre>}
@@ -658,16 +700,13 @@
 \end{codetex}
 
 \begin{codetex}[listing only]
-%conversion en fraction
+%conversion en fraction, simplification de racine
 \ConversionFraction[<option>]{<argument>}
+\SimplificationRacine{<expression>}
 
 %ensemble d'éléments
 \EcritureEnsemble[<clés>]{<liste>}
 
-%schémas pour le signe affine/trinôme, dans un environnement tikz
-\MiniSchemaSignes[<clés>]
-\MiniSchemaSignesTkzTab[<options>]{<numligne>}[<echelle>][<décalage horizontal>]
-
 %trinôme, trinôme aléatoire
 \EcritureTrinome[<options>]{a}{b}{c}
 \end{codetex}
@@ -1023,7 +1062,7 @@
 	\item la clé \Cle{Precision} qui est la précision des calculs pour les images ;\hfill{}défaut \Cle{2}
 	\item la clé \Cle{Stretch} qui permet d'espacer les lignes ;\hfill{}défaut \Cle{1.15}
 	\item les booléens \Cle{Balayage} ou \Cle{Calculatrice} pour afficher un texte en amont ;\hfill{}défaut \Cle{false}
-	\item le booléen  qui affiche un texte avant, en spécifiant la calculatrice ;\hfill{}défaut \Cle{false}
+	%\item le booléen \Cle{Simple} pour une présentation plus \textit{neutre} ;\hfill{}défaut \Cle{false}
 	\item le booléen \Cle{Majuscule} qui affiche le texte avant, avec une majuscule au début ;\hfill{}défaut \Cle{true}
 \end{itemize}
 
@@ -1048,6 +1087,210 @@
 
 \newpage
 
+\section{Petits schémas pour le signe d'une fonction affine ou d'un trinôme}\label{aidesigne}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est d'obtenir une commande pour tracer (en \TikZ) un petit schéma pour \textit{visualiser} le signe d'une fonction affine ou d'un trinôme.
+
+Le code est très largement inspiré de celui du package \ctex{tnsana} même si la philosophie est légèrement différente.
+
+\smallskip
+
+Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{MiniSchemaSignes} pour afficher le schéma.
+\end{codeidee}
+
+\begin{codetex}[tikz lower]
+%code tikz
+\MiniSchemaSignes[<clés>]
+\end{codetex}
+
+\subsection{Commandes}
+
+\begin{codetex}[listing only]
+...
+\begin{tikzpicture}[<options>]
+	...
+	\MiniSchemaSignes[<clés>]
+	...
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codetex}[listing only]
+... {\tikz[<options>] \MiniSchemaSignes[<clés>]}...
+\end{codetex}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour cette commande :
+
+\begin{itemize}
+	\item la clé \Cle{Code} qui permet de définir le type d'expression (voir en-dessous) ;\hfill{}défaut \Cle{da+}
+	\item la clé \Cle{Couleur} qui donne la couleur de la représentation ;\hfill{}défaut \Cle{red}
+	\item la clé \Cle{Racines} qui définit la ou les racines ;\hfill{}défaut \Cle{2}
+	\item la clé \Cle{Largeur} qui est la largeur du schéma ;\hfill{}défaut \Cle{2}
+	\item la clé \Cle{Hauteur} qui est la hauteur du schéma ;\hfill{}défaut \Cle{1}
+	\item un booléen \Cle{Cadre} qui affiche un cadre autour du schéma.\hfill{}défaut \Cle{true}
+\end{itemize}
+\end{codecles}
+
+\begin{codecles}
+Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou \textsf{p} comme parabole) puis les éléments caractéristiques (\textsf{a+} pour $a>0$, \textsf{d0} pour $\Delta=0$, etc) :
+
+\begin{itemize}
+	\item \Cle{Code=da+} := une droite croissante ;
+	\item \Cle{Code=da-} := une droite décroissante ;
+	\item \Cle{Code=pa+d+} := une parabole \textit{souriante} avec deux racines ;
+	\item etc
+\end{itemize}
+\end{codecles}
+
+\pagebreak
+
+\begin{codetex}[listing only]
+\begin{center}
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=da+,Racines=-4]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=da-,Racines={h},Couleur=blue,Largeur=3,Cadre=false]
+	\end{tikzpicture}
+\end{center}
+%
+\begin{center}
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa+d+,Racines={1/2},Couleur=orange]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa+d-,Couleur=ForestGreen]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa+d0,Racines={5},Couleur=purple]
+	\end{tikzpicture}
+\end{center}
+%
+\begin{center}
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa-d+,Racines={-3/0},Couleur=yellow]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa-d-,Couleur=cyan]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa-d0,Racines={-1},Couleur=magenta]
+	\end{tikzpicture}
+\end{center}
+\end{codetex}
+
+\begin{codesortie}
+\begin{center}
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=da+,Racines=-4]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=da-,Racines={h},Couleur=blue,Largeur=3,Cadre=false]
+	\end{tikzpicture}
+\end{center}
+%
+\begin{center}
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa+d+,Racines={1/2},Couleur=orange]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa+d-,Couleur=ForestGreen]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa+d0,Racines={5},Couleur=purple]
+	\end{tikzpicture}
+\end{center}
+%
+\begin{center}
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa-d+,Racines={-3/0},Couleur=yellow]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa-d-,Couleur=cyan]
+	\end{tikzpicture}
+	~~~~
+	\begin{tikzpicture}
+		\MiniSchemaSignes[Code=pa-d0,Racines={-1},Couleur=magenta]
+	\end{tikzpicture}
+\end{center}
+\end{codesortie}
+
+\begin{codetex}[tikz lower]
+%code tikz
+\MiniSchemaSignes[Largeur=3.5,Hauteur=1.5,Code=da-,Racines=\tfrac{-b}{a},Couleur=Plum]
+\end{codetex}
+
+\subsection{Intégration avec tkz-tab}
+
+\begin{codeidee}
+Ces schémas peuvent être de plus utilisés, via la commande \ctex{MiniSchemaSignesTkzTab} pour illustrer les signes obtenus dans un tableau de signes présentés grâce au package \ctex{tkz-tab}.
+
+Pour des raisons internes, le fonctionnement de la commande \ctex{aidesignetkztabPL} est légèrement différent et, pour des raisons que j'ignore, le code est légèrement différent en \textit{interne} (avec une \textit{déconnexion} des caractères \textsf{:} et \textsf{\textbackslash}) pour que la librairie \TikZ{} \ctex{calc} puisse fonctionner (mystère pour le moment\ldots)
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\begin{tikzpicture}
+	%commandes tkztab
+	\MiniSchemaSignesTkzTab[<options>]{<numligne>}[<echelle>][<décalage horizontal>]
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codecles}
+Les \Cle{Clés} pour le premier argument optionnel sont les mêmes que pour la version \textit{initiale} de la commande précédente.
+
+En ce qui concerne les autres arguments :
+
+\begin{itemize}
+	\item le deuxième argument, mandataire, est le numéro de la ligne à côté de laquelle placer le schéma ;
+	\item le troisième argument, optionnel et valant \Cle{0.85} par défaut, est l'échelle à appliquer sur l'ensemble du schéma (à ajuster en fonction de la hauteur de la ligne) ;
+	\item le quatrième argument, optionnel et valant \Cle{1.5} par défait, est lié à l'écart horizontal entre le bord de la ligne du tableau et le schéma.
+\end{itemize}
+
+À noter que si l'un des arguments optionnels (le n°3 et/ou le n°4) sont utilisés, il vaut mieux préciser les 2 !
+\end{codecles}
+
+\begin{codetex}[listing only]
+\begin{center}
+	\begin{tikzpicture}
+		\tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
+		\tkzTabLine{,+,t,+,z,-,}
+		\tkzTabLine{,-,z,+,t,+,}
+		\tkzTabLine{,-,z,+,z,-,}
+		\MiniSchemaSignesTkzTab[Code=da-,Racines={2,5},Couleur=blue]{1}
+		\MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
+		\MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/2,5},Couleur=orange]{3}[0.85][2]
+	\end{tikzpicture}
+\end{center}
+\end{codetex}
+
+\begin{codesortie}
+\begin{center}
+	\begin{tikzpicture}
+		\tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
+		\tkzTabLine{,+,t,+,z,-,}
+		\tkzTabLine{,-,z,+,t,+,}
+		\tkzTabLine{,-,z,+,z,-,}
+		\MiniSchemaSignesTkzTab[Code=da-,Racines={2,5},Couleur=blue]{1}
+		\MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
+		\MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/2,5},Couleur=orange]{3}[0.85][2]
+	\end{tikzpicture}
+\end{center}
+\end{codesortie}
+
+\newpage
+
 \section{Suites récurrentes simples}\label{calcrecurr}
 
 \subsection{Idées}
@@ -1062,7 +1305,7 @@
 \end{codeidee}
 
 \begin{codeattention}
-Le code pour le seuil ne trouve pas la solution (\ldots), il met \textit{juste} en forme et effectue quand même les calculs d'images.
+\cmaj{2.1.0} Le code pour le seuil \textbf{trouve} également le rang cherché, il met en forme et effectue les calculs d'images.
 
 \smallskip
 
@@ -1127,13 +1370,15 @@
 	\item la clé \Cle{NomSuite} qui est le nom de la suite ;\hfill~défaut \Cle{u}
 	\item la clé \Cle{No} qui est le rang initial de la suite ;
 	\item la clé \Cle{UNo} qui est le terme initial de la suite ;
-	\item la clé \Cle{SolN} qui est la valeur de l'indice cherché ;
+	%\item la clé \Cle{SolN} qui est la valeur de l'indice cherché ;
 	\item la clé \Cle{Precision} qui précise l'arrondi éventuel ;\hfill{}défaut \Cle{2}
 	\item la clé \Cle{Stretch} qui permet d'espacer les lignes ;\hfill{}défaut \Cle{1.15}
 	\item les booléens \Cle{Balayage} ou \Cle{Calculatrice} pour afficher un texte en amont ;\hfill{}défaut \Cle{false}
-	\item le booléen  qui affiche un texte avant, en spécifiant la calculatrice ;\hfill{}défaut \Cle{false}
+	\item le booléen \Cle{Simple} pour une présentation plus \textit{neutre} ;\hfill{}défaut \Cle{false}
 	\item le booléen \Cle{Majuscule} qui affiche le texte avant, avec une majuscule au début ;\hfill{}défaut \Cle{true}
-	\item la clé \Cle{Sens} (parmi \Cle{<} ou \Cle{>}) pour indiquer le type de seuil.\hfill{}défaut \Cle{>}
+	\item le booléen \Cle{Exact} qui affiche \ctex{=} au lieu de \ctex{\textbackslash approx} ;\hfill{}défaut \Cle{false}
+	\item le booléen \Cle{Conclusion} pour afficher la conclusion ou non ;\hfill{}défaut \Cle{true}
+	\item la clé \Cle{Sens} parmi \Cle{< / > / <= / >=} pour indiquer le type de seuil.\hfill{}défaut \Cle{>}
 \end{itemize}
 
 \smallskip
@@ -1144,8 +1389,8 @@
 \begin{codetex}[]
 Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
 on cherche $n$ tel que $u_n > 5$.\\
-\SolutionSeuil[Balayage,No=1,UNo=2,SolN=8]{1+(1+x**2)/(1+x)}{5}.\\
-\SolutionSeuil[Calculatrice,Precision=3,No=1,UNo=2,SolN=8]{1+(1+x**2)/(1+x)}{5}.\\
+\SolutionSeuil[Balayage,No=1,UNo=2]{1+(1+x**2)/(1+x)}{5}.
+~\SolutionSeuil[Calculatrice,Precision=4,No=1,UNo=2,Conclusion=false]{1+(1+x**2)/(1+x)}{5}.\\
 \end{codetex}
 
 \subsection{Exemple d'utilisation}
@@ -1157,7 +1402,9 @@
 	$n$ & $u_n$ \\ \hline
 	1 & 2 \\
 	\xintFor* #1 in {\xintSeq{2}{8}} \do {#1 & \CalculTermeRecurrence[No=1,UNo=2,N=#1]{1+(1+x**2)/(1+x)} \\}
-\end{tabular}
+\end{tabular}\\
+
+\SolutionSeuil[Precision=4,No=1,UNo=2,Simple]{1+(1+x**2)/(1+x)}{10} (Ainsi $u_n > 10$ à partir de $n=\the\CompteurSeuil$)
 \end{codetex}
 
 \newpage
@@ -1776,6 +2023,8 @@
 \begin{codeattention}
 \textbf{Attention : }il faut dans ce cas une compilation en plusieurs étapes, comme par exemple \textsf{pdflatex puis pythontex puis pdflatex} !
 
+\cmaj{2.1.0} Il faut de plus penser à charger le package avec l'option \Cle{pythontex}.
+
 Voir par exemple \url{http://lesmathsduyeti.fr/fr/informatique/latex/pythontex/} !
 \end{codeattention}
 
@@ -1905,6 +2154,8 @@
 \ctex{pythontex} permet également de \textit{simuler} (en exécutant également !) du code python dans une \textit{console}.
 
 C'est l'environnement \ctex{ConsolePythontex} qui permet de le faire.
+
+\cmaj{2.1.0} Il ne faut donc pas oublier de charger le package \ctex{ProfLycee} avec l'option \Cle{pythontex}.
 \end{codeidee}
 
 \begin{codetex}[listing only]
@@ -2679,6 +2930,75 @@
 
 \newpage
 
+\section{Style \og main levée \fg{} en \TikZ}\label{mainlevee}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est de \textit{proposer} un style \textit{tout prêt} pour simuler un tracé, en \TikZ, à \og main levée \fg.
+
+Il s'agit d'un style \textit{basique} utilisant la librairie \ctex{decorations} avec \textsf{random steps}.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\tikzset{%
+	mainlevee/.style args={#1et#2}{decorate,decoration={random steps, segment length=#1,amplitude=#2}},
+	mainlevee/.default={5mm et 0.6pt}
+}
+\end{codetex}
+
+\subsection{Utilisation basique}
+
+\begin{codeinfo}
+Il s'agit ni plus ni moins d'un style \TikZ{} à intégrer dans les tracés et constructions \TikZ !
+\end{codeinfo}
+
+\begin{codecles}
+Concernant le style en lui-même, deux paramètres peuvent être précisés via \Cle{mainlevee=\#1 et \#2} :
+
+\begin{itemize}
+	\item \Cle{\#1} correspond à l'option \textsf{segment length} (longueur des segments \textit{types}) ;\hfill{}défaut \Cle{5mm}
+	\item \Cle{\#2} correspond à l'option \textsf{amplitude} (amplitude maximale de la \textit{déformation}).\hfill{}défaut \Cle{0.6pt}
+\end{itemize}
+
+Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -- satisfaisants, mais l'utilisateur pourra modifier à loisir ces paramètres !
+\end{codecles}
+
+\begin{codetex}[listing only]
+%la grille a été rajoutée pour la sortie
+\begin{tikzpicture}
+	\draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
+\end{tikzpicture}
+
+\begin{tikzpicture}
+	\draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
+\end{tikzpicture}
+
+\begin{tikzpicture}
+	\draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codesortie}
+\hfill~\begin{tikzpicture}
+	\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
+	\draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
+\end{tikzpicture}
+\hspace{1.5cm}
+\begin{tikzpicture}
+	\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
+	\draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
+\end{tikzpicture}
+\hspace{1.5cm}
+\begin{tikzpicture}
+	\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
+	\draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
+\end{tikzpicture}
+\hfill~
+\end{codesortie}
+
+\newpage
+
 \part{Outils pour les statistiques}
 
 \section{Paramètres d'une régression linéaire par la méthode des moindres carrés}\label{reglin}
@@ -3204,7 +3524,7 @@
 \begin{codetex}[listing only]
 %...code tikz
 	\AxexTikz[<options>]{valeurs}
-	\AxexTikz[<options>]{valeurs}
+	\AxeyTikz[<options>]{valeurs}
 \end{codetex}
 
 \begin{codecles}
@@ -4144,7 +4464,7 @@
 %nombre aléatoire créé à partir du 1er, stocké dans \DeuxiemeNbAlea
 Entier à partir du précédent : \VarNbAlea{\DeuxiemeNbAlea}{\PremierNbAlea+randint(0,10)}\DeuxiemeNbAlea
 
-%nombre aléatoire décimal (au millième) entre 0 et 10+1 (exlus), stocké dans \PremierDecAlea
+%nombre aléatoire décimal (au millième) entre 0 et 10+1 (exclus), stocké dans \PremierDecAlea
 Décimal entre 0 et $10,999\ldots$ : \NbAlea[3]{0}{10}{\PremierDecAlea}\PremierDecAlea
 
 %liste de 6 nombres, sans répétitions, entre 1 et 50
@@ -4587,11 +4907,11 @@
 
 \newpage
 
-\part{Outils divers et variés}
+\part{Écritures, simplifications}
 
-\section{Fractions, ensembles}
+\section{Simplification sous forme d'une fractions}\label{convfrac}
 
-\subsection{Fractions}\label{convfrac}
+\subsection{Idée}
 
 \begin{codeidee}
 L'idée est d'obtenir une commande pour \textit{simplifier} un calcul sous forme de fraction irréductible.
@@ -4601,6 +4921,8 @@
 \ConversionFraction[<option>]{<argument>}
 \end{codetex}
 
+\subsection{Commande et options}
+
 \begin{codecles}
 Peu d'options pour ces commandes :
 
@@ -4680,8 +5002,10 @@
 
 \pagebreak
 
-\subsection{Ensembles}\label{ensembles}
+\section{Ensembles}\label{ensembles}
 
+\subsection{Idée}
+
 \begin{codeidee}
 L'idée est d'obtenir une commande pour simplifier l'écriture d'un ensemble d'éléments, en laissant gérer les espaces.
 
@@ -4692,6 +5016,8 @@
 \EcritureEnsemble[<clés>]{<liste>}
 \end{codetex}
 
+\subsection{Commande et options}
+
 \begin{codecles}
 Peu d'options pour ces commandes :
 
@@ -4740,282 +5066,8 @@
 
 \newpage
 
-\section{Petits schémas pour le signe d'une fonction affine ou d'un trinôme}\label{aidesigne}
-
-\subsection{Idée}
-
-\begin{codeidee}
-L'idée est d'obtenir une commande pour tracer (en \TikZ) un petit schéma pour \textit{visualiser} le signe d'une fonction affine ou d'un trinôme.
-
-Le code est très largement inspiré de celui du package \ctex{tnsana} même si la philosophie est légèrement différente.
-
-\smallskip
-
-Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{MiniSchemaSignes} pour afficher le schéma.
-\end{codeidee}
-
-\begin{codetex}[tikz lower]
-%code tikz
-\MiniSchemaSignes[<clés>]
-\end{codetex}
-
-\subsection{Commandes}
-
-\begin{codetex}[listing only]
-...
-\begin{tikzpicture}[<options>]
-	...
-	\MiniSchemaSignes[<clés>]
-	...
-\end{tikzpicture}
-\end{codetex}
-
-\begin{codetex}[listing only]
-... {\tikz[<options>] \MiniSchemaSignes[<clés>]}...
-\end{codetex}
-
-\begin{codecles}
-Plusieurs \Cle{Clés} sont disponibles pour cette commande :
-
-\begin{itemize}
-	\item la clé \Cle{Code} qui permet de définir le type d'expression (voir en-dessous) ;\hfill{}défaut \Cle{da+}
-	\item la clé \Cle{Couleur} qui donne la couleur de la représentation ;\hfill{}défaut \Cle{red}
-	\item la clé \Cle{Racines} qui définit la ou les racines ;\hfill{}défaut \Cle{2}
-	\item la clé \Cle{Largeur} qui est la largeur du schéma ;\hfill{}défaut \Cle{2}
-	\item la clé \Cle{Hauteur} qui est la hauteur du schéma ;\hfill{}défaut \Cle{1}
-	\item un booléen \Cle{Cadre} qui affiche un cadre autour du schéma.\hfill{}défaut \Cle{true}
-\end{itemize}
-\end{codecles}
-
-\begin{codecles}
-Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou \textsf{p} comme parabole) puis les éléments caractéristiques (\textsf{a+} pour $a>0$, \textsf{d0} pour $\Delta=0$, etc) :
-
-\begin{itemize}
-	\item \Cle{Code=da+} := une droite croissante ;
-	\item \Cle{Code=da-} := une droite décroissante ;
-	\item \Cle{Code=pa+d+} := une parabole \textit{souriante} avec deux racines ;
-	\item etc
-\end{itemize}
-\end{codecles}
-
-\pagebreak
-
-\begin{codetex}[listing only]
-\begin{center}
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=da+,Racines=-4]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=da-,Racines={h},Couleur=blue,Largeur=3,Cadre=false]
-	\end{tikzpicture}
-\end{center}
-%
-\begin{center}
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa+d+,Racines={1/2},Couleur=orange]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa+d-,Couleur=ForestGreen]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa+d0,Racines={5},Couleur=purple]
-	\end{tikzpicture}
-\end{center}
-%
-\begin{center}
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa-d+,Racines={-3/0},Couleur=yellow]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa-d-,Couleur=cyan]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa-d0,Racines={-1},Couleur=magenta]
-	\end{tikzpicture}
-\end{center}
-\end{codetex}
-
-\begin{codesortie}
-\begin{center}
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=da+,Racines=-4]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=da-,Racines={h},Couleur=blue,Largeur=3,Cadre=false]
-	\end{tikzpicture}
-\end{center}
-%
-\begin{center}
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa+d+,Racines={1/2},Couleur=orange]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa+d-,Couleur=ForestGreen]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa+d0,Racines={5},Couleur=purple]
-	\end{tikzpicture}
-\end{center}
-%
-\begin{center}
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa-d+,Racines={-3/0},Couleur=yellow]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa-d-,Couleur=cyan]
-	\end{tikzpicture}
-	~~~~
-	\begin{tikzpicture}
-		\MiniSchemaSignes[Code=pa-d0,Racines={-1},Couleur=magenta]
-	\end{tikzpicture}
-\end{center}
-\end{codesortie}
-
-\begin{codetex}[tikz lower]
-%code tikz
-\MiniSchemaSignes[Largeur=3.5,Hauteur=1.5,Code=da-,Racines=\tfrac{-b}{a},Couleur=Plum]
-\end{codetex}
-
-\subsection{Intégration avec tkz-tab}
-
-\begin{codeidee}
-Ces schémas peuvent être de plus utilisés, via la commande \ctex{MiniSchemaSignesTkzTab} pour illustrer les signes obtenus dans un tableau de signes présentés grâce au package \ctex{tkz-tab}.
-
-Pour des raisons internes, le fonctionnement de la commande \ctex{aidesignetkztabPL} est légèrement différent et, pour des raisons que j'ignore, le code est légèrement différent en \textit{interne} (avec une \textit{déconnexion} des caractères \textsf{:} et \textsf{\textbackslash}) pour que la librairie \TikZ{} \ctex{calc} puisse fonctionner (mystère pour le moment\ldots)
-\end{codeidee}
-
-\begin{codetex}[listing only]
-\begin{tikzpicture}
-	%commandes tkztab
-	\MiniSchemaSignesTkzTab[<options>]{<numligne>}[<echelle>][<décalage horizontal>]
-\end{tikzpicture}
-\end{codetex}
-
-\begin{codecles}
-Les \Cle{Clés} pour le premier argument optionnel sont les mêmes que pour la version \textit{initiale} de la commande précédente.
-
-En ce qui concerne les autres arguments :
-
-\begin{itemize}
-	\item le deuxième argument, mandataire, est le numéro de la ligne à côté de laquelle placer le schéma ;
-	\item le troisième argument, optionnel et valant \Cle{0.85} par défaut, est l'échelle à appliquer sur l'ensemble du schéma (à ajuster en fonction de la hauteur de la ligne) ;
-	\item le quatrième argument, optionnel et valant \Cle{1.5} par défait, est lié à l'écart horizontal entre le bord de la ligne du tableau et le schéma.
-\end{itemize}
-
-À noter que si l'un des arguments optionnels (le n°3 et/ou le n°4) sont utilisés, il vaut mieux préciser les 2 !
-\end{codecles}
-
-\begin{codetex}[listing only]
-\begin{center}
-	\begin{tikzpicture}
-		\tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
-		\tkzTabLine{,+,t,+,z,-,}
-		\tkzTabLine{,-,z,+,t,+,}
-		\tkzTabLine{,-,z,+,z,-,}
-		\MiniSchemaSignesTkzTab[Code=da-,Racines={2,5},Couleur=blue]{1}
-		\MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
-		\MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/2,5},Couleur=orange]{3}[0.85][2]
-	\end{tikzpicture}
-\end{center}
-\end{codetex}
-
-\begin{codesortie}
-\begin{center}
-	\begin{tikzpicture}
-		\tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
-		\tkzTabLine{,+,t,+,z,-,}
-		\tkzTabLine{,-,z,+,t,+,}
-		\tkzTabLine{,-,z,+,z,-,}
-		\MiniSchemaSignesTkzTab[Code=da-,Racines={2,5},Couleur=blue]{1}
-		\MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
-		\MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/2,5},Couleur=orange]{3}[0.85][2]
-	\end{tikzpicture}
-\end{center}
-\end{codesortie}
-
-\newpage
-
-\section{Style \og main levée \fg{} en \TikZ}\label{mainlevee}
-
-\subsection{Idée}
-
-\begin{codeidee}
-L'idée est de \textit{proposer} un style \textit{tout prêt} pour simuler un tracé, en \TikZ, à \og main levée \fg.
-
-Il s'agit d'un style \textit{basique} utilisant la librairie \ctex{decorations} avec \textsf{random steps}.
-\end{codeidee}
-
-\begin{codetex}[listing only]
-\tikzset{%
-	mainlevee/.style args={#1et#2}{decorate,decoration={random steps, segment length=#1,amplitude=#2}},
-	mainlevee/.default={5mm et 0.6pt}
-}
-\end{codetex}
-
-\subsection{Utilisation basique}
-
-\begin{codeinfo}
-Il s'agit ni plus ni moins d'un style \TikZ{} à intégrer dans les tracés et constructions \TikZ !
-\end{codeinfo}
-
-\begin{codecles}
-Concernant le style en lui-même, deux paramètres peuvent être précisés via \Cle{mainlevee=\#1 et \#2} :
-
-\begin{itemize}
-	\item \Cle{\#1} correspond à l'option \textsf{segment length} (longueur des segments \textit{types}) ;\hfill{}défaut \Cle{5mm}
-	\item \Cle{\#2} correspond à l'option \textsf{amplitude} (amplitude maximale de la \textit{déformation}).\hfill{}défaut \Cle{0.6pt}
-\end{itemize}
-
-Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -- satisfaisants, mais l'utilisateur pourra modifier à loisir ces paramètres !
-\end{codecles}
-
-\begin{codetex}[listing only]
-%la grille a été rajoutée pour la sortie
-\begin{tikzpicture}
-	\draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-\end{tikzpicture}
-
-\begin{tikzpicture}
-	\draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-\end{tikzpicture}
-
-\begin{tikzpicture}
-	\draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-\end{tikzpicture}
-\end{codetex}
-
-\begin{codesortie}
-\hfill~\begin{tikzpicture}
-	\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
-	\draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-\end{tikzpicture}
-\hspace{1.5cm}
-\begin{tikzpicture}
-	\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
-	\draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-\end{tikzpicture}
-\hspace{1.5cm}
-\begin{tikzpicture}
-	\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
-	\draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-\end{tikzpicture}
-\hfill~
-\end{codesortie}
-
-\newpage
-
 \section{Écriture d'un trinôme, trinôme aléatoire}\label{trinome}
 
-
 \subsection{Idée}
 
 \begin{codeidee}
@@ -5072,6 +5124,51 @@
 
 \newpage
 
+\section{Simplification de racines}\label{simplracine}
+
+\subsection{Idée}
+
+\begin{codeidee}
+\cmaj{2.1.0} L'idée est de proposer une commande pour simplifier \textit{automatiquement} une racine carrée, sous la forme $\frac{a\sqrt{b}}{c}$ avec $\frac{a}{c}$ irréductible et $b$ le \frquote{plus petit possible}.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\SimplificationRacine{<expression ou calcul>}
+\end{codetex}
+
+\begin{codetex}[]
+\SimplificationRacine{48}\\
+\SimplificationRacine{100/34}\\
+\SimplificationRacine{99999}\\
+\SimplificationRacine{1500*0.31*(1-0.31)}\\
+\end{codetex}
+
+\begin{codeinfo}
+C'est -- comme souvent -- le package \ctex{xint} qui s'occupe en interne des calculs, et qui devrait donner des résultats satisfaisant dans la majorité des cas (attention aux \textit{grands nombres}\ldots)
+
+\smallskip
+
+La commande ne fait pas office de \textit{calculatrice}, elle ne permet \textit{que} de simplifier \textit{une} racine carrée (donc transformer si besoin !).
+\end{codeinfo}
+
+\subsection{Exemples}
+
+\begin{codetex}[]
+%Simplification d'un module de complexe
+$\left| 4+6\text{i}\right| = \sqrt{4^2+6^2} = \sqrt{\xinteval{4**2+6**2}}=\SimplificationRacine{4**2+6**2}$
+
+%Simplification n°1
+$\frac{1}{\sqrt{6}}=\left(\sqrt{\frac{1}{6}}\right)=\SimplificationRacine{1/6}$
+
+%Simplification n°2
+$\frac{42}{\sqrt{5}}=\left(\sqrt{\frac{42^2}{5}}\right)=\SimplificationRacine{(42*42)/5}$
+
+%Écart-type d'une loi binomiale
+$\sqrt{\num{150}\times\num{0.35}\times(1-\num{0.35})}=\displaystyle\SimplificationRacine{150*0.35*(1-0.35)}$
+\end{codetex}
+
+\newpage
+
 \part{Jeux et récréations}
 
 \section{PixelART via un fichier csv, en \TikZ}\label{pixelart}
@@ -5573,6 +5670,12 @@
 
 \part{Historique}
 
+{\small \bverb|v 2.1.0|~:~~~~Calcul du seuil, en interne désormais (page \pageref{calcrecurr})
+
+{\small \bverb|       |~:~~~~Commande pour simplifier une racine carrée (page \pageref{simplracine})
+
+{\small \bverb|       |~:~~~~Option \textsf{[pythontex]} pour charger le nécessaire pour \textsf{pythontex}
+	
 {\small \bverb|v 2.0.9|~:~~~~Nombres aléatoires, tirages aléatoires d'entiers (page \pageref{entiersaleatoires})
 
 {\small \bverb|v 2.0.8|~:~~~~Ajout d'un environnement pour présenter du code \LaTeX{} (page \pageref{prescode})

Modified: trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-12-19 21:57:22 UTC (rev 65312)
+++ trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-12-19 21:57:36 UTC (rev 65313)
@@ -3,7 +3,8 @@
 % or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/12/15 2.0.9 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/12/18 2.1.0 Aide pour l'utilisation de LaTeX en lycee]
+% 2.1.0	Ajout du calcul du seuil pour les suites récurrentes + racines de nombres décimaux + option pour pythontex
 % 2.0.9	Ajouts de commandes pour générer des nombres et listes aléatoires
 % 2.0.8	Ajout d'options pour stretch et fonte env python(s) (pas tous...)
 % 2.0.6	Quelques modifications sur les codes python (taille police et marges)...
@@ -58,6 +59,8 @@
 \DeclareOption{nonshellescape}{\@nonshellescapetrue}
 \newif\if at build \@buildfalse
 \DeclareOption{build}{\@buildtrue}
+\newif\if at pythontex \@pythontexfalse
+\DeclareOption{pythontex}{\@pythontextrue}
 \newif\if at csvii \@csviifalse
 \DeclareOption{csvii}{\@csviitrue}
 \DeclareOption*{}
@@ -65,7 +68,6 @@
 
 %------Packages utiles
 \RequirePackage{mathtools}
-%\RequirePackage{amssymb}
 \RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
 \RequirePackage{tikz}
 \RequirePackage{tkz-tab}
@@ -73,7 +75,6 @@
 \RequirePackage{ifthen}
 \RequirePackage{xparse}
 \RequirePackage{xkeyval}
-%\RequirePackage{xfp} %plus utile
 \RequirePackage{xstring}
 \RequirePackage{xintexpr}
 \RequirePackage{xintbinhex}
@@ -83,15 +84,14 @@
 \RequirePackage{listofitems}
 \RequirePackage{tabularray}
 \RequirePackage{hvlogos}
+\RequirePackage{fancyvrb}
 \RequirePackage{siunitx} %test avec v3
-\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%
+\sisetup{locale=FR,output-decimal-marker={,},%
+	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,%
+	group-minimum-digits=4%
 }%
 \RequirePackage{fontawesome5}
 \if at csvii
@@ -113,13 +113,16 @@
 \RequirePackage[most]{tcolorbox}
 %divers
 \RequirePackage{iftex}
+
 %python
-\RequirePackage{fancyvrb}
-\RequirePackage[gobble=auto]{pythontex}
-\setpythontexlistingenv{pythont} %pour ne pas télescoper lstlistings (?)
-\if at build
-	\setpythontexoutputdir{./build/pythontex-files-\jobname} %essai de modif pythontex répertoire build
+\if at pythontex
+	\RequirePackage[gobble=auto]{pythontex}
+	\setpythontexlistingenv{pythont} %pour ne pas télescoper lstlistings (?)
+	\if at build
+		\setpythontexoutputdir{./build/pythontex-files-\jobname} %essai de modif pythontex répertoire build
+	\fi
 \fi
+
 %shellescape
 \if at nonshellescape
 	%on ne charge pas minted et la librairie tcbox
@@ -365,6 +368,7 @@
 		{}
 }
 
+\if at pythontex
 %=========CONSOLEPYTHON=========== OK !!
 \defKV[envpythonconsole]{%
 	Largeur=\def\CSPYlargeur{#1},%
@@ -481,6 +485,7 @@
 		{\end{tcpythontexcodeno}}
 	\verbcenterpost
 }
+\fi
 
 %=========PYTHONMINTED========= OK !!
 \tcbset{pytmintedno/.style={%
@@ -497,7 +502,7 @@
 	}
 }
 
-\DeclareTCBListing{CodePythonMinted}{ s D<>{12cm} O{} }{% étoilée sans numéro, taille puis options...
+\DeclareTCBListing{CodePythonMinted}{ s O{12cm} O{} }{% étoilée sans numéro, taille puis options...
 	\IfBooleanTF{#1}{pytmintedno}{pytminted},
 	enhanced,width=#2,#3,
 	colframe=Green,colback=ForestGreen!5,%
@@ -702,7 +707,7 @@
 	\newcommand\algomathttPL[1]{\mathtt{#1}}
 \fi
 
-\DeclareTCBListing{PseudoCode}{ s D<>{12cm} O{} }{% étoilée sans numéro, <taille> puis option...
+\DeclareTCBListing{PseudoCode}{ s O{12cm} O{} }{% étoilée sans numéro, <taille> puis option...
 	width=#2,#3,
 	stylepseudocodePL,
 	listing only,listing engine=listings,
@@ -763,7 +768,7 @@
 	\end{tblr}
 }
 
-\DeclareTCBListing{TerminalWin}{ D<>{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
+\DeclareTCBListing{TerminalWin}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
 	PLfaketermwin,title={\termwintitre[#2]},%
 	listing only,listing engine=listings,%
 	listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
@@ -814,7 +819,7 @@
 	\end{tblr}
 }
 
-\DeclareTCBListing{TerminalUnix}{ D<>{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
+\DeclareTCBListing{TerminalUnix}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
 	PLtermlinux,title={\termnuxtitre[#2]},%
 	listing only,listing engine=listings,%
 	listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
@@ -864,7 +869,7 @@
 	\end{tblr}
 }
 
-\DeclareTCBListing{TerminalOSX}{ D<>{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
+\DeclareTCBListing{TerminalOSX}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
 	PLfaketermosx,title={\termosxtitre[#2]},%
 	listing only,listing engine=listings,%
 	listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
@@ -1029,7 +1034,7 @@
 		\IfStrEq{#1}{t}{\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'arg opt est t
 	}{%si non := entier
 		\num{\calculargument}%on affiche l'entier, avec le package siunitx
-	}
+	}%
 }
 
 %================CabWeb================ OK !!
@@ -2070,7 +2075,7 @@
 	Grille=true,%
 }
 
-\DeclareDocumentCommand\FenetreSimpleTikz{ O{}  D<>{} m D<>{} m }{%
+\DeclareDocumentCommand\FenetreSimpleTikz{ O{} D<>{} m D<>{} m }{%
 	\useKVdefault[PLsimplewindow]%
 	\setKV[PLsimplewindow]{#1}% on paramètres les nouvelles clés et on les simplifie
 	\ifboolKV[PLsimplewindow]{Grille}%
@@ -3214,6 +3219,46 @@
 	\xintFloatToDecimal{\vartmp}%
 }
 
+\newcount\CompteurSeuil%
+\NewDocumentCommand\CalculSeuil{ m m m m m }{%N0 / UN0 / fct / sgn / seuil := en interne
+	\xintdeffloatfunc varfct(x) := #3 ;%
+	\xdef\vartmp{\fpeval{#2}}%
+	\CompteurSeuil=#1%
+	%symbole de comparaison inversé et boucle
+	\IfEq{#4}{>}%
+		{%
+			\whiledo{\xintLtorEq{\vartmp}{#5} = 1}%
+				{%
+					\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+					\CompteurSeuil=\numexpr\CompteurSeuil+1%
+				}%
+		}{}%
+	\IfEq{#4}{<}%
+		{%
+			\whiledo{\xintGtorEq{\vartmp}{#5} = 1}%
+				{%
+					\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+					\CompteurSeuil=\numexpr\CompteurSeuil+1%
+				}%
+		}{}%
+	\IfEq{#4}{>=}%
+		{%
+			\whiledo{\xintLt{\vartmp}{#5} = 1}%
+				{%
+					\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+					\CompteurSeuil=\numexpr\CompteurSeuil+1%
+				}%
+		}{}%
+	\IfEq{#4}{<=}%
+		{%
+			\whiledo{\xintGt{\vartmp}{#5} = 1}%
+				{%
+					\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+					\CompteurSeuil=\numexpr\CompteurSeuil+1%
+				}%
+		}{}%
+}
+
 \defKV[calculsuiterecur]{%
 	No=\def\SRninit{#1},%
 	UNo=\def\SRuninit{#1},%
@@ -3252,7 +3297,7 @@
 	No=\def\SEUILindiceinit{#1},%
 	UNo=\def\SEUILtermeinit{#1},%
 	NomSuite=\def\SEUILnomsuite{#1},%
-	SolN=\def\SEUILn{#1},%
+	%SolN=\def\SEUILn{#1},%
 	Precision=\def\SEUILprec{#1},%
 	Stretch=\def\SEUILstretch{#1},%
 	Sens=\def\SEUILsens{#1}
@@ -3265,27 +3310,52 @@
 	Balayage=false,%
 	Calculatrice=false,%
 	Majuscule=true,%
-	Sens=>
+	Sens={>},%
+	Exact=false,%
+	Conclusion=true,%
+	Simple=false
 }
 
 \newcommand\SolutionSeuil[3][]{%1=options + %2 = fonction + %3 = seuil
 	\useKVdefault[suiteseuil]%
 	\setKV[suiteseuil]{#1}%
-	\def\SEUILnmu{\inteval{\SEUILn-1}}%
+	%on détermine le seuil, directement et on stocke les bascules !!!
+	\CalculSeuil{\SEUILindiceinit}{\SEUILtermeinit}{#2}{\SEUILsens}{#3}%
+	\def\SEUILn{\inteval{\the\CompteurSeuil}}%
+	\def\SEUILnmu{\inteval{\the\CompteurSeuil-1}}%
+	%formatage de la sortie des signes
 	\IfEq{\SEUILsens}{>}%
 		{\def\SensDeb{\leqslant}\def\SensFin{>}}%
+		{}%
+	\IfEq{\SEUILsens}{<}%
 		{\def\SensDeb{\geqslant}\def\SensFin{<}}%
+		{}%
+	\IfEq{\SEUILsens}{>=}%
+		{\def\SensDeb{<}\def\SensFin{\geqslant}}%
+		{}%
+	\IfEq{\SEUILsens}{<=}%
+		{\def\SensDeb{>}\def\SensFin{\leqslant}}%
+		{}%
+	%formatage
 	\ifboolKV[suiteseuil]{Balayage}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar balayage, on obtient }{}%
 	\ifboolKV[suiteseuil]{Calculatrice}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
-	\ensuremath{%
-		\left\lbrace \begin{tblr}{stretch=\SEUILstretch,colsep=1pt,rll}%
-			\SEUILnomsuite_{\SEUILnmu} &\approx \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} & \SensDeb\num{#3} \: \\ %
-			\SEUILnomsuite_{\SEUILn} &\approx \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} & \SensFin\num{#3} \: %
-		\end{tblr}%
-		\right|%
-		\Rightarrow%
-		n \geqslant \SEUILn%
-	}%
+	\ifboolKV[suiteseuil]{Simple}%
+		{%
+			\ensuremath{\SEUILnomsuite_{\SEUILnmu} \ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} \SensDeb\num{#3}}%
+			\text{~et~}%
+			\ensuremath{\SEUILnomsuite_{\SEUILn} \ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} \SensFin\num{#3}}%
+		}%
+		{%
+			\ensuremath{%
+				\left\lbrace \begin{tblr}{stretch=\SEUILstretch,colsep=1pt,rll}%
+					\SEUILnomsuite_{\SEUILnmu} &\ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} & \SensDeb\num{#3} \: \\ %
+					\SEUILnomsuite_{\SEUILn} &\ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} & \SensFin\num{#3} \: %
+				\end{tblr}%
+				\ifboolKV[suiteseuil]{Conclusion}%
+					{\right| \Rightarrow n \geqslant \SEUILn}%
+					{\right.}%
+			}%
+		}%
 }
 
 %=================ALEATOIRES============= OK!
@@ -3367,4 +3437,46 @@
 	\StrSubstitute{#2}{,}{\TAEEsep}[#2]%on change le séparateur si besoin
 }
 
+%================SIMPLIFRACINES============ OK!
+\DeclareDocumentCommand\SimplificationRacine{ m }{% argument mandataire {calcul ou fraction}
+	\xdef\calculargument{\xintIrr{\xinteval{#1}}}%
+	\IfEndWith{\calculargument}{/1}%
+	{%si c'est un entier !
+		\xdef\calculargument{\xintiieval{#1}}%
+		\xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\calculargument)}}}%
+		\xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+			\xintifboolexpr{ \xintiiRem{\calculargument}{\xintiieval{##1*##1}} == 0}%si le carré divise
+			{\xdef\ExtractRacID{##1}}%
+			{}%
+			}%
+		\xdef\ExtracReste{\xintiieval{\calculargument/(\ExtractRacID*\ExtractRacID)}}%
+		\ensuremath{\xintifboolexpr{\ExtractRacID == 1 && \ExtracReste == 1}%
+			{1}%
+			{ \xintifboolexpr{\ExtractRacID == 1}{}{\num{\xintiieval{\ExtractRacID}}}%
+			\xintifboolexpr{\ExtracReste == 1}{}{\sqrt{\num{\ExtracReste}}} }}%
+%			}%
+	}%
+	{%on va mettre sous forme a\sqrt(d)/b := buggue avec des millièmes...
+		\StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+		\StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+		\xdef\ExtractRacNNum{\xintiieval{\numerateur*\denominateur}}%
+		\xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\ExtractRacNNum)}}}%
+		\xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+			\xintifboolexpr{ \xintiiRem{\ExtractRacNNum}{\xintiieval{##1*##1}} == 0}%si le carré divise
+			{\xdef\ExtractRacID{##1}}%
+			{}
+		}%
+		\xdef\ExtractRacGCD{\xintiiGCD{\ExtractRacID}{\denominateur}}%
+		\xdef\RacNumSimpl{\xintiieval{\ExtractRacID/\ExtractRacGCD}}%simpl num
+		\xdef\RacDenomSimpl{\xintiieval{\denominateur/\ExtractRacGCD}}%
+		\xdef\RacRacSimpl{\xintiieval{\ExtractRacNNum/(\ExtractRacID*\ExtractRacID)}}%
+		\ensuremath{\frac{%
+			\xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+			{1}%
+			{ \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\RacRacSimpl}} }%
+			}%
+			{ \RacDenomSimpl }}%
+	}%
+}
+
 \endinput
\ No newline at end of file



More information about the tex-live-commits mailing list.