texlive[71377] Master/texmf-dist: tkz-grapheur (28may24)

commits+karl at tug.org commits+karl at tug.org
Tue May 28 21:27:36 CEST 2024


Revision: 71377
          https://tug.org/svn/texlive?view=revision&revision=71377
Author:   karl
Date:     2024-05-28 21:27:35 +0200 (Tue, 28 May 2024)
Log Message:
-----------
tkz-grapheur (28may24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex
    trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.tex

Modified: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex	2024-05-27 23:41:49 UTC (rev 71376)
+++ trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-doc-fr.tex	2024-05-28 19:27:35 UTC (rev 71377)
@@ -11,6 +11,7 @@
 \usepackage{fancyhdr}
 \usepackage{hyperref}
 \usepackage{nicefrac}
+\usepackage{fontawesome5}
 \usepackage{tcolorbox}
 \tcbuselibrary{skins,minted}
 \fancyhf{}
@@ -28,8 +29,8 @@
 \hypersetup{pdfborder=0 0 0}
 \usepackage[margin=2cm]{geometry}
 \setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{11/05/2024}
+\def\TPversion{0.1.1}
+\def\TPdate{28/05/2024}
 \usepackage{soul}
 \usepackage{codehigh}
 \usepackage{tabularray}
@@ -67,7 +68,7 @@
 	\begin{tabular}{c}
 	\texttt{Cédric Pierquet}\\
 	{\ttfamily c pierquet -- at -- outlook . fr}\\
-	\texttt{\url{https://github.com/cpierquet/tkz-grapheur}} \\
+	\texttt{\url{https://forge.apps.education.fr/pierquetcedric/package-latex-tkz-grapheur}} \\
 \end{tabular}
 \end{center}
 
@@ -80,8 +81,8 @@
 	%préparation de la fenêtre
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,1,...,10}{0,2,...,16}
 	%déf des fonctions avec nom courbe + nom fonction + expression
-	\DefinirFonction[Nom=cf]<f>{3*x-6}
-	\DefinirFonction[Nom=cg]<g>{-(x-6)^2+12}
+	\DefinirCourbe[Nom=cf]<f>{3*x-6}
+	\DefinirCourbe[Nom=cg]<g>{-(x-6)^2+12}
 	%antécédents et intersection
 	\TrouverIntersections[Aff=false,Nom=K]{cf}{cg}
 	\TrouverAntecedents[AffDroite,Couleur=orange,Nom=I]{cg}{8}
@@ -92,7 +93,7 @@
 		{g(x)}%
 		{(I-2)}{(J-2)}
 	%intégrale entre les deux courbes
-	\TracerIntegrale[Bornes=noeuds,Type=entre]{f(x)}[g(x)]{(K-1)}{(K-2)}
+	\TracerIntegrale[Bornes=noeuds,Type=fct/fct]{f(x)}[g(x)]{(K-1)}{(K-2)}
 	%tracé des courbes et des points
 	\TracerCourbe[Couleur=red]{f(x)}
 	\TracerCourbe[Couleur=teal]{g(x)}
@@ -121,13 +122,13 @@
 	%rajouter des valeurs
 	\RajouterValeursAxeX{0.25,1.4,3.3}{\num{0.25},\num{1.4},\num{3.3}}
 	%fonction trigo (déf + tracé)
-	\DefinirFonction[Nom=ccos,Debut=0,Fin=pi]<fcos>{cos(x)}
-	\DefinirFonction[Nom=csin,Debut=0,Fin=pi]<fsin>{sin(x)}
+	\DefinirCourbe[Nom=ccos,Debut=0,Fin=pi]<fcos>{cos(x)}
+	\DefinirCourbe[Nom=csin,Debut=0,Fin=pi]<fsin>{sin(x)}
 	%intégrale
 	\TrouverIntersections[Aff=false,Nom=JKL]{ccos}{csin}
 	%\DefinirPts{FIN/pi/0}
 	\TracerIntegrale%
-	[Bornes=noeud/abs,Type=entre,Couleurs=cyan/cyan!50]%
+	[Bornes=noeud/abs,Type=fct/fct,Couleurs=cyan/cyan!50]%
 		{fsin(x)}[fcos(x)]%
 		{(JKL-1)}{pi}
 	%tracé des courbes
@@ -272,9 +273,9 @@
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]%
 		{0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}
 		{0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}
-	\DefinirFonction[Nom=cf,Debut=0,Fin=1]<f>{x*exp(x-1)}
-	\DefinirFonction[Nom=delta,Debut=0,Fin=1]<D>{x}
-	\TracerIntegrale[Type=entre]{f(x)}[D(x)]{0}{1}
+	\DefinirCourbe[Nom=cf,Debut=0,Fin=1]<f>{x*exp(x-1)}
+	\DefinirCourbe[Nom=delta,Debut=0,Fin=1]<D>{x}
+	\TracerIntegrale[Type=fct/fct]{f(x)}[D(x)]{0}{1}
 	\TracerCourbe[Couleur=red]{f(x)}
 	\TracerCourbe[Couleur=teal]{D(x)}
 	\PlacerImages[Couleurs=blue/cyan,Traits]{f}{0.8,0.9}
@@ -331,6 +332,7 @@
 \tikzset{pflaxes/.style={line width=0.8pt,->,>=latex}}
 
 %style des points (courbe / nuage)
+\tikzset{pflpoint/.style={line width=0.95pt}}
 \tikzset{pflpointc/.style={radius=1.75pt}}
 \tikzset{pflpointnuage/.style={radius=1.75pt}}
 
@@ -460,6 +462,8 @@
 \end{GraphiqueTikz}
 \end{tcblisting}
 
+À noter qu'il existe les clés booléennes \MontreCode{[Derriere]} (sans les graduations) et \MontreCode{[Devant]} (sans la grille) pour afficher les axes en mode \textit{sous/sur}-impression dans le cas d'intégrales par exemple.
+
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
 \begin{GraphiqueTikz}%
 	[x=2.75cm,y=3cm,
@@ -539,7 +543,7 @@
 
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
 %dans l'environnement GraphiqueTikz
-\DefinirFonction[clés]<nom fct>{formule xint}
+\DefinirCourbe[clés]<nom fct>{formule xint}
 \TracerCourbe[clés]{formule xint}
 \end{tcblisting}
 
@@ -562,10 +566,10 @@
 	Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
 	%définition de la fonction + tracé de la courbe
-	\DefinirFonction[Nom=cf,Debut=5,Fin=19]<f>{-2*x+3+24*log(2*x)}
+	\DefinirCourbe[Nom=cf,Debut=5,Fin=19]<f>{-2*x+3+24*log(2*x)}
 	\TracerCourbe[Couleur=red,Debut=5,Fin=19]{f(x)}
 	%ou en une seule commande si "suffisant"
-	%\DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace]<f>{-2*x+3+24*log(2*x)}
+	%\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace]<f>{-2*x+3+24*log(2*x)}
 \end{GraphiqueTikz}
 \end{tcblisting}
 
@@ -618,8 +622,8 @@
 
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
 %dans l'environnement GraphiqueTikz
-\DefinirSpline[clés]{liste des points support}[\macronomspline]
-\TracerSpline[clés]{liste des points support}[\macronomspline]
+\DefinirCourbeSpline[clés]{liste des points support}[\macronomspline]
+\TracerCourbeSpline[clés]{liste des points support}[\macronomspline]
 \end{tcblisting}
 
 Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
@@ -649,7 +653,7 @@
 	%définition de la liste des points support du spline
 	\def\LISTETEST{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}
 	%définition et tracé du spline cubique
-	\DefinirSpline[Nom=splinetest,Trace,Couleur=olive]{\LISTETEST}
+	\DefinirCourbeSpline[Nom=splinetest,Trace,Couleur=olive]{\LISTETEST}
 \end{GraphiqueTikz}
 \end{tcblisting}
 
@@ -689,6 +693,54 @@
 \end{GraphiqueTikz}
 \end{tcblisting}
 
+\pagebreak
+
+\subsection{Marquage de points}\label{markpts}
+
+L'idée est de proposer de quoi marquer des points avec un style particulier.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\MarquerPts(*)[clés]<police>{liste}
+\end{tcblisting}
+
+La version \textit{étoilée} marque les points sans les \og noms \fg, alors que la version \textit{non étoilée} les affiche :
+
+\begin{itemize}
+	\item dans le cas de la version \textit{étoilée}, la liste est à donner sous la forme \MontreCode{(ptA),(ptB),...} ;
+	\item sinon, la liste est à donner sous la forme \MontreCode{(ptA)/labelA/poslabelA,...}.
+\end{itemize}
+
+\smallskip
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+	\item \MontreCode{Couleur} : couleur (\MontreCode{black} par défaut) ;
+	\item \MontreCode{Style} : style des marques (\MontreCode{o} par défaut).
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}[x=1.5cm,y=1.5cm]
+	\TracerAxesGrilles[Agrandir=2.5mm]{auto}{auto}
+	\DefinirPts{A/1.75,-1.25}\MarquerPts[Couleur=pink]{(A)/A/below} %rond (par défaut)
+	\MarquerPts[Couleur=teal]{(1,1)/M/below}
+	\MarquerPts[Couleur=red,Style=x]{(1.25,1)/$A$/below} %croix
+	\MarquerPts[Couleur=orange,Style=+]<\small\sffamily>{(1.5,1)/K/below} %plus
+	\MarquerPts[Couleur=blue,Style=c]{(1.75,1)/P/below} %carré
+	\MarquerPts[Couleur=gray,Style=d]{(2,1)/P/below} %diamant
+	\MarquerPts*[Couleur=orange/yellow]{(2,2),(2.5,2.25)} %rond bicolore
+	\MarquerPts*[Style=+,Couleur=red]{(1,2)}
+	\MarquerPts*[Style=x,Couleur=blue]{(2.25,1)}
+	\MarquerPts*[Style=c,Couleur=magenta]{(-2,-1)}
+	\MarquerPts[Couleur=red,Style=x]{(-1,1)/$A$/below,(-2,2)/$B$/below left}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
 \subsection{Récupérer les coordonnées de nœuds}\label{recupcoordo}
 
 Il est également possible, dans l'optique d'une réutilisation de coordonnées, de récupérer les coordonnées d'un nœud (défini ou déterminé).
@@ -716,7 +768,7 @@
 
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
 %dans l'environnement GraphiqueTikz
-\PlacerImages[clés]{focntion ou courbe}{liste d'abscisses}
+\PlacerImages[clés]{fonction ou courbe}{liste d'abscisses}
 \end{tcblisting}
 
 Les \MontreCode{[clés]}, optionnelles, disponibles sont :
@@ -746,7 +798,7 @@
 	Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
 	%définition de la fonction + tracé de la courbe
-	\DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+	\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
 	%images
 	\PlacerImages[Traits,Couleurs=teal/blue]{f}{6,7,8,9,10}
 \end{GraphiqueTikz}
@@ -790,7 +842,7 @@
 	Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
 	%définition de la fonction + tracé de la courbe
-	\DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+	\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
 	%antécédents
 	\TrouverAntecedents[Couleur=teal,AffDroite,Aff]{cf}{53}
 	%les deux antécédents sont aux nœuds (S-1) et (S-2)
@@ -797,17 +849,17 @@
 \end{GraphiqueTikz}
 \end{tcblisting}
 
-Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+%Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+%
+%\smallskip
+%
+%\begin{itemize}
+%	\item \MontreCode{Nom} : base du nom des \textbf{nœuds} intersection (\MontreCode{S} par défaut, ce qui donnera \textsf{S-1}, \textsf{S-2}, etc) ;
+%	\item \MontreCode{Aff} : booleen pour afficher les points (\MontreCode{true} par défaut) ;
+%	\item \MontreCode{Couleur} : couleur des points (\MontreCode{black} par défaut) ;
+%	\item \MontreCode{AffDroite} : booleen pour afficher la droite horizontale (\MontreCode{false} par défaut).
+%\end{itemize}
 
-\smallskip
-
-\begin{itemize}
-	\item \MontreCode{Nom} : base du nom des \textbf{nœuds} intersection (\MontreCode{S} par défaut, ce qui donnera \textsf{S-1}, \textsf{S-2}, etc) ;
-	\item \MontreCode{Aff} : booleen pour afficher les points (\MontreCode{true} par défaut) ;
-	\item \MontreCode{Couleur} : couleur des points (\MontreCode{black} par défaut) ;
-	\item \MontreCode{AffDroite} : booleen pour afficher la droite horizontale (\MontreCode{false} par défaut).
-\end{itemize}
-
 \pagebreak
 
 \subsection{Construction d'antécédents}\label{tracanteced}
@@ -845,7 +897,7 @@
 	Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
 	%définition de la fonction + tracé de la courbe
-	\DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+	\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
 	%antécédents
 	\PlacerAntecedents[Couleurs=teal/cyan,Traits,Nom=PO]{cf}{53}
 	\RecupererAbscisse{(PO-1)}[\premsol]
@@ -894,8 +946,8 @@
 	[x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
 	Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
-	\DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
-	\DefinirFonction[Nom=cg,Debut=5,Fin=19,Trace,Couleur=blue]<f>{0.25*(x-12)^2+46}
+	\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+	\DefinirCourbe[Nom=cg,Debut=5,Fin=19,Trace,Couleur=blue]<g>{0.25*(x-12)^2+46}
 	%intersections, nommées (TT-1) et (TT-2)
 	\TrouverIntersections[Nom=TT,Couleur=darkgray,Aff,Traits]{cf}{cg}
 	%récupération des points d'intersection
@@ -911,7 +963,7 @@
 
 \pagebreak
 
-\subsection{Intégrales}\label{integr}
+\subsection{Intégrales (version améliorée)}\label{integr}
 
 On peut également travailler avec des intégrales.
 
@@ -923,13 +975,17 @@
 
 \begin{itemize}
 	\item représenter une intégrale \textbf{sous} une courbe définie ;
-	\item représenter une intégrale \textbf{entre} deux courbes (sauf avec des splines\ldots) ;
+	\item représenter une intégrale \textbf{entre} deux courbes ;
 	\item les bornes d'intégration peuvent être des abscisses et/ou des nœuds.
 \end{itemize}
 
+\smallskip
+
+{\small\faBomb} Compte-tenu des différences de traitement entre les courbes par formule, les courbes par interpolation simple ou les courbes par interpolation cubique, les arguments et clés peuvent différer suivant la configuration !
+
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
 %dans l'environnement GraphiqueTikz
-\TracerIntegrale[clés]<options spécifiques>{fonction ou spline}[courbe inf]{A}{B}
+\TracerIntegrale[clés]<options spécifiques>{objet1}[objet2]{A}{B}
 \end{tcblisting}
 
 Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
@@ -939,7 +995,14 @@
 	\item \MontreCode{Style} : type de remplissage, parmi \MontreCode{remplissage}/\MontreCode{hachures} (\MontreCode{remplissage} par défaut) ;
 	\item \MontreCode{Opacite} : opacité (\MontreCode{0.5} par défaut) du remplissage ;
 	\item \MontreCode{Hachures} : style (\MontreCode{north west lines} par défaut) du remplissage hachures ;
-	\item \MontreCode{Type} : type d'intégrale parmi \MontreCode{dessous}/\MontreCode{entre} (\MontreCode{dessous} par défaut) ;
+	\item \MontreCode{Type} : type d'intégrale parmi
+	\begin{itemize}
+		\item \MontreCode{fct} (défaut) pour une intégrale sous une courbe définie par une formule ;
+		\item \MontreCode{spl} pour une intégrale sous une courbe définie par un spline cublique ;
+		\item \MontreCode{fct/fct} pour une intégrale entre deux courbes définie par une formule ;
+		\item \MontreCode{fct/spl} pour une intégrale entre une courbe (dessus) définie par une formule et une courbe (dessous) définie par un spline cubique ;
+		\item etc
+	\end{itemize}
 	\item \MontreCode{Pas} : pas (calculé par défaut sinon) pour le tracé ;
 	\item \MontreCode{Jonction} : jonction des segments (\MontreCode{bevel} par défaut) ;
 	\item \MontreCode{Bornes} : type des bornes parmi :
@@ -950,18 +1013,32 @@
 		\item \MontreCode{noeud/abs} pour les bornes données par nœud et abscisse ;
 	\end{itemize}
 	\item \MontreCode{Bord} : booléen (\MontreCode{true} par défaut) pour afficher les traits latéraux,%
-	\item \MontreCode{Spline} : booléen (\MontreCode{false} par défaut) pour préciser qu'un spline est utilisé ;
-	\item \MontreCode{NomSpline} : nom (important !) du spline généré précédemment \MontreCode{\textbackslash monspline}.
+	\item \MontreCode{NomSpline} : macro (important !) du spline généré précédemment pour un spline en version supérieure ;
+	\item \MontreCode{NomSplineB} : macro (important !) du spline généré précédemment pour un spline en version inférieure ;
+	\item \MontreCode{NomInterpo} : nom (important !) de la courbe d'interpolation générée précédemment, en version supérieure ;
+	\item \MontreCode{NomInterpoB} : nom (important !) de la courbe d'interpolation générée précédemment, en version inférieure ;
+	\item \MontreCode{Tension} : tension pour la courbe d'interpolation générée précédemment, en version supérieure ;
+	\item \MontreCode{TensionB} : tension de la courbe d'interpolation générée précédemment, en version inférieure.
 \end{itemize}
 
 \smallskip
 
-Le premier argument obligatoire est la fonction ou la courbe du spline.
+Le premier argument obligatoire est la fonction ou la courbe du spline ou la liste de points d'interpolation.
 
 \smallskip
 
+L'argument suivant, optionnel, est la fonction ou la courbe du spline ou la liste de points d'interpolation.
+
+\smallskip
+
 Les deux derniers arguments obligatoires sont les bornes de l'intégrale, données sous une forme en adéquation avec la clé \MontreCode{Bornes}.
 
+\pagebreak
+
+Dans le cas de courbes définies par des \textit{points}, il est nécessaire de travailler sur des intervalles sur lesquels la première courbe est \textbf{au-dessus} de la deuxième.
+
+Il sera sans doute intéressant de travailler avec les \textit{intersections} dans ce cas.
+
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
 \begin{GraphiqueTikz}%
 	[x=0.6cm,y=0.06cm,
@@ -969,7 +1046,7 @@
 	Ymin=0,Ymax=155,Ygrille=10,Ygrilles=5]
 	\TracerAxesGrilles%
 		[Grads=false,Elargir=2.5mm]{}{}
-	\DefinirFonction[Nom=cf,Debut=1,Fin=20,Couleur=red]<f>{80*x*exp(-0.2*x)}
+	\DefinirCourbe[Nom=cf,Debut=1,Fin=20,Couleur=red]<f>{80*x*exp(-0.2*x)}
 	\TracerIntegrale
 		[Bornes=abs,Couleurs=blue/cyan!50]%
 		{f(x)}{3}{12}
@@ -984,11 +1061,11 @@
 	[x=1.2cm,y=1.6cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=3,Ygrille=0.5,Ygrilles=0.25]
 	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{}{}
 	\def\LISTETEST{-6/2/0§-1/-2/0§2/1/0§3.5/0/-1}
-	\DefinirSpline[Nom=splinetest]{\LISTETEST}
-	\TracerIntegrale[Spline,Style=hachures,Couleurs=purple]{splinetest}{-5.75}{-4.75}
-	\TracerIntegrale[Spline,Couleurs=blue]{splinetest}{-2}{-1}
-	\TracerIntegrale[Spline,Couleurs=orange]{splinetest}{1}{3}
-	\TracerSpline[Couleur=olive]{\LISTETEST}
+	\DefinirCourbeSpline[Nom=splinetest]{\LISTETEST}
+	\TracerIntegrale[Type=spl,Style=hachures,Couleurs=purple]{splinetest}{-5.75}{-4.75}
+	\TracerIntegrale[Type=spl,Couleurs=blue]{splinetest}{-2}{-1}
+	\TracerIntegrale[Type=spl,Couleurs=orange]{splinetest}{1}{3}
+	\TracerCourbeSpline[Couleur=olive]{\LISTETEST}
 	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]
 		{-7,-6,...,4}%
 		{-3,-2.5,...,3}
@@ -1039,7 +1116,7 @@
 	[x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
 	Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
-	\DefinirFonction[Nom=cf,Debut=5,Fin=19,Couleur=red,Trace]<f>{-2*x+3+24*log(2*x)}
+	\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Couleur=red,Trace]<f>{-2*x+3+24*log(2*x)}
 	\TrouverAntecedents[Couleur=teal,Nom=JKL,Aff=false]{cf}{53}
 	%tangente
 	\TracerTangente%
@@ -1052,7 +1129,7 @@
 	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
 	\TracerAxesGrilles[Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
 	\def\LISTETEST{-6/4/-0.5§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}
-	\DefinirSpline[Nom=splinetest,Trace,Couleur=olive]{\LISTETEST}
+	\DefinirCourbeSpline[Nom=splinetest,Trace,Couleur=olive]{\LISTETEST}
 	\TracerTangente[Couleurs=red,Spline,AffPoint]{splinetest}{1}
 	\TracerTangente%
 		[Couleurs=blue,Spline,DecG=1.5,DecD=1.5,AffPoint]{splinetest}{-3}%
@@ -1064,6 +1141,91 @@
 
 \pagebreak
 
+\section{Commandes spécifiques des fonctions de densité}
+
+\subsection{Loi normale}\label{loinormale}
+
+L'idée est de proposer de quoi travailler avec des lois normales.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirLoiNormale[clés]<nom fct>{mu}{sigma}
+\TracerLoiNormale[clés]{fct(x)}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+	\item \MontreCode{Nom} : nom du tracé (\MontreCode{gaussienne} par défaut) ;
+	\item \MontreCode{Trace} : booléen pour tracer la courbe(\MontreCode{false} par défaut) ;
+	\item \MontreCode{Couleur} : couleur du tracé, si demandé (\MontreCode{black} par défaut) ;
+	\item \MontreCode{Debut} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmin} par défaut) ;
+	\item \MontreCode{Fin} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmax} par défaut) ;
+	\item \MontreCode{Pas} : = pas du tracé (il est déterminé \textit{automatiquement} au départ mais peut être modifié).
+\end{itemize}
+
+À noter que l'axe vertical est à adapter en fonction des paramètres de la loi normale.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+		[x=1.25cm,y=15cm,Origx=5,Xmin=5,Xmax=15,Ymin=0,Ymax=0.3,
+		Ygrille=0.1,Ygrilles=0.05]
+	\TracerAxesGrilles[Elargir=2.5mm]{auto}{auto}
+	\DefinirLoiNormale[Nom=gaussienne]<phi>{10}{1.5}
+	\TracerIntegrale
+		[Bornes=abs,Couleurs=blue/cyan!50]%
+		{phi(x)}{7}{13}
+	\TracerLoiNormale[Couleur=violet,Debut=5,Fin=15]{phi(x)}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Loi du khi deux}\label{loikhideux}
+
+L'idée est de proposer de quoi travailler avec des lois normales.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirLoiKhiDeux[clés]<nom fct>{k}
+\TracerLoiKhiDeux[clés]{fct(x)}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+	\item \MontreCode{Nom} : nom du tracé (\MontreCode{gaussienne} par défaut) ;
+	\item \MontreCode{Trace} : booléen pour tracer la courbe(\MontreCode{false} par défaut) ;
+	\item \MontreCode{Couleur} : couleur du tracé, si demandé (\MontreCode{black} par défaut) ;
+	\item \MontreCode{Debut} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmin} par défaut) ;
+	\item \MontreCode{Fin} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmax} par défaut) ;
+	\item \MontreCode{Pas} : = pas du tracé (il est déterminé \textit{automatiquement} au départ mais peut être modifié).
+\end{itemize}
+
+À noter que l'axe vertical est à adapter en fonction du paramètre de la loi du khi deux.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}[
+		x=1.5cm,y=7.5cm,
+		Xmin=0,Xmax=8,Xgrille=1,Xgrilles=0.5,
+		Ymin=0,Ymax=0.5,Ygrille=0.1,Ygrilles=0.05
+		]
+	\TracerAxesGrilles[Elargir=2.5mm]{auto}{auto}
+	\DefinirLoiKhiDeux[Couleur=red,Debut=0.25,Trace]<phiA>{1}
+	\DefinirLoiKhiDeux[Couleur=blue,Trace]<phiB>{2}
+	\DefinirLoiKhiDeux[Couleur=orange,Trace]<phiC>{3}
+	\DefinirLoiKhiDeux[Couleur=violet,Trace]<phiD>{4}
+	\DefinirLoiKhiDeux[Couleur=yellow,Trace]<phiE>{5}
+	\DefinirLoiKhiDeux[Couleur=teal,Trace]<phiF>{6}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
 \section{Commandes spécifiques des statistiques à deux variables}
 
 \subsection{Le nuage de points}\label{nuage}
@@ -1105,7 +1267,7 @@
 	%préparation de la fenêtre
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,10,...,160}{250,275,...,400}
 	%nuage de points
-	\TracerNuage[CouleurNuage=red]{0,50,100,140}{275,290,315,350}
+	\TracerNuage[Style=x,CouleurNuage=red]{0,50,100,140}{275,290,315,350}
 \end{GraphiqueTikz}
 \end{tcblisting}
 
@@ -1134,12 +1296,12 @@
 	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,10,...,160}{250,275,...,400}
 	%nuage et droite
 	\TracerNuage%
-		[CouleurDroite=red,CouleurDroite=brown,TracerDroite]%
+		[CouleurNuage=red,CouleurDroite=brown,TracerDroite]%
 		{0,50,100,140}{275,290,315,350}
 	%image
 	\PlacerImages[Couleurs=cyan/magenta,Traits]{d}{120}
 	%antécédents
-	\PlacerAntecedents[Couleurs=blue/green!50!black,Traits]{reglin}{300}
+	\PlacerAntecedents[Style=x,Couleurs=blue/green!50!black,Traits]{reglin}{300}
 \end{GraphiqueTikz}
 \end{tcblisting}
 
@@ -1150,10 +1312,10 @@
 \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
 \begin{GraphiqueTikz}[x=0.85cm,y=0.35cm,Xmin=0,Xmax=10,Ymin=0,Ymax=16]
 	%préparation de la fenêtre
-	\TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,1,...,10}{0,2,...,16}
+	\TracerAxesGrilles[Derriere,Elargir=2.5mm,Police=\small]{0,1,...,10}{0,2,...,16}
 	%déf des fonctions avec nom courbe + nom fonction + expression (tracés à la fin !)
-	\DefinirFonction[Nom=cf]<f>{3*x-6}
-	\DefinirFonction[Nom=cg]<g>{-(x-6)^2+12}
+	\DefinirCourbe[Nom=cf]<f>{3*x-6}
+	\DefinirCourbe[Nom=cg]<g>{-(x-6)^2+12}
 	%antécédents et intersection
 	\TrouverIntersections[Aff=false,Nom=K]{cf}{cg}
 	\TrouverAntecedents[AffDroite,Couleur=orange,Nom=I]{cg}{8}
@@ -1164,7 +1326,7 @@
 		{g(x)}%
 		{(I-2)}{(J-2)}
 	%intégrale entre les deux courbes
-	\TracerIntegrale[Bornes=noeuds,Type=entre]%
+	\TracerIntegrale[Bornes=noeuds,Type=fct/fct]%
 		{f(x)}[g(x)]%
 		{(K-1)}{(K-2)}
 	%tracé des courbes et des points
@@ -1177,7 +1339,7 @@
 	%images
 	\PlacerImages[Couleurs=cyan]{g}{7,7.25,7.5}
 	%surimpression des axes
-	\TracerAxesGrilles[Grads=false,Grille=false,Elargir=2.5mm]{0,1,...,10}{0,2,...,16}
+	\TracerAxesGrilles[Devant,Elargir=2.5mm]{0,1,...,10}{0,2,...,16}
 \end{GraphiqueTikz}
 \end{tcblisting}
 
@@ -1189,18 +1351,16 @@
 	Xmin=0,Xmax=3.5,Xgrille=pi/12,Xgrilles=pi/24,
 	Ymin=-1.05,Ymax=1.05,Ygrille=0.2,Ygrilles=0.05]
 	%préparation de la fenêtre
-	\TracerAxesGrilles[Grads=false,Elargir=2.5mm,Format=ntrig/nsqrt]%
-		{pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi}
-		{0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2}
+	\TracerAxesGrilles[Derriere,Elargir=2.5mm,Format=ntrig/nsqrt]{}{}
 	%rajouter des valeurs
 	\RajouterValeursAxeX{0.25,1.4,3.3}{\num{0.25},\num{1.4},\num{3.3}}
 	%fonction trigo (déf + tracé)
-	\DefinirFonction[Nom=ccos,Debut=0,Fin=pi]<fcos>{cos(x)}
-	\DefinirFonction[Nom=csin,Debut=0,Fin=pi]<fsin>{sin(x)}
+	\DefinirCourbe[Nom=ccos,Debut=0,Fin=pi]<fcos>{cos(x)}
+	\DefinirCourbe[Nom=csin,Debut=0,Fin=pi]<fsin>{sin(x)}
 	%intégrale
 	\TrouverIntersections[Aff=false,Nom=JKL]{ccos}{csin}
 	\TracerIntegrale%
-		[Bornes=noeud/abs,Type=entre,Couleurs=cyan/cyan!50]%
+		[Bornes=noeud/abs,Type=fct/fct,Couleurs=cyan/cyan!50]%
 		{fsin(x)}[fcos(x)]%
 		{(JKL-1)}{pi}
 	%tracé des courbes
@@ -1212,7 +1372,7 @@
 	\PlacerAntecedents[Couleurs=orange/orange!50!black,Traits]{csin}{sqrt(2)/2}
 	\PlacerAntecedents[Couleurs=green!50!black/green,Traits]{csin}{sqrt(3)/2}
 	%surimpression axes
-	\TracerAxesGrilles[Grille=false,Elargir=2.5mm,Format=ntrig/nsqrt]%
+	\TracerAxesGrilles[Devant,Format=ntrig/nsqrt]%
 		{pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi}
 		{0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2}
 \end{GraphiqueTikz}
@@ -1326,7 +1486,7 @@
 
 Les commandes disponibles sont :
 
-\NewDocumentCommand\lstcmd{ m m m}{%
+\NewDocumentCommand\lstcmd{ m m m }{%
 	\item[\texttt{#1}] : \mintinline{latex}|#2|\hfill{}page \pageref{#3}
 }
 
@@ -1335,13 +1495,14 @@
 	\lstcmd{axes et grilles}{\TracerAxesGrille}{creaaxesgr}
 	\lstcmd{aj val axes X~~}{\RajouterValeursAxeX}{ajoutvals}
 	\lstcmd{aj val axes Y~~}{\RajouterValeursAxeY}{ajoutvals}
-	\lstcmd{def fonction~~~}{\DefinirFonction}{deftracfct}
+	\lstcmd{def fonction~~~}{\DefinirCourbe}{deftracfct}
 	\lstcmd{tracé courbe~~~}{\TracerCourbe}{deftracfct}
 	\lstcmd{def interpo~~~~}{\DefinirCourbeInterpo}{deftracinterpo}
 	\lstcmd{tracé interpo~~}{\TracerCourbeInterpo}{deftracinterpo}
-	\lstcmd{def spline~~~~~}{\DefinirSpline}{deftracfctspline}
-	\lstcmd{tracé spline~~~}{\TracerSpline}{deftracfctspline}
+	\lstcmd{def spline~~~~~}{\DefinirCourbeSpline}{deftracfctspline}
+	\lstcmd{tracé spline~~~}{\TracerCourbeSpline}{deftracfctspline}
 	\lstcmd{def points~~~~~}{\DefinirPts}{defpts}
+	\lstcmd{marq pts~~~~~~~}{\MarquerPts}{markpts}
 	\lstcmd{récup absc~~~~~}{\RecupererAbscisse}{recupcoordo}
 	\lstcmd{récup ordo~~~~~}{\RecupererOrdonnee}{recupcoordo}
 	\lstcmd{récup coordos~~}{\RecupererCoordonnees}{recupcoordo}
@@ -1351,6 +1512,10 @@
 	\lstcmd{intersection~~~}{\TrouverIntersections}{intersect}
 	\lstcmd{intégrale~~~~~~}{\TracerIntegrale}{integr}
 	\lstcmd{tangente~~~~~~~}{\TracerTangente}{tgte}
+	\lstcmd{loi normale~~~~}{\DefinirLoiNormale}{loinormale}
+	\lstcmd{loi normale~~~~}{\TracerLoiNormale}{loinormale}
+	\lstcmd{loi khideux~~~~}{\DefinirLoiKhiDeux}{loikhideux}
+	\lstcmd{loi khideux~~~~}{\TracerLoiKhiDeux}{loikhideux}
 	\lstcmd{stats 2 var~~~~}{\TracerNuage}{nuage}
 	\lstcmd{arrondi~~~~~~~~}{\ArrondirNum}{numarrond}
 	\lstcmd{nb aléat~~~~~~~}{\ChoisirNbAlea}{nbalea}
@@ -1362,6 +1527,7 @@
 
 \begin{quote}
 \begin{verbatim}
+0.1.1 : Densité loi normale et khi deux + Marquage points + Améliorations
 0.1.0 : Version initiale
 \end{verbatim}
 \end{quote}

Added: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.pdf	2024-05-27 23:41:49 UTC (rev 71376)
+++ trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.pdf	2024-05-28 19:27:35 UTC (rev 71377)

Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.tex	2024-05-28 19:27:35 UTC (rev 71377)
@@ -0,0 +1,251 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,french,11pt]{article}
+\usepackage[margin=1cm,includefoot]{geometry}
+\usepackage{tkz-grapheur}
+\usepackage{tcolorbox}
+\tcbuselibrary{skins,minted}
+\usepackage{babel}
+
+\begin{document}
+
+\part*{Exemples des différents cas d'intégrales}
+
+\section{Sous courbe, par défaut}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+		[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Derriere,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirCourbe[Nom=ch]<h>{0.25*(x+2)^2+1}
+	\TracerIntegrale%
+		[Couleurs=blue/cyan,Style=remplissage]%
+		{h(x)} %formule
+		{-5.25}{1.5}
+	\TracerCourbe[Couleur=red]{h(x)}
+	\TracerAxesGrilles[Devant,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Sous courbe d'interpolation}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+		[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirListeInterpo{(-6,4)(-2,-2)(3,3.5)}[\interpoA]
+	\DefinirCourbeInterpo[Nom=interpotest,Tension=1.05]{\interpoA}
+	\TracerIntegrale%
+		[NomInterpo=interpotest,Couleurs=blue/cyan,Style=remplissage,Type=itp,Tension=1.05]%
+		{\interpoA} %pointsinterpo
+		{-5.25}{1.5}
+	\TracerCourbeInterpo[Couleur=red,Tension=1.05]{\interpoA}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Sous spline cubique}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+		[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirListeSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA]
+	\DefinirCourbeSpline[Nom=splinetest]{\lstsplineA}<\SplineTeal>
+	\TracerIntegrale%
+		[NomSpline=\SplineTeal,Type=spl,Couleurs=blue/purple,Style=hachures]%
+		{splinetest} %nomcourbespline
+		{-5}{2}
+	\TracerCourbeSpline[Couleur=teal]{\lstsplineA}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre courbes}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirCourbe[Nom=ch]<h>{0.25*(x+2)^2-1}
+	\DefinirCourbe[Nom=ck]<k>{-0.25*x+1}
+	\TrouverIntersections[Nom=ITSC,Aff=false]{ch}{ck}
+	\TracerIntegrale%
+		[Couleurs=olive/pink,Style=remplissage,Type=fct/fct,Bornes=noeud/abs]%
+		{h(x)}[k(x)] %formules
+		{(ITSC-1)}{1.5}
+	\TracerCourbe[Couleur=red]{h(x)}
+	\TracerCourbe[Couleur=blue]{k(x)}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre splines}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+		[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirListeSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA]
+	\DefinirListeSpline{-6/-2/3§-2/4/0§3/-1/0}[\lstsplineB]
+	\DefinirCourbeSpline[Nom=splinetestolive]{\lstsplineA}<\SplineOlive>
+	\DefinirCourbeSpline[Nom=splinetestteal]{\lstsplineB}<\SplineTeal>
+	\TrouverIntersections[Nom=ITT,Aff=false]{splinetestteal}{splinetestolive}
+	\TracerIntegrale%
+		[NomSpline=\SplineTeal,NomSplineB=\SplineOlive,Type=spl/spl,Couleurs=blue/purple,Bornes=noeuds]%
+		{splinetestolive} %nomcourbespline
+		[splinetestteal]  %nomcourbespline
+		{(ITT-1)}{(ITT-2)}
+	\TracerCourbeSpline[Couleur=teal]{\lstsplineA}
+	\TracerCourbeSpline[Couleur=olive]{\lstsplineB}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre interpolations}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirListeInterpo{(-6,4)(-2,-2)(3,3.5)}[\interpoA]
+	\DefinirCourbeInterpo[Nom=interpotest]{\interpoA}
+	\DefinirListeInterpo{(-6,-2)(-1,4)(3,0)}[\interpoB]
+	\DefinirCourbeInterpo[Nom=interpotesta]{\interpoB}
+	\TracerIntegrale%
+	[NomInterpo=interpotesta,NomInterpoB=interpotest,Type=itp/itp,Couleurs=olive/pink]%
+		{\interpoB} %pointsinterpo
+		[\interpoA] %pointsinterpo
+		{-2}{1}
+	\TracerCourbeInterpo[Couleur=red]{\interpoA}
+	\TracerCourbeInterpo[Couleur=blue]{\interpoB}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre fonction et spline}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirCourbe[Nom=ch]<h>{-0.25*(x+2)^2+3.5}
+	\DefinirListeSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA]
+	\DefinirCourbeSpline[Nom=splineblue]{\lstsplineA}<\Splineblue>
+	\TracerIntegrale%
+		[NomSplineB=\Splineblue,Type=fct/spl,Couleurs=olive/pink]%
+		{h(x)}       %formule
+		[splineblue] %nomcourbespline
+		{-3}{0}
+	\TracerCourbe[Couleur=red]{h(x)}
+	\TracerCourbeSpline[Couleur=blue]{\lstsplineA}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre spline et fonction}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirCourbe[Nom=ch]<h>{0.25*(x+2)^2-2}
+	\DefinirListeSpline{-6/4/2§-5/-2/-2§-4/0/2§-2/2/0§1/-2/-2§3/3.5/-0.5}[\lstsplineA]
+	\DefinirCourbeSpline[Nom=splineblue]{\lstsplineA}<\Splineblue>
+	\TracerIntegrale%
+		[NomSpline=\Splineblue,Type=spl/fct,Couleurs=olive/pink]%
+		{splineblue} %nomcourbespline
+		[h(x)]       %formule
+		{-3}{-1}
+	\TracerCourbe[Couleur=red]{h(x)}
+	\TracerCourbeSpline[Couleur=blue]{\lstsplineA}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre fonction et interpo}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirCourbe[Nom=cm]<m>{-0.25*(x+2)^2+4}
+	\DefinirListeInterpo{(-6,4)(-5,-2)(-2,1)(1,-2)(3,3)}[\interpoB]
+	\DefinirCourbeInterpo[Nom=interpotestb]{\interpoB}
+	\TracerIntegrale%
+	[NomInterpoB=interpotestb,Type=fct/itp,Couleurs=olive/pink]%
+		{m(x)}      %formule
+		[\interpoB] %pointsinterpo
+		{-4}{1}
+	\TracerCourbe[Couleur=red]{m(x)}
+	\TracerCourbeInterpo[Couleur=blue]{\interpoB}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre interpo et fonction}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirCourbe[Nom=courbeQ]<q>{0.25*(x+2)^2-2.5}
+	\DefinirListeInterpo{(-6,-2)(-5,4)(-2,-1)(1,2)(3,-2)}[\interpoA]
+	\DefinirCourbeInterpo[Nom=interpotest]{\interpoA}
+	\TrouverIntersections[Nom=FGH,Aff]{interpotest}{courbeQ}
+	\TracerIntegrale%
+		[NomInterpo=interpotest,Type=itp/fct,Couleurs=olive/pink,Bornes=noeuds]%
+		{\interpoA} %pointsinterpo
+		[q(x)]      %formule
+		{(FGH-1)}{(FGH-2)}
+	\TracerCourbe[Couleur=red]{q(x)}
+	\TracerCourbeInterpo[Couleur=blue]{\interpoA}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre spline et interpo}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirListeSpline{-6/-2/2§-3/4/0§3/-2/0}[\lstsplineA]
+	\DefinirCourbeSpline[Nom=splinered]{\lstsplineA}<\Splinered>
+	\DefinirListeInterpo{(-6,4)(-5,-2)(-2,1)(1,-2)(3,3)}[\interpoB]
+	\DefinirCourbeInterpo[Nom=interpotestb]{\interpoB}
+	\TracerIntegrale%
+		[NomInterpoB=interpotestb,NomSpline=\Splinered,Type=spl/itp,Couleurs=olive/pink]%
+		{splinered} %nomcourbespline
+		[\interpoB] %pointsinterpo
+		{-4}{-2}
+	\TracerCourbeSpline[Couleur=red]{\lstsplineA}
+	\TracerCourbeInterpo[Couleur=blue]{\interpoB}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre interpo et spline}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+	[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+	\TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+	\DefinirListeSpline{-6/4/-2§-3/-2.25/0§3/3/0}[\lstsplineB]
+	\DefinirCourbeSpline[Nom=splineblue]{\lstsplineB}<\Splineblue>
+	\DefinirListeInterpo{(-6,-2)(-5,4)(-2,-1)(1,2)(3,-2.5)}[\interpoA]
+	\DefinirCourbeInterpo[Nom=interpotest]{\interpoA}
+	\TrouverIntersections[Nom=UIO,Aff]{interpotest}{splineblue}
+	\TracerIntegrale%
+		[NomInterpo=interpotest,NomSplineB=\Splineblue,Type=itp/spl,Couleurs=olive/pink,Bornes=noeuds]%
+		{\interpoA}  %pointsinterpo
+		[splineblue] %nomcourbespline
+		{(UIO-1)}{(UIO-2)}
+	\TracerCourbeSpline[Couleur=blue]{\lstsplineB}
+	\TracerCourbeInterpo[Couleur=red]{\interpoA}
+	\TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-grapheur/tkz-grapheur-exemples-integrales.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty	2024-05-27 23:41:49 UTC (rev 71376)
+++ trunk/Master/texmf-dist/tex/latex/tkz-grapheur/tkz-grapheur.sty	2024-05-28 19:27:35 UTC (rev 71377)
@@ -2,9 +2,10 @@
 % licence    : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-grapheur}[2024/05/11 0.1.0 Des outils en TikZ pour travailler comme avec un grapheur]
+\ProvidesPackage{tkz-grapheur}[2024/05/28 0.1.1 Des outils en TikZ pour travailler comme avec un grapheur]
 
 %====HISTORIQUE
+% v 0.1.1	Densité loi normale + khi deux + Améliorations diverses
 % v 0.1.0	Version initiale [fr]
 
 %====OPTION
@@ -77,6 +78,7 @@
 	}%
 
 %====STYLES DE BASE
+\tikzset{pflpoint/.style={line width=0.95pt}}
 \tikzset{pflpointc/.style={radius=1.75pt}}
 \tikzset{pflpointnuage/.style={radius=1.75pt}}
 \tikzset{pflcadre/.style={line width=0.8pt,gray}}
@@ -102,6 +104,23 @@
 	Ygrille/.store in=\pflgrilley,Ygrille/.default=1,Ygrille=1,
 	Ygrilles/.store in=\pflgrilleys,Ygrilles/.default=0.5,Ygrilles=0.5
 }
+\tikzset{%
+	pics/pflptcroix/.style args={#1/#2}{
+		code={
+			\draw[pflpoint,rotate=#2] (-#1,0) -- (#1,0);
+			\draw[pflpoint,rotate=#2] (0,-#1) -- (0, #1);
+		}
+		},
+	pics/pflptcroix/.default={2pt/45}
+}
+\tikzset{%
+	pics/pflptcarre/.style args={#1/#2}{
+		code={
+			\filldraw[draw=none,pflpoint,rotate=#2] (-#1,-#1) rectangle (#1,#1) ;
+		}
+	},
+	pics/pflptcarre/.default={2pt/0}
+}
 
 %====CONSTANTE PI pour xint, à voir si incompatibilité...
 \xintdefvar pi:=3.141592653589793238462643;
@@ -315,7 +334,9 @@
 	Police={},%
 	Format=num,%
 	Traits=true,%
-	Dernier=false
+	Dernier=false,%
+	Derriere=false,%
+	Devant=false
 }
 
 \NewDocumentCommand\FormatterValeurAxex{ m m }{%
@@ -353,6 +374,18 @@
 \NewDocumentCommand\TracerAxesGrilles{ s O{} m D<>{#3} m D<>{#5} }{%
 	\restoreKV[GraphiqueTikzAxes]%
 	\setKV[GraphiqueTikzAxes]{#2}%
+	%cas particuliers sous/sur impression
+	\ifboolKV[GraphiqueTikzAxes]{Derriere}%
+		{%
+			\setKV[GraphiqueTikzAxes]{Grads=false}
+		}%
+		{}%
+	\ifboolKV[GraphiqueTikzAxes]{Devant}%
+		{%
+			\setKV[GraphiqueTikzAxes]{Grille=false}
+		}%
+		{}%
+	%suite
 	\IfSubStr{\pflformataxes}{/}%
 		{%
 			\StrCut{\pflformataxes}{/}{\pflformataxex}{\pflformataxey}%
@@ -397,7 +430,7 @@
 			%origine
 			\ifboolKV[GraphiqueTikzAxes]{Origine}%
 				{%
-					\draw ({\pflOx},{\pflOy}) node[below left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxex{\pflformataxex}{\plfOx}} ;
+					\draw ({\pflOx},{\pflOy}) node[below left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxex{\pflformataxex}{\pflOx}} ;
 					%\draw (\pflOx,\pflOy) node[below left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\ifboolKV[GraphiqueTikzAxes]{Num}{\num{\pflOx}}{\pflOx}} ;
 				}%
 				{}%
@@ -429,7 +462,7 @@
 }
 
 %===DEFINIR POINTS
-\setKVdefault[GraphiqueTikzDefPoints]{Couleur=black,Aff=false}
+\setKVdefault[GraphiqueTikzDefPoints]{Couleur=black,Aff=false,Style=o}
 
 \NewDocumentCommand\DefinirPts{ O{} m }{%
 	\restoreKV[GraphiqueTikzDefPoints]%
@@ -438,12 +471,125 @@
 	\coordinate (\tmpnamept) at ({\tmpxpt},{\tmpypt}) ;
 		\ifboolKV[GraphiqueTikzDefPoints]{Aff}%
 			{%
-				\filldraw[{\useKV[GraphiqueTikzDefPoints]{Couleur}}] (\tmpnamept) circle[pflpointc] ;
+				\MarquerPts*[Style={\useKV[GraphiqueTikzDefPoints]{Style}},Couleur={\useKV[GraphiqueTikzDefPoints]{Couleur}}]{(\tmpnamept)}
+				%\filldraw[{\useKV[GraphiqueTikzDefPoints]{Couleur}}] (\tmpnamept) circle[pflpointc] ;
 			}%
 			{}%
 	}
 }
 
+\defKV[GraphiqueTikzMarkPoints]{%
+	Couleur=\def\pflcouleurpoints{#1},%
+	Style=\def\pflstylepoints{#1}
+}
+\setKVdefault[GraphiqueTikzMarkPoints]{%
+	Couleur=black,%
+	Taillec=2pt,%
+	Taillex=2pt,%
+	Tailleo=1.75pt,%
+	Style=o
+}
+\NewDocumentCommand\MarquerPts{ s O{} D<>{\normalfont\normalsize} m }{%
+	%étoilée = sans label
+	%2=clés
+	%3=points
+	\restoreKV[GraphiqueTikzMarkPoints]%
+	\setKV[GraphiqueTikzMarkPoints]{#2}%
+	\IfBooleanTF{#1}%
+		{%
+			\IfStrEq{\pflstylepoints}{x}%
+				{%
+					\foreach \Point in {#4} {%
+						\draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/45} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{+}%
+				{%
+					\foreach \Point in {#4} {%
+						\draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/90} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{c}%
+				{%
+					\foreach \Point in {#4} {%
+						\filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Taillec}}/0} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{d}%
+				{%
+					\foreach \Point in {#4} {%
+						\filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}/45} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{o}%
+				{%
+					\IfSubStr{\pflcouleurpoints}{/}%
+						{%
+							\StrCut{\pflcouleurpoints}{/}{\pflcouleurpointsA}{\pflcouleurpointsB}%
+							\foreach \Point in {#4} {%
+								\filldraw[pfltrait,fill=\pflcouleurpointsB,draw=\pflcouleurpointsA] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] ;
+							}%
+						}%
+						{%
+							\foreach \Point in {#4} {%
+								\filldraw[\pflcouleurpoints] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] ;
+							}%
+						}%
+				}%
+				{}%
+		}%
+		{%avec label
+			\IfStrEq{\pflstylepoints}{x}%
+				{%
+					\foreach \Point/\Label/\Pos in {#4} {%
+						\draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/45} node[\Pos,font=#3] {\Label} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{+}%
+				{%
+					\foreach \Point/\Label/\Pos in {#4} {%
+						\draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/90} node[\Pos,font=#3] {\Label} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{c}%
+				{%
+					\foreach \Point/\Label/\Pos in {#4} {%
+						\filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Taillec}}/0} node[\Pos,{\useKV[GraphiqueTikzMarkPoints]{Couleur}},font=#3] {\Label} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{d}%
+				{%
+					\foreach \Point/\Label/\Pos in {#4} {%
+						\filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}/45} node[\Pos,{\useKV[GraphiqueTikzMarkPoints]{Couleur}},font=#3] {\Label} ;
+					}%
+				}%
+				{}%
+			\IfStrEq{\pflstylepoints}{o}%
+				{%
+					\IfSubStr{\pflcouleurpoints}{/}%
+						{%
+							\StrCut{\pflcouleurpoints}{/}{\pflcouleurpointsA}{\pflcouleurpointsB}%
+							\foreach \Point/\Label/\Pos in {#4} {%
+								\draw[pfltrait,\pflcouleurpointsA,fill=\pflcouleurpointsB] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] node[\Pos,font=#3] {\Label} ;
+							}%
+						}%
+						{%
+							\foreach \Point/\Label/\Pos in {#4} {%
+								\filldraw[\pflcouleurpoints] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] node[\Pos,font=#3] {\Label} ;
+							}%
+						}%
+				}%
+				{}%
+		}%
+}
+
 %===AJOUTER DES VALEURS MANUELLEMENT
 \NewDocumentCommand\RajouterValeursAxeX{ O{} m m }{%
 	\restoreKV[GraphiqueTikzAxes]%
@@ -471,7 +617,7 @@
 	}%
 }
 
-%====FONCTION ET COURBE
+%====FONCTIONS ET COURBES 'classique + interpo + spline'
 \defKV[GraphiqueTikzCourbe]{%
 	Pas=\def\pflstepcurve{#1},%
 	Nom=\def\pflnamecurve{#1}
@@ -487,15 +633,15 @@
 	Tension=0.5
 }
 
-\NewDocumentCommand\DefinirFonction{ O{} D<>{f} m }{%
+\NewDocumentCommand\DefinirFonction{ O{} D<>{f} m }{%old version
 	\restoreKV[GraphiqueTikzCourbe]%
 	\setKV[GraphiqueTikzCourbe]{#1}%
 	\xintdeffloatfunc #2(x) := #3 ;
 	\IfStrEq{\pflstepcurve}{}%
-	{%
-		\xdef\pflstepcurve{\xintfloateval{((\useKV[GraphiqueTikzCourbe]{Fin})-(\useKV[GraphiqueTikzCourbe]{Debut}))/100}}%
-	}%
-	{}%
+		{%
+			\xdef\pflstepcurve{\xintfloateval{((\useKV[GraphiqueTikzCourbe]{Fin})-(\useKV[GraphiqueTikzCourbe]{Debut}))/100}}%
+		}%
+		{}%
 	\ifboolKV[GraphiqueTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{}
 		\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
 		\ifboolKV[GraphiqueTikzCourbe]{Trace}%
@@ -516,6 +662,35 @@
 	\ifboolKV[GraphiqueTikzCourbe]{Clip}{\end{scope}}{}
 }
 
+\NewDocumentCommand\DefinirCourbe{ O{} D<>{f} m }{%
+	\restoreKV[GraphiqueTikzCourbe]%
+	\setKV[GraphiqueTikzCourbe]{#1}%
+	\xintdeffloatfunc #2(x) := #3 ;
+	\IfStrEq{\pflstepcurve}{}%
+		{%
+			\xdef\pflstepcurve{\xintfloateval{((\useKV[GraphiqueTikzCourbe]{Fin})-(\useKV[GraphiqueTikzCourbe]{Debut}))/100}}%
+		}%
+		{}%
+	\ifboolKV[GraphiqueTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{}
+		\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+		\ifboolKV[GraphiqueTikzCourbe]{Trace}%
+			{%
+				\path[draw,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+					\xintthecoords\xintfloatexpr
+					seq((x,#2(x)),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+					\relax
+				};
+			}%
+			{%
+				\path[draw=none,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+					\xintthecoords\xintfloatexpr
+					seq((x,#2(x)),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+					\relax
+				};
+			}%
+	\ifboolKV[GraphiqueTikzCourbe]{Clip}{\end{scope}}{}
+}
+
 \NewDocumentCommand\TracerCourbe{ O{} D<>{} m }{%
 	\restoreKV[GraphiqueTikzCourbe]%
 	\setKV[GraphiqueTikzCourbe]{#1}%
@@ -543,6 +718,10 @@
 	\ifboolKV[GraphiqueTikzCourbe]{Clip}{\end{scope}}{}
 }
 
+\NewDocumentCommand\DefinirListeInterpo{ m O{\malisteinterpo} }{%
+	\def#2{#1}%
+}
+
 \NewDocumentCommand\DefinirCourbeInterpo{ O{} m }{%
 	\restoreKV[GraphiqueTikzCourbe]%
 	\setKV[GraphiqueTikzCourbe]{#1}%
@@ -566,6 +745,120 @@
 	\end{scope}
 }
 
+\NewDocumentCommand\DefinirListeSpline{ m O{\malistespline} }{%
+	\def#2{#1}%
+}
+
+\newcommand\pflextractcoeff[2]{%1=liste,2=numero
+	\setsepchar{§}%
+	\readlist*\lcoeffs{#1}
+	\ifnum \lcoeffslen=1
+		\def\COEFFA{#1}
+		\def\COEFFB{#1}
+	\else
+		\itemtomacro\lcoeffs[#2]\COEFF
+		\IfSubStr{\COEFF}{/}%
+			{\StrCut{\COEFF}{/}{\COEFFA}{\COEFFB}}%
+			{\def\COEFFA{\COEFF}\def\COEFFB{\COEFF}}
+	\fi
+}
+
+\defKV[GraphiqueTikzSpline]{%
+	Nom=\def\pflsplinename{#1},%
+	Coeffs=\def\pflsplinecoeffs{#1}
+}
+
+\setKVdefault[GraphiqueTikzSpline]{%
+	Nom=spline,%
+	Couleur=black,%
+	Coeffs=3,%
+	Trace=false
+}
+
+\NewDocumentCommand\GenererSpline{ m m O{\monspline} }{%
+	%1=liste
+	\setsepchar[.]{§./}%
+	\readlist*\SPLlistepoints{#1}%
+	%les données
+	\def\tmpsplinenumdeb{1}
+	\def\tmpsplinenumfin{\SPLlistepointslen}%
+	\pflextractcoeff{#2}{\tmpsplinenumdeb}%
+	%nb de calculs
+	\def\SPLnbsplines{\inteval{\tmpsplinenumfin-1}}%
+	%extraction des coordonnées
+	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xa%
+	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\ya%
+	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimea%
+	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xb%
+	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\yb%
+	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimeb%
+	\xdef#3{(\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb)}%
+	\foreach \i in {\tmpsplinenumdeb,...,\SPLnbsplines}{%
+		%extraction des coeffs de compensation
+		\pflextractcoeff{#2}{\i}%
+		\def\j{\inteval{\i+1}}%
+		\itemtomacro\SPLlistepoints[\i,1]\xa%
+		\itemtomacro\SPLlistepoints[\i,2]\ya%
+		\itemtomacro\SPLlistepoints[\i,3]\fprimea%
+		\itemtomacro\SPLlistepoints[\j,1]\xb%
+		\itemtomacro\SPLlistepoints[\j,2]\yb%
+		\itemtomacro\SPLlistepoints[\j,3]\fprimeb%
+		\xdef#3{#3 ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb)}%
+	}%
+}
+
+\NewDocumentCommand\DefinirCourbeSpline{ O{} m D<>{\monspline} }{%
+	%1=liste
+	\restoreKV[GraphiqueTikzSpline]%
+	\setKV[GraphiqueTikzSpline]{#1}%
+	\GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+	\begin{scope}
+		\ifboolKV[GraphiqueTikzSpline]{Trace}%
+			{%
+				\path[draw,pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}},name path global=\pflsplinename] #3 ;
+			}%
+			{%
+				\path[draw=none,pflcourbe,name path global=\pflsplinename] #3 ;
+			}%
+	\end{scope}
+}
+
+\NewDocumentCommand\DefinirSpline{ O{} m D<>{\monspline} }{%old version
+	%1=liste
+	\restoreKV[GraphiqueTikzSpline]%
+	\setKV[GraphiqueTikzSpline]{#1}%
+	\GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+	\begin{scope}
+		\ifboolKV[GraphiqueTikzSpline]{Trace}%
+			{%
+				\path[draw,pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}},name path global=\pflsplinename] #3 ;
+			}%
+			{%
+				\path[draw=none,pflcourbe,name path global=\pflsplinename] #3 ;
+			}%
+	\end{scope}
+}
+
+\NewDocumentCommand\TracerCourbeSpline{ O{} m D<>{\monspline} }{%
+	%1=liste
+	\restoreKV[GraphiqueTikzSpline]%
+	\setKV[GraphiqueTikzSpline]{#1}%
+	\GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+	\begin{scope}
+		\draw[pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}}] #3 ;
+	\end{scope}
+}
+
+\NewDocumentCommand\TracerSpline{ O{} m D<>{\monspline} }{%old version
+	%1=liste
+	\restoreKV[GraphiqueTikzSpline]%
+	\setKV[GraphiqueTikzSpline]{#1}%
+	\GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+	\begin{scope}
+		\draw[pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}}] #3 ;
+	\end{scope}
+}
+
 %===INTERSECTION & ANTÉCÉDENTS
 \defKV[GraphiqueTikzIntersect]{%
 	Nom=\def\pflintercurves{#1}
@@ -575,7 +868,8 @@
 	Aff=true,
 	Couleur=black,
 	AffDroite=false,%
-	Traits=false
+	Traits=false,%
+	Style=o
 }
 
 \NewDocumentCommand\TrouverIntersections{ O{} m m D<>{\myt} }{%
@@ -592,7 +886,8 @@
 								\draw[pfltraitimg,{\useKV[GraphiqueTikzIntersect]{Couleur}}]let \p1 = (\pflintercurves-\i) in (\pflintercurves-\i) -- ({\x1},{\pflOy}) ;
 							}%
 							{}%
-						\filldraw[{\useKV[GraphiqueTikzIntersect]{Couleur}}] (\pflintercurves-\i) circle[pflpointc] ;
+						\MarquerPts*[Style={\useKV[GraphiqueTikzIntersect]{Style}},Couleur={\useKV[GraphiqueTikzIntersect]{Couleur}}]{(\pflintercurves-\i)}
+						%\filldraw[{\useKV[GraphiqueTikzIntersect]{Couleur}}] (\pflintercurves-\i) circle[pflpointc] ;
 					}
 				}%
 		}%
@@ -617,7 +912,8 @@
 				\xintifboolexpr{#4 == 0}{}%
 				{%
 					\foreach \i in {1,...,#4}{%
-						\filldraw[{\useKV[GraphiqueTikzIntersect]{Couleur}}] (\pflintercurves-\i) circle[pflpointc] ;
+						\MarquerPts*[Style={\useKV[GraphiqueTikzIntersect]{Style}},Couleur={\useKV[GraphiqueTikzIntersect]{Couleur}}]{(\pflintercurves-\i)}
+						%\filldraw[{\useKV[GraphiqueTikzIntersect]{Couleur}}] (\pflintercurves-\i) circle[pflpointc] ;
 					}
 				}%
 			}%
@@ -626,6 +922,7 @@
 }
 
 %====INTÉGRALES
+%v2 avec modification de la clé [Type=...] ?
 \defKV[GraphiqueTikzIntegr]{%
 	Couleurs=\def\pfldomtikzcolors{#1},%
 	Style=\def\pfldomtikzstyle{#1},%
@@ -635,7 +932,10 @@
 	Pas=\def\pflstepcurve{#1},%
 	Bornes=\def\pflintbornes{#1},%
 	Jonction=\def\pfldomtikzjoin{#1},%
-	NomSpline=\def\pfldomtikznamespline{#1}
+	NomInterpo=\def\pfldomtikznameinterpo{#1},%
+	NomInterpoB=\def\pfldomtikznameinterpob{#1},%
+	NomSpline=\def\pfldomtikznamespline{#1},%
+	NomSplineB=\def\pfldomtikznamesplineb{#1}
 }
 \setKVdefault[GraphiqueTikzIntegr]{%
 	Couleurs=gray,%
@@ -642,13 +942,19 @@
 	Style=remplissage,%
 	Opacite=0.5,%
 	Hachures={north west lines},%
-	Type=dessous,%
+	Type=fct,%
 	Pas={},%
 	Jonction=bevel,%
 	Bornes=abs,%
 	Bord=true,%
 	Spline=false,%
-	NomSpline={\monspline}
+	SplineB=false,%
+	NomInterpo={\moninterpo},%
+	NomInterpoB={\moninterpoB},%
+	NomSpline={\monspline},%
+	NomSplineB={\monsplineB},%
+	Tension=0.5,%
+	TensionB=0.5
 }
 
 \NewDocumentCommand\TracerIntegrale{ O{} D<>{} m O{0} m m }{%
@@ -675,15 +981,15 @@
 			\tikzset{integralebordtikzstyle/.style={draw=none}}
 		}%
 	\IfStrEq{\pfldomtikzstyle}{hachures}%
-	{%
-		\tikzset{integraletikzstyle/.style={pfltrait,pattern=\pfldomtikzhatch,pattern color=\pfldomtikzcolorfond,line join=\pfldomtikzjoin}}
-	}%
-	{}%
+		{%
+			\tikzset{integraletikzstyle/.style={pfltrait,pattern=\pfldomtikzhatch,pattern color=\pfldomtikzcolorfond,line join=\pfldomtikzjoin}}
+		}%
+		{}%
 	\IfStrEq{\pfldomtikzstyle}{remplissage}%
-	{%
-		\tikzset{integraletikzstyle/.style={pfltrait,fill=\pfldomtikzcolorfond,fill opacity=\pfldomtikzopac,line join=\pfldomtikzjoin}}
-	}%
-	{}%
+		{%
+			\tikzset{integraletikzstyle/.style={pfltrait,fill=\pfldomtikzcolorfond,fill opacity=\pfldomtikzopac,line join=\pfldomtikzjoin}}
+		}%
+		{}%
 	%extraction des infos x/y
 	\IfStrEqCase{\pflintbornes}{%
 		{abs}%
@@ -715,43 +1021,193 @@
 			\xdef\absnoeudB{#6}%
 		}%
 	}%
-	%suite
+	%suite avec les nbs points
 	\IfStrEq{\pflstepcurve}{}%
 		{%
 			\xdef\pflstepcurve{\xintfloateval{((\absnoeudB)-(\absnoeudA))/100}}%
 		}%
 		{}%
-	\IfStrEq{\pfldomtikztype}{dessous}%
-	{%
-		\ifboolKV[GraphiqueTikzIntegr]{Spline}%
-			{%
-				\begin{scope}
-					\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
-					\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflOy}) -- cycle ;
-				\end{scope}
-				\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
-				\path[name intersections={of=#3 and tmpintbornea,name=YYY}] ;
-				\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\pflOy})-- (YYY-1) ;
-				\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
-				\path[name intersections={of=#3 and tmpintborneb,name=ZZZ}] ;
-				\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ;
-			}%
-			{%
-				\begin{scope}
-					\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
-					\draw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflOy}) -- cycle ;
-				\end{scope}
-			}%
-	}%
-	{}%
-	\IfStrEq{\pfldomtikztype}{entre}%
-	{%
-		\begin{scope}
-			\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
-			\draw[integraletikzstyle,integralebordtikzstyle,#2] plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudB..[-(\pflstepcurve)]..\absnoeudA,\absnoeudA)\relax} -- cycle ;
-		\end{scope}
-	}%
-	{}%
+	%TRACÉSen fonction des types de courbes
+	\IfStrEq{\pfldomtikztype}{fct}%
+		{%OK
+			\begin{scope}
+				\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+				\draw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflOy}) -- cycle ;
+			\end{scope}
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{spl}%avec 3=courbe spline + clé [Spline] à utiliser !
+		{%OK
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflOy}) -- cycle ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[name intersections={of=#3 and tmpintbornea,name=YYY}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\pflOy})-- (YYY-1) ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=#3 and tmpintborneb,name=ZZZ}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{itp}%avec 3=courbe interpo
+		{%OK
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflOy}) -- cycle ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYY}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\pflOy})-- (YYY-1) ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=ZZZ}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{fct/fct}%avec #3=formule et #4=formule
+		{%
+			\begin{scope}
+				\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+				\draw[integraletikzstyle,integralebordtikzstyle,#2] plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudB..[-(\pflstepcurve)]..\absnoeudA,\absnoeudA)\relax} -- cycle ;
+			\end{scope}
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{spl/spl}%avec #3=cbe spline + #4=cbe splineB
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ;
+				\clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[name intersections={of=#3 and tmpintbornea,name=YYYA}] ;
+			\path[name intersections={of=#4 and tmpintbornea,name=ZZZA}] ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=#3 and tmpintborneb,name=YYYB}] ;
+			\path[name intersections={of=#4 and tmpintborneb,name=ZZZB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYA-1)-- (ZZZA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYB-1)-- (ZZZB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{itp/itp}%avec #3=cbe interpo + #4=cbe interpoB
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ;
+				\clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYYA}] ;
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=ZZZA}] ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=YYYB}] ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=ZZZB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYA-1)-- (ZZZA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYB-1)-- (ZZZB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{fct/spl}%avec #3=formule + #4=spline
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymin}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymin}) -- cycle ;
+				\clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[name intersections={of=tmpintbornea and #4,name=ZZZA}] ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=tmpintborneb and #4,name=ZZZB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#3,x=\absnoeudA)}})-- (ZZZA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#3,x=\absnoeudB)}})-- (ZZZB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{spl/fct}%avec #3=spline + #4=fct
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymax}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymax}) -- cycle ;
+				\clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[name intersections={of=tmpintbornea and #3,name=ZZZA}] ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=tmpintborneb and #3,name=ZZZB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#4,x=\absnoeudA)}})-- (ZZZA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#4,x=\absnoeudB)}})-- (ZZZB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{fct/itp}%avec #3=formule + #4=liste interpo
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymin}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymin}) -- cycle ;
+				\clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=ZZZAA}] ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=ZZZAB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#3,x=\absnoeudA)}})-- (ZZZAA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#3,x=\absnoeudB)}})-- (ZZZAB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{itp/fct}%
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymax}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymax}) -- cycle ;
+				\clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=ZZZAA}] ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=ZZZAB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#4,x=\absnoeudA)}})-- (ZZZAA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#4,x=\absnoeudB)}})-- (ZZZAB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{itp/spl}%
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ;
+				\clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;%borne inf
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;%borne sup
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYYKAA}] ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=YYYKBB}] ;
+			\path[name intersections={of=tmpintbornea and #4,name=ZZZKAA}] ;
+			\path[name intersections={of=tmpintborneb and #4,name=ZZZKBB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYKAA-1)-- (ZZZKAA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYKBB-1)-- (ZZZKBB-1) ;
+		}%
+		{}%
+	\IfStrEq{\pfldomtikztype}{spl/itp}%
+		{%
+			\begin{scope}
+				\clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ;
+				\clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ;
+				\filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+			\end{scope}
+			\path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;%borne inf
+			\path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;%borne sup
+			\path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=YYYKAA}] ;
+			\path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=YYYKBB}] ;
+			\path[name intersections={of=tmpintbornea and #3,name=ZZZKAA}] ;
+			\path[name intersections={of=tmpintborneb and #3,name=ZZZKBB}] ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYKAA-1)-- (ZZZKAA-1) ;
+			\draw[\pfldomtikzcolorbord,pfltrait] (YYYKBB-1)-- (ZZZKBB-1) ;
+		}%
+		{}%
 }
 
 \NewDocumentCommand\PlacerPoints{ s O{black} D<>{\normalfont\normalsize} m }{%
@@ -782,7 +1238,8 @@
 	Debut={\pflxmin},
 	Fin={\pflxmax},
 	Nom=reglin,
-	TracerDroite=false
+	TracerDroite=false,%
+	Style=o
 }
 
 \NewDocumentCommand\TracerNuage{ O{} D<>{d} m m }{%
@@ -797,7 +1254,10 @@
 	\def\LNB{\inteval{\LXlen}}
 	%nuage
 	\foreach \i in {1,...,\LXlen}{%
-		\filldraw[{\useKV[GraphiqueTikzRegLin]{CouleurNuage}}] ({\LX[\i]},{\LY[\i]}) circle[pflpointnuage] ;
+		\itemtomacro\LX[\i]\tmpmavalx%
+		\itemtomacro\LY[\i]\tmpmavaly%
+		\MarquerPts*[Style={\useKV[GraphiqueTikzRegLin]{Style}},Couleur={\useKV[GraphiqueTikzRegLin]{CouleurNuage}}]{(\tmpmavalx,\tmpmavaly)}
+		%\filldraw[{\useKV[GraphiqueTikzRegLin]{CouleurNuage}}] ({\LX[\i]},{\LY[\i]}) circle[pflpointnuage] ;
 	}
 	%droite de régression
 	\ifboolKV[GraphiqueTikzRegLin]{TracerDroite}%
@@ -864,7 +1324,8 @@
 %===IMAGES & ANTÉCÉDENTS
 \defKV[GraphiqueTikzImg]{
 	Couleurs=\def\pflimgcolors{#1},%
-	Nom=\def\pflantecednoms{#1}
+	Nom=\def\pflantecednoms{#1}%,%
+	%Style=\xdef\pflantecedstyle{#1}
 }
 
 \setKVdefault[GraphiqueTikzImg]{
@@ -871,7 +1332,8 @@
 	Couleurs=black,
 	Traits=false,
 	Spline=false,%
-	Nom={}
+	Nom={},%
+	Style=o
 }
 
 \NewDocumentCommand\PlacerImages{ O{} m m }{%
@@ -894,7 +1356,8 @@
 						\draw[\pflimgcolorline,pfltraitimg] let \p1 = (ZZ-1) in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ;
 					}%
 					{}%
-				\filldraw[\pflimgcolorpt] (ZZ-1) circle[radius=2pt] ;
+				\MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{(ZZ-1)}
+				%\filldraw[\pflimgcolorpt] (ZZ-1) circle[radius=2pt] ;
 			}
 		}%
 		{%
@@ -905,7 +1368,8 @@
 						\draw[\pflimgcolorline,pfltraitimg] ({\i},{\pflOy}) |- ({\pflOx},{\tmpresimg}) ;
 					}%
 					{}%
-				\filldraw[\pflimgcolorpt] ({\i},{\tmpresimg}) circle[radius=2pt] ;
+				\MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{({\i},{\tmpresimg})}
+				%\filldraw[\pflimgcolorpt] ({\i},{\tmpresimg}) circle[radius=2pt] ;
 			}%
 		}
 }
@@ -943,97 +1407,13 @@
 							\draw[\pflimgcolorline,pfltraitimg] let \p1 = (ZZ-\i) in (ZZ-\i) -- ({\x1},{\pflOy}) ;
 						}%
 						{}%
-					\filldraw[\pflimgcolorpt] (ZZ-\i) circle[radius=2pt] ;
+					\MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{(ZZ-\i)}
+					%\filldraw[\pflimgcolorpt] (ZZ-\i) circle[radius=2pt] ;
 				}%
 			}%
 	\end{scope}
 }
 
-%====SPLINES CUBIQUES
-\newcommand\pflextractcoeff[2]{%1=liste,2=numero
-	\setsepchar{§}%
-	\readlist*\lcoeffs{#1}
-	\ifnum \lcoeffslen=1
-		\def\COEFFA{#1}
-		\def\COEFFB{#1}
-	\else
-		\itemtomacro\lcoeffs[#2]\COEFF
-		\IfSubStr{\COEFF}{/}%
-			{\StrCut{\COEFF}{/}{\COEFFA}{\COEFFB}}%
-			{\def\COEFFA{\COEFF}\def\COEFFB{\COEFF}}
-	\fi
-}
-
-\defKV[GraphiqueTikzSpline]{%
-	Nom=\def\pflsplinename{#1},%
-	Coeffs=\def\pflsplinecoeffs{#1}
-}
-
-\setKVdefault[GraphiqueTikzSpline]{%
-	Nom=spline,%
-	Couleur=black,%
-	Coeffs=3,%
-	Trace=false
-}
-
-\NewDocumentCommand\GenererSpline{ m m O{\monspline} }{%
-	%1=liste
-	\setsepchar[.]{§./}%
-	\readlist*\SPLlistepoints{#1}%
-	%les données
-	\def\tmpsplinenumdeb{1}
-	\def\tmpsplinenumfin{\SPLlistepointslen}%
-	\pflextractcoeff{#2}{\tmpsplinenumdeb}%
-	%nb de calculs
-	\def\SPLnbsplines{\inteval{\tmpsplinenumfin-1}}%
-	%extraction des coordonnées
-	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xa%
-	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\ya%
-	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimea%
-	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xb%
-	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\yb%
-	\itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimeb%
-	\xdef#3{(\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb)}%
-	\foreach \i in {\tmpsplinenumdeb,...,\SPLnbsplines}{%
-		%extraction des coeffs de compensation
-		\pflextractcoeff{#2}{\i}%
-		\def\j{\inteval{\i+1}}%
-		\itemtomacro\SPLlistepoints[\i,1]\xa%
-		\itemtomacro\SPLlistepoints[\i,2]\ya%
-		\itemtomacro\SPLlistepoints[\i,3]\fprimea%
-		\itemtomacro\SPLlistepoints[\j,1]\xb%
-		\itemtomacro\SPLlistepoints[\j,2]\yb%
-		\itemtomacro\SPLlistepoints[\j,3]\fprimeb%
-		\xdef#3{#3 ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb)}%
-	}%
-}
-
-\NewDocumentCommand\DefinirSpline{ O{} m D<>{\monspline} }{%
-	%1=liste
-	\restoreKV[GraphiqueTikzSpline]%
-	\setKV[GraphiqueTikzSpline]{#1}%
-	\GenererSpline{#2}{\pflsplinecoeffs}<#3>%
-	\begin{scope}
-		\ifboolKV[GraphiqueTikzSpline]{Trace}%
-			{%
-				\path[draw,pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}},name path global=\pflsplinename] #3 ;
-			}%
-			{%
-				\path[draw=none,pflcourbe,name path global=\pflsplinename] #3 ;
-			}%
-	\end{scope}
-}
-
-\NewDocumentCommand\TracerSpline{ O{} m D<>{\monspline} }{%
-	%1=liste
-	\restoreKV[GraphiqueTikzSpline]%
-	\setKV[GraphiqueTikzSpline]{#1}%
-	\GenererSpline{#2}{\pflsplinecoeffs}<#3>%
-	\begin{scope}
-		\draw[pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}}] #3 ;
-	\end{scope}
-}
-
 %===NOMBRE DÉRIVÉ ET TANGENTE (EXPÉRIEMENTAL)
 \NewDocumentCommand\CalculerNbDerive{ s m m m }{%*=gauche+nomfct+abspt+h
 	\IfBooleanTF{#1}%
@@ -1062,7 +1442,8 @@
 	h=0.1,%
 	Sens=gd,%
 	Noeud=false,%
-	Delta=0.01
+	Delta=0.01,%
+	Style=o
 }
 
 \NewDocumentCommand\TracerTangente{ O{} m m D<>{} }{%
@@ -1157,14 +1538,142 @@
 		{%
 			\ifboolKV[GraphiqueTikzTgte]{Spline}%
 				{%
-					\filldraw[\pfltgttikzpoint] (TANp-1) circle[pflpointc] ;
+					\MarquerPts*[Style={\useKV[GraphiqueTikzTgte]{Style}},Couleur=\pfltgttikzpoint]{(TANp-1)}
+					%\filldraw[] (TANp-1) circle[pflpointc] ;
 				}%
 				{%
 					\xdef\tmpimgtgt{\xintfloateval{#2(\pfltgttikzx)}}%
-					\filldraw[\pfltgttikzpoint] ({\pfltgttikzx},\tmpimgtgt) circle[pflpointc] ;
+					\MarquerPts*[Style={\useKV[GraphiqueTikzTgte]{Style}},Couleur=\pfltgttikzpoint]{({\pfltgttikzx},\tmpimgtgt)}
+					%\filldraw[\pfltgttikzpoint] ({\pfltgttikzx},\tmpimgtgt) circle[pflpointc] ;
 				}%
 		}%
 		{}%
 }
 
+%====loi normale
+\defKV[GraphiqueTikzGaussienne]{%
+	Pas=\def\pflgaussstep{#1},%
+	Nom=\def\pflgaussname{#1}
+}
+
+\setKVdefault[GraphiqueTikzGaussienne]{%
+	Nom=gaussienne,%
+	Couleur=black,%
+	Trace=false,%
+	Pas={},%
+	Debut={\pflxmin},%
+	Fin={\pflxmax}
+}
+
+\NewDocumentCommand\DefinirLoiNormale{ O{} D<>{phi} m m }{%
+	%1=options
+	%2=mu
+	%3=sigma
+	\restoreKV[GraphiqueTikzGaussienne]%
+	\setKV[GraphiqueTikzGaussienne]{#1}%
+	\xintdeffloatfunc #2(x) := 1/((#4)*sqrt(2*pi))*exp(-0.5*((x-(#3))/(#4))^2) ;%
+	\IfStrEq{\pflgaussstep}{}%
+		{%
+			\xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+		}%
+		{}%
+	\begin{scope}
+		\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+		\ifboolKV[GraphiqueTikzGaussienne]{Trace}%
+			{%
+				\path[draw,pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}},name path global=\pflgaussname] plot[smooth] coordinates {%
+					\xintthecoords\xintfloatexpr
+					seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+					\relax
+				} ;
+			}%
+			{%
+				\path[draw=none,pflcourbe,name path global=\pflgaussname]  plot[smooth] coordinates {%
+					\xintthecoords\xintfloatexpr
+					seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+					\relax
+				} ;
+			}%
+	\end{scope}
+}
+
+\NewDocumentCommand\TracerLoiNormale{ O{} m }{%
+	%1=options
+	%2=mu
+	%3=sigma
+	\restoreKV[GraphiqueTikzGaussienne]%
+	\setKV[GraphiqueTikzGaussienne]{#1}%
+	\IfStrEq{\pflgaussstep}{}%
+		{%
+			\xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+		}%
+		{}%
+	\begin{scope}
+		\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+		\draw[pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}}]  plot[smooth] coordinates {%
+			\xintthecoords\xintfloatexpr
+			seq((x,#2),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+			\relax
+		} ;
+	\end{scope}
+}
+
+%==== DENSITÉ KHIDEUX
+\xintdeffloatfunc pflrecigamma(x) := x+0.577215664901*x^2-0.65587807152056*x^3-0.042002635033944*x^4+0.16653861138228*x^5-0.042197734555571*x^6;
+\xintdeffloatfunc pflgamma(x) := (x==1)?{1}{(abs(x)<=0.5)?{1/pflrecigamma(x)}{(x-1)*pflgamma(x-1)}};
+\xintdeffloatfunc pflkhideux(x,k) := (x<0)?{0}{(1/(2^(k/2)*pflgamma(k/2)))*x^(k/2-1)*exp(-x/2)};
+
+\NewDocumentCommand\DefinirLoiKhiDeux{ O{} D<>{khi} m }{%
+	%1=options
+	%2=mu
+	%3=sigma
+	\restoreKV[GraphiqueTikzGaussienne]%
+	\setKV[GraphiqueTikzGaussienne]{#1}%
+	\xintdeffloatfunc #2(x) := (x<0)?{0}{(1/(2^((#3)/2)*pflgamma((#3)/2)))*x^((#3)/2-1)*exp(-x/2)};
+	\IfStrEq{\pflgaussstep}{}%
+	{%
+		\xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+	}%
+	{}%
+	\begin{scope}
+		\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+		\ifboolKV[GraphiqueTikzGaussienne]{Trace}%
+			{%
+				\path[draw,pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}},name path global=\pflgaussname] plot[smooth] coordinates {%
+					\xintthecoords\xintfloatexpr
+					seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+					\relax
+				} ;
+			}%
+			{%
+				\path[draw=none,pflcourbe,name path global=\pflgaussname]  plot[smooth] coordinates {%
+					\xintthecoords\xintfloatexpr
+					seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+					\relax
+				} ;
+			}%
+	\end{scope}
+}
+
+\NewDocumentCommand\TracerLoiKhiDeux{ O{} m }{%
+	%1=options
+	%2=mu
+	%3=sigma
+	\restoreKV[GraphiqueTikzGaussienne]%
+	\setKV[GraphiqueTikzGaussienne]{#1}%
+	\IfStrEq{\pflgaussstep}{}%
+		{%
+			\xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+		}%
+		{}%
+	\begin{scope}
+		\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+		\draw[pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}}]  plot[smooth] coordinates {%
+			\xintthecoords\xintfloatexpr
+			seq((x,#2),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+			\relax
+		} ;
+	\end{scope}
+}
+
 \endinput
\ No newline at end of file



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