texlive[65070] Master/texmf-dist: proflycee (21nov22)

commits+karl at tug.org commits+karl at tug.org
Mon Nov 21 21:50:48 CET 2022


Revision: 65070
          http://tug.org/svn/texlive?view=revision&revision=65070
Author:   karl
Date:     2022-11-21 21:50:48 +0100 (Mon, 21 Nov 2022)
Log Message:
-----------
proflycee (21nov22)

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-11-21 20:50:01 UTC (rev 65069)
+++ trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex	2022-11-21 20:50:48 UTC (rev 65070)
@@ -6,11 +6,11 @@
 
 \documentclass{article}
 \usepackage[french]{babel}
+\usepackage{ProfLycee}
 \usepackage{mathtools}
 \usepackage{lualatex-math}
 \usepackage{luatexbase}
 \usepackage[math-style=french,bold-style=ISO]{fourier-otf}
-\usepackage{ProfLycee}
 \usepackage{tkz-euclide}
 \usetikzlibrary{hobby}
 \usepackage[group-minimum-digits=4]{siunitx}
@@ -62,8 +62,8 @@
 \setlength{\parindent}{0pt}
 \definecolor{LightGray}{gray}{0.9}
 
-\def\PLversion{2.0.1}
-\def\PLdate{6 Novembre 2022}
+\def\PLversion{2.0.5}
+\def\PLdate{20 Novembre 2022}
 
 \tcbset{vignettes/.style={%
 		nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -241,6 +241,8 @@
 
 Une commande pour simplifier l'écriture d'un ensemble, avec espaces \og automatiques \fg.
 
+Des commandes pour effectuer des calculs avec des suites récurrentes.
+
 Une commande pour créer, en \TikZ, la \textit{toile} pour une suite récurrente.
 
 Une commande pour créer, en \TikZ, un cercle trigo avec options.
@@ -328,7 +330,7 @@
 	\item \ctex{xparse}, \ctex{xkeyval}, \ctex{xstring}, \ctex{simplekv} ;
 	\item \ctex{listofitems}, \ctex{xintexpr} , \ctex{xintbinhex} et \ctex{xintgcd};
 	\item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{tcolorbox} ;
-	\item \ctex{piton} (uniquement si compilation en \LuaLaTeX{} !) et \ctex{pythontex}
+	\item \ctex{piton} (uniquement si compilation en \LuaLaTeX{} !) et \ctex{pythontex}.
 \end{itemize}
 \end{codeinfo}
 
@@ -342,9 +344,9 @@
 %exemple de chargement pour une compilation en (pdf)latex
 \documentclass{article}
 \usepackage[french]{babel}
+\usepackage{ProfLycee}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
-\usepackage{ProfLycee}
 ...
 \end{codetex}
 
@@ -352,9 +354,9 @@
 %exemple de chargement pour une compilation en (xe/lua)latex
 \documentclass{article}
 \usepackage[french]{babel}
+\usepackage{ProfLycee}
 \usepackage{mathtools}
 \usepackage{fontspec}
-\usepackage{ProfLycee}
 ...
 \end{codetex}
 
@@ -418,7 +420,7 @@
 
 \begin{codetex}[listing only]
 ...
-\usepackage[<options>]{ProfLycee-old}
+\usepackage[<options>]{ProfLycee-old} %nouveautés non disponibles par contre...
 ...
 \end{codetex}
 
@@ -533,18 +535,24 @@
 \SplineTikz[<options>]{<liste>}
 \TangenteTikz[<options>]{<liste>}
 
-%toile pour une suite récurrente, dans un environnement tikz
+%Présentation d'une solution par balayage (TVI)
+\SolutionTVI[<options>]{<fonction>}{<valeur>}
+
+%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>]
 
+%Mise en forme de la conclusion d'un seuil
+\SolutionSeuil[<options>]{<fonction associée>}{<seuil>}
+\end{codetex}
+
+\begin{codetex}[listing only]
 %présentation type calcul formel, dans un environnement tikz
 \CalculFormelParametres[<options>]
 \CalculFormelLigne[<options>]{<commande>}{<résultat>}
-\end{codetex}
 
-\begin{codetex}[listing only]
 %présentation de code Python
 \begin{CodePythonLst}(*)[<largeur>]{<commandes tcbox>}...\end{CodePythonLst}
-\CodePythonLstFichier(*)[<largeur>]{<commandes tcbox<}{<script>}
 \begin{CodePiton}[<options>]...\end{CodePiton}
 \begin{CodePythontex}[<options>]...\end{CodePythontex}
 \begin{CodePythonMinted}(*)[<largeur>][<options>]...\end{CodePythonMinted}
@@ -985,6 +993,173 @@
 
 \newpage
 
+\section{Présentation d'une solution d'équation par balayage}\label{solutiontvi}
+
+\subsection{Idée}
+
+\begin{codeidee}
+\cmaj{2.0.4} L'idée est de présenter l'obtention d'une solution approchée d'équation par balayage, dans le cadre du TVI par exemple. Les calculs et tests sont effectués grâce au package \ctex{xinttools}, et le formatage par \ctex{tabularray} et \ctex{sinuitx}.
+\end{codeidee}
+
+\begin{codeattention}
+Le code ne trouve pas la solution, il met \textit{juste} en forme mais effectue quand même les calculs d'images et les tests.
+\end{codeattention}
+
+\begin{codetex}[listing only]
+\SolutionTVI[<options>]{<fonction>}{<valeur>}
+\end{codetex}
+
+\subsection{Clés et arguments}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour cette commande, relative donc à une équation du type $f(x)=k$ :
+
+\begin{itemize}
+	\item la clé \Cle{NomFct} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{f}
+	\item la clé \Cle{NomSol} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{\textbackslash{}alpha}
+	\item les clés \Cle{va} et \Cle{vb} qui sont les bornes inférieure et supérieure de l'encadrement ;
+	\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{Majuscule} qui affiche le texte avant, avec une majuscule au début ;\hfill{}défaut \Cle{true}
+\end{itemize}
+
+\smallskip
+
+Le premier argument mandataire est la fonction, en syntaxe \ctex{xint} et avec comme variable $x$, et le second la valeur de $k$.
+\end{codecles}
+
+\begin{codetex}[]
+Pour $f(x)=0$ avec $f(x)=x^2-2$. On obtient \SolutionTVI[va=1.414,vb=1.415,Precision=3]{x**2-2}{0}.
+\end{codetex}
+
+\begin{codetex}[]
+Avec $\varphi(t)=3t\,\rm{e}^{-0,5t+1}=5$,
+\SolutionTVI[Majuscule=false,Calculatrice,va=1.02,vb=1.03,NomFct=\varphi]{3*x*exp(-0.5*x+1)}{5}
+\end{codetex}
+
+\begin{codetex}[]
+On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$.
+\SolutionTVI[Balayage,Stretch=1.5,va=4.48,vb=4.49,NomFct=g,Precision=4,NomSol={x_0}]{log(x)}{1.5}.
+\end{codetex}
+
+\newpage
+
+\section{Suites récurrentes simples}\label{calcrecurr}
+
+\subsection{Idées}
+
+\begin{codeidee}
+\cmaj{2.0.3} L'idée est de proposer des commandes pour effectuer des calculs avec des suites récurrentes du type $u_{n+1}=f\big(u_n\big)$ :
+
+\begin{itemize}
+	\item calcul de termes avec possibilité d'arrondir ;
+	\item présentation de la conclusion de la recherche d'un seuil du type $u_n > S$ ou $u_n < S$.
+\end{itemize}
+\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.
+
+\smallskip
+
+\cmaj{2.0.5} Le choix a été fait de faire les calculs en mode \ctex{float} pour éviter les dépassements de capacité de \ctex{xint} liés aux boucles\ldots
+\end{codeattention}
+
+\begin{codetex}[listing only]
+%commande pour calculer et formater
+\CalculTermeRecurrence[<options>]{<fonction associée>}
+
+%mise en forme de la conclusion d'un seuil
+\SolutionSeuil[<options>]{<fonction associée>}{<seuil>}
+\end{codetex}
+
+\subsection{Clés et arguments}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour la commande du calcul d'un terme :
+
+\begin{itemize}
+	\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{Precision} qui précise l'arrondi éventuel ;\hfill{}défaut \Cle{3}
+	\item la clé \Cle{N} qui est l'indice du terme à calculer.
+\end{itemize}
+
+\smallskip
+
+L'argument mandataire est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$.
+\end{codecles}
+
+\begin{codetex}[listing only]
+Avec $\begin{dcases} u_0 = 50 \\ u_{n+1}=\dfrac{1}{u_n+2} \end{dcases}$.
+
+On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$.
+
+On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$.
+
+On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$.
+\end{codetex}
+
+\begin{codesortie}
+Avec $u_0 = 50$ et $u_{n+1}=\dfrac{1}{u_n+2}$.
+
+\smallskip
+
+On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$ \hfill~sortie par défaut.
+
+\smallskip
+
+On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$  \hfill~avec choix de la précision à $10^{-4}$.
+
+\smallskip
+
+On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$ \hfill~avec choix de la précision à $10^{-6}$.
+\end{codesortie}
+
+\begin{codecles}
+Plusieurs \Cle{Clés} sont disponibles pour la commande du seuil :
+
+\begin{itemize}
+	\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{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{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{>}
+\end{itemize}
+
+\smallskip
+
+Le premier argument mandataire est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$, et le second est le seuil à dépasser.
+\end{codecles}
+
+\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}.\\
+\end{codetex}
+
+\subsection{Exemple d'utilisation}
+
+\begin{codetex}[]
+Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
+on obtient le tableau de valeurs suivant : 
+\begin{tabular}{c|c}
+	$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{codetex}
+
+\newpage
+
 \section{Suites récurrentes et \og toile \fg}\label{recurr}
 
 \subsection{Idée}
@@ -994,7 +1169,7 @@
 
 \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{recurrPL} pour afficher la \og toile \fg.
+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{ToileRecurrence} pour afficher la \og toile \fg.
 \end{codeidee}
 
 \subsection{Commandes}
@@ -1176,7 +1351,7 @@
 À la manière du {package} \ctex{tkz-tab}, l'environnement de référence est un environnement \TikZ, dans lequel les lignes sont créées petit à petit, à l'aide de nœuds qui peuvent être réutilisés à loisir ultérieurement.
 \end{codeidee}
 
-\subsection{La commande \og \CalculFormelParametres \fg}
+\subsection{La commande \og CalculFormelParametres \fg}
 
 \begin{codeinfo}
 La première chose à définir est l'ensemble des paramètres \textit{globaux} de la fenêtre de calcul formel, à l'aide de \Cle{Clés}.
@@ -1478,6 +1653,10 @@
 \smallskip
 
 En \textit{partenariat} avec \ctex{tcolorbox}, on peut avoir une présentation de code Python !
+
+\smallskip
+
+\cmaj{2.0.2} Depuis la version \ctex{0.95} du package \ctex{piton}, \Cle{left-margin=auto} est disponible et activée dans \ctex{ProfLycee}.
 \end{codeinfo}
 
 \begin{codeattention}
@@ -3509,7 +3688,7 @@
 
 \begin{codetex}[listing only]
 %avec un formatage manuel
-\num[exponent-mode=scientific]{\BinomP{100}{0.02}{10}}
+\num[exponent-mode=scientific]{\CalcBinomP{100}{0.02}{10}}
 \end{codetex}
 
 \begin{codesortie}
@@ -5238,6 +5417,16 @@
 
 \part{Historique}
 
+{\small \bverb|v 2.0.5|~:~~~~Correction d'un bug avec les calculs de suites récurrentes (page \pageref{calcrecurr})
+
+{\small \bverb|v 2.0.4|~:~~~~Ajout d'une commande pour une présentation de solution par TVI (page \pageref{solutiontvi})
+
+{\small \bverb|       |~:~~~~Correction d'un bug avec \textsf{Arbre=3x3} (page \pageref{arbresprobas})
+
+{\small \bverb|v 2.0.3|~:~~~~Commandes pour des suites récurrentes \textit{simples} (page \pageref{calcrecurr})
+
+{\small \bverb|v 2.0.2|~:~~~~Option \textsf{left-margin=auto} pour le package \textsf{piton} (page \pageref{pythonpiton})
+
 {\small \bverb|v 2.0.1|~:~~~~Chargement du package \textsf{piton} uniquement si compilation en \LuaLaTeX{} (page \pageref{pythonpiton})
 
 {\small \bverb|v 2.0.0|~:~~~~Refonte du code source avec modification des commandes}

Modified: trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-11-21 20:50:01 UTC (rev 65069)
+++ trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-11-21 20:50:48 UTC (rev 65070)
@@ -3,7 +3,11 @@
 % or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/11/06 2.0.1 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/11/20 2.0.5 Aide pour l'utilisation de LaTeX en lycee]
+% 2.0.5	Correction d'un bug avec les calculs en valeurx exactes avec les suites récurrentes...
+% 2.0.4	Ajout d'une commande pour présenter un balayage (TVI) + calculs suites récurrentes 
+% 2.0.3Correction d'un bug avec les arbres 3x3
+% 2.0.2	Ajout de l'option auto-margin sur piton
 % 2.0.1	Chargement de piton uniquement si lua...
 % 2.0.0	Refonte des commandes, des options, et de la documentation !!!
 % ------------------------------------------------------------------
@@ -10,7 +14,7 @@
 % 1.3.7	Ajout d'un environnement simplifié pour du code python via piton
 % 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.4	Ajout des calculs de probas geométriques et hypergeometriques + petits schémas probas
 % 1.3.3	Ajout de commandes pour des arbres de probas classiques, en tikz
 % 1.3.2	Correction d'une commande liée à la conversion bintohex (suppression clé trait)
 % 1.3.1	Ajout d'une option pour ne pas afficher les bords des cases en pixelart
@@ -65,7 +69,7 @@
 \RequirePackage{ifthen}
 \RequirePackage{xparse}
 \RequirePackage{xkeyval}
-\RequirePackage{xfp}
+%\RequirePackage{xfp} %plus utile
 \RequirePackage{xstring}
 \RequirePackage{xintexpr}
 \RequirePackage{xintbinhex}
@@ -72,6 +76,7 @@
 \RequirePackage{simplekv}
 \RequirePackage{listofitems}
 \RequirePackage{tabularray}
+\RequirePackage{hvlogos}
 \RequirePackage{siunitx} %test avec v3
 \sisetup{%
   locale=FR,%
@@ -121,6 +126,23 @@
 	\tcbuselibrary{minted}
 \fi
 
+%-----------PRESENTATIONDECODES--------------
+\NewTCBListing{PresentationCode}{ O{ForestGreen} m }{%
+	sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,%
+	colback=#1!5!white,colframe=#1!75!black,colbacklower=White,%
+	attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,%
+	boxed title style={%
+		colframe=#1!75!black,colback=#1!15!white,%
+		,sharp corners=downhill,arc=12pt,%
+	},%
+	fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
+	listing options={%
+		style=tcblatex,basicstyle=\footnotesize\ttfamily,%
+		keywordstyle=\bfseries\color{Blue},tabsize=4,%
+	},%
+	#2
+}
+
 %---------------SPLINES----------------------
 %------commande utile pour extraire des infos d'une liste
 \newcommand\extractcoeff[2]{% #1=liste & #2=numero
@@ -597,7 +619,7 @@
 			\useKVdefault[envpiton]%
 			\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
 			\ifboolKV[envpiton]{Lignes}%si lignes=true
-				{\PitonOptions{left-margin=12.75pt,line-numbers}}%
+				{\PitonOptions{left-margin=auto,line-numbers}}%
 				{\PitonOptions{}}%
 			\begin{tcolorbox}[stylepythontex,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontlower=\small,\CODPITalign]
 		}%
@@ -971,7 +993,7 @@
 	Option={}
 }
 
-\newcommand\EcritureEnsemble[2][1]{%
+\newcommand\EcritureEnsemble[2][]{%
 	\useKVdefault[kvensemble]%
 	\setKV[kvensemble]{#1}%
 	\ifboolKV[kvensemble]{Mathpunct}%
@@ -986,9 +1008,9 @@
 	{%si oui := fraction
 		\StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
 		\StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
-		\ifblank{#1}{\ensuremath{\frac{\numerateur}{\denominateur}}}{}%si l'argument optionnel est vide
-		\IfStrEq{#1}{d}{\ensuremath{\dfrac{\numerateur}{\denominateur}}}{}%si l'arg opt est d
-		\IfStrEq{#1}{t}{\ensuremath{\tfrac{\numerateur}{\denominateur}}}{}%si l'arg opt est t
+		\ifblank{#1}{\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'argument optionnel est vide
+		\IfStrEq{#1}{d}{\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'arg opt est d
+		\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
 	}
@@ -2707,7 +2729,7 @@
 			\coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
 			\node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
 			\node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
-			\node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+			\node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
 			\node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
 			\node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
 			\node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
@@ -2893,7 +2915,7 @@
 			\coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
 			\node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
 			\node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
-			\node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+			\node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
 			\node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
 			\node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
 			\node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
@@ -3125,4 +3147,128 @@
 	}{}%
 }
 
+%================TVISOLUTION============= OK!
+\defKV[dichoto]{%
+	NomFct=\def\DHTnomfct{#1},%
+	va=\def\DHTva{#1},%
+	vb=\def\DHTvb{#1},%
+	Precision=\def\DHTprec{#1},%
+	NomSol=\def\DHTnomsol{#1},%
+	Stretch=\def\DHTstretch{#1}
+}
+
+\setKVdefault[dichoto]{%
+	NomFct=f,%
+	Precision=2,%
+	NomSol=\alpha,%
+	Stretch=1.15,%
+	Balayage=false,%
+	Calculatrice=false,%
+	Majuscule=true
+}
+
+\newcommand\SolutionTVI[3][]{%
+	\useKVdefault[dichoto]%
+	\setKV[dichoto]{#1}%
+	\xintdeffloatfunc varfct(x) := #2 ;%
+	\ifboolKV[dichoto]{Balayage}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar balayage, on obtient }{}%
+	\ifboolKV[dichoto]{Calculatrice}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
+	\ensuremath{%
+		\left\lbrace \begin{tblr}{stretch=\DHTstretch,colsep=1pt,rll}%
+			{\DHTnomfct}{\left( \num{\DHTva} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTva),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTva)-#3}}{0}{> \num{#3}}{< \num{#3}} \: \\ %
+			{\DHTnomfct}{\left( \num{\DHTvb} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTvb),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTvb)-#3}}{0}{> \num{#3}}{< \num{#3}} \:%
+		\end{tblr}%
+		\right|%
+		\Rightarrow%
+		\num{\DHTva} < \DHTnomsol < \num{\DHTvb}%
+	}%
+}
+
+%=================CALCSRECUR============= OK!
+\NewDocumentCommand\CalculInterneTermeRecurrence{ m m m m }{%pas forcément utile
+	\xintdeffloatfunc varfctrecur(x) := #1 ;%
+	\xdef\vartmp{#3}%
+	\IfEq{#4}{\inteval{#2+1}}%
+	{\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
+	{%
+		\foreach \i in {1,2,...,\inteval{#4-#2}}%
+		{\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
+	}%
+	\xintFloatToDecimal{\vartmp}%
+}
+
+\defKV[calculsuiterecur]{%
+	No=\def\SRninit{#1},%
+	UNo=\def\SRuninit{#1},%
+	Precision=\def\SRprec{#1},%
+	N=\def\SRnfinal{#1}
+	%Format=\def\SRformat{#1},%
+	%OptionFrac=\def\SRoptfrac{#1}
+}
+
+\setKVdefault[calculsuiterecur]{%
+	Precision=3
+	%Format=Arrondi,%
+	%OptionFrac={}
+}
+
+\NewDocumentCommand\CalculTermeRecurrence{ O{} m }{%attention avec les calculs en exact :-(
+	\useKVdefault[calculsuiterecur]%
+	\setKV[calculsuiterecur]{#1}%
+	\xintdeffloatfunc varfct(x) := #2 ;%
+	\xdef\vartmp{\fpeval{\SRuninit}}%
+	\IfEq{\SRnfinal}{\inteval{\SRninit+1}}%
+		{\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
+		{%
+			\foreach \i in {1,2,...,\inteval{\SRnfinal-\SRninit}}%
+				{\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
+		}%
+	%\num[minimum-decimal-digits=\SRprec]{\xintfloateval{round(\vartmp,\SRprec)}}%
+	\num{\xintfloateval{round(\vartmp,\SRprec)}}%
+	%\IfStrEq{\SRformat}{Fraction}{\ConversionFraction[\SRoptfrac]{\xinteval{\vartmp}}}{}%
+	%\IfStrEq{\SRformat}{Brut}{\xinteval{\vartmp}}{}%
+	%\IfStrEq{\SRformat}{Decimal}{\num{\xintfloateval{\vartmp}}}{}%
+	%\IfStrEq{\SRformat}{BrutDecimal}{\xintFloatToDecimal{\vartmp}}{}%
+}
+
+\defKV[suiteseuil]{%
+	No=\def\SEUILindiceinit{#1},%
+	UNo=\def\SEUILtermeinit{#1},%
+	NomSuite=\def\SEUILnomsuite{#1},%
+	SolN=\def\SEUILn{#1},%
+	Precision=\def\SEUILprec{#1},%
+	Stretch=\def\SEUILstretch{#1},%
+	Sens=\def\SEUILsens{#1}
+}
+
+\setKVdefault[suiteseuil]{%
+	NomSuite=u,%
+	Precision=3,%
+	Stretch=1.15,%
+	Balayage=false,%
+	Calculatrice=false,%
+	Majuscule=true,%
+	Sens=>
+}
+
+\newcommand\SolutionSeuil[3][]{%1=options + %2 = fonction + %3 = seuil
+	\useKVdefault[suiteseuil]%
+	\setKV[suiteseuil]{#1}%
+	\def\SEUILnmu{\inteval{\SEUILn-1}}%
+	\IfEq{\SEUILsens}{>}%
+		{\def\SensDeb{\leqslant}\def\SensFin{>}}%
+		{\def\SensDeb{\geqslant}\def\SensFin{<}}%
+	\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%
+	}%
+}
+
 \endinput
\ No newline at end of file



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