texlive[63209] Master/texmf-dist: proflycee (2may22)

commits+karl at tug.org commits+karl at tug.org
Mon May 2 21:42:09 CEST 2022


Revision: 63209
          http://tug.org/svn/texlive?view=revision&revision=63209
Author:   karl
Date:     2022-05-02 21:42:09 +0200 (Mon, 02 May 2022)
Log Message:
-----------
proflycee (2may22)

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-05-02 19:41:58 UTC (rev 63208)
+++ trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex	2022-05-02 19:42:09 UTC (rev 63209)
@@ -34,8 +34,8 @@
 \setlength{\parindent}{0pt}
 \definecolor{LightGray}{gray}{0.9}
 
-\def\PLversion{1.1.1}
-\def\PLdate{28 Avril 2022}
+\def\PLversion{1.1.3}
+\def\PLdate{2 Mai 2022}
 
 \tcbset{vignettes/.style={%
 		nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -184,6 +184,12 @@
 
 Une commande pour tracer un pavé en droit, en \TikZ, avec création des nœuds liés aux sommets.
 
+Une commande pour simplifier des calculs sous forme fractionnaire.
+
+Une commande pour simplifier l'écriture d'un ensemble, avec espaces \og automatiques \fg.
+
+Une commande pour créer, en \TikZ, la \textit{toile} pour une suite récurrente.
+
 \vfill
 
 \hrule
@@ -1477,7 +1483,7 @@
 \begin{codetex}[listing only]
 ...
 \begin{tikzpicture}[<options>]
-	\tetraCF[<options>]
+	\tetraPL[<options>]
 	...
 \end{tikzpicture}
 \end{codetex}
@@ -1582,8 +1588,331 @@
 
 \newpage
 
+\section{Fractions, ensembles}
+
+\subsection{Fractions}
+
+\begin{codeidee}
+L'idée est d'obtenir une commande pour simplifier un calcul sous forme de fraction irréductible.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\convertfraction[<option>]{<argument>}
+\end{codetex}
+
+\begin{codecles}
+Peu d'options pour ces commandes :
+
+\begin{itemize}
+	\item le premier argument, optionnel, permet de spécifier le mode de sortie de la fraction \textsf{[t]} pour \textsf{tfrac} et \textsf{[d]} pour \textsf{dfrac} ;
+	\item le second, mandataire, est le \textsf{calcul} ou la \textsf{division} à convertir.
+\end{itemize}
+
+À noter que la macro est dans un bloc \textsf{ensuremath} donc les \textsf{\$\ldots\$} ne sont pas nécessaires.
+\end{codecles}
+
+\begin{codetex}[listing only]
+\convertfraction{111/2145}
+\convertfraction{111/3}
+$\frac{111}{2145}=\convertfraction{111/2145}$
+$\frac{3}{15}=\convertfraction[]{3/15}$
+$\tfrac{3}{15}=\convertfraction[t]{3/15}$                   #formatage en \tfrac
+$\dfrac{3}{15}=\convertfraction[d]{3/15}$                   #formatage en \dfrac
+$\dfrac{0,42}{0,015}=\convertfraction[d]{0.42/0.015}$
+$\dfrac{0,41}{0,015}=\convertfraction[d]{0.41/0.015}$
+$\dfrac{1}{7}+\dfrac{3}{8}=\convertfraction[d]{1/7+3/8}$
+$\convertfraction[d]{1+1/2}$
+$\convertfraction{0.1/0.7+30/80}$
+\end{codetex}
+
+\begin{codesortie}
+\convertfraction{111/2145}
+
+\smallskip
+
+\convertfraction{111/3}
+
+\smallskip
+
+$\frac{111}{2145}=\convertfraction{111/2145}$
+
+\smallskip
+
+$\frac{3}{15}=\convertfraction[]{3/15}$
+
+\smallskip
+
+$\tfrac{3}{15}=\convertfraction[t]{3/15}$
+
+\smallskip
+
+$\dfrac{3}{15}=\convertfraction[d]{3/15}$
+
+\smallskip
+
+$\dfrac{0,42}{0,015}=\convertfraction[d]{0.42/0.015}$
+
+\smallskip
+
+$\dfrac{0,41}{0,015}=\convertfraction[d]{0.41/0.015}$
+
+\smallskip
+
+$\dfrac{1}{7}+\dfrac{3}{8}=\convertfraction[d]{1/7+3/8}$
+
+\smallskip
+
+$\convertfraction[d]{1+1/2}$
+
+\smallskip
+
+$\convertfraction{0.1/0.7+30/80}$
+\end{codesortie}
+
+\begin{codeinfo}
+A priori le package \ctex{xint} permet de s'en sortir pour des calculs \og simples \fg, je ne garantis pas que tout calcul ou toute division donne un résultat \textit{satisfaisant} !
+\end{codeinfo}
+
+\pagebreak
+
+\subsection{Ensembles}
+
+\begin{codeidee}
+L'idée est d'obtenir une commande pour simplifier l'écriture d'un ensemble d'éléments, en laissant gérer les espaces.
+
+Les délimiteurs de l'ensemble créé sont toujours \textsf{\{~~\}}.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\ensPL[<clés>]{<liste>}
+\end{codetex}
+
+\begin{codecles}
+Peu d'options pour ces commandes :
+
+\begin{itemize}
+	\item le premier argument, optionnel, permet de spécifier les \Cle{Clés} :
+	\begin{itemize}
+		\item clé \Cle{sep} qui correspond au délimiteur des éléments de l'ensemble ; \hfill{}défaut \Cle{;}
+		\item clé \Cle{option} qui est un code (par exemple \textsf{strut}\dots) inséré avant les éléments ;\hfill{}défaut \Cle{vide}
+		\item un booléen \Cle{mathpunct} qui permet de préciser si on utilise l'espacement mathématique \textsf{mathpunct};\hfill{}défaut \Cle{true}
+	\end{itemize}
+	\item le second, mandataire, est la \textsf{liste} des éléments, séparés par \textsf{/}.
+\end{itemize}
+\end{codecles}
+
+\begin{codetex}[listing only]
+$\ensPL{a/b/c/d/e}$
+$\ensPL[mathpunct=false]{a/b/c/d/e}$
+$\ensPL[sep={,}]{a/b/c/d/e}$
+$\ensPL[option={\strut}]{a/b/c/d/e}$
+$\ensPL{ \frac{1}{1+\frac{1}{3}} / b / c / d / \frac{1}{2} }$
+\end{codetex}
+
+\begin{codesortie}
+$\ensPL{a/b/c/d/e}$
+
+\smallskip
+
+$\ensPL[mathpunct=false]{a/b/c/d/e}$
+
+\smallskip
+
+$\ensPL[sep={,}]{a/b/c/d/e}$
+
+\smallskip
+
+$\ensPL[option={\strut}]{a/b/c/d/e}$
+
+\smallskip
+
+$\ensPL{ \displaystyle\frac{1}{1+\frac{1}{3}} / b / c / d / \displaystyle\frac{1}{2} }$
+\end{codesortie}
+
+\begin{codeinfo}
+Attention cependant au comportement de la commande avec des éléments en mode \textsf{mathématique}, ceux-ci peuvent générer une erreur si \textsf{displaystyle} n'est pas utilisé\ldots
+\end{codeinfo}
+
+\newpage
+
+\section{Suites récurrentes et \og toile \fg}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est d'obtenir une commande pour tracer (en \TikZ) la \og toile \fg{} permettant d'obtenir -- graphiquement -- les termes d'une suite récurrente définie par une relation $u_{n+1}=f(u_n)$.
+
+\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.
+\end{codeidee}
+
+\subsection{Commandes}
+
+\begin{codetex}[listing only]
+...
+\begin{tikzpicture}[<options>]
+	...
+	\recurrPL[<clés>][<options du tracé>][<option supplémentaire des termes>]
+	...
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codecles}
+Plusieurs \Cle{arguments} (optionnels) sont disponibles :
+
+\begin{itemize}
+	\item le premier argument optionnel définit les \Cle{Clés} de la commande :
+	\begin{itemize}
+		\item la clé \Cle{fct} qui définit la fonction $f$ ;\hfill{}défaut \Cle{vide}
+		\item la clé \Cle{nom} qui est le \textit{nom} de la suite ;\hfill{}défaut \Cle{u}
+		\item la clé \Cle{no} qui est l'indice initial ;\hfill{}défaut \Cle{0}
+		\item la clé \Cle{uno} qui est la valeur du terme initial ;\hfill{}défaut \Cle{vide}
+		\item la clé \Cle{nb} qui est le nombre de termes à construire ;\hfill{}défaut \Cle{5}
+		\item la clé \Cle{poslabel} qui correspond au placement des labels par rapport à l'axe des abscisses ;\hfill{}défaut \Cle{below}
+		\item la clé \Cle{decallabel} qui correspond au décalage des labels par rapport aux abscisses ;\hfill{}défaut \Cle{6pt}
+		\item la clé \Cle{taillelabel} qui correspond à la taille des labels ;\hfill{}défaut \Cle{small}
+		\item un booléen \Cle{afftermes} qui permet d'afficher les termes de la suite sur l'axe $(Ox)$.\hfill{}défaut \Cle{true}
+	\end{itemize}
+	\item le deuxième argument optionnel concerne les \Cle{options} du tracé de l'\textit{escalier} en \textit{langage \TikZ} ;
+	
+	\hfill{}défaut \Cle{thick,color=magenta} ;
+	\item le troisième argument optionnel concerne les \Cle{options} du tracé des termes en \textit{langage \TikZ}.
+	
+	\hfill{}défaut \Cle{dotted}.
+\end{itemize}
+\end{codecles}
+
+\begin{codeinfo}
+Il est à noter que le \textsf{code} n'est pas autonome, et doit être intégré dans un environnement \ctex{tikzpicture}.
+
+\smallskip
+
+L'utilisateur est donc libre de définir ses styles pour l'affichage des éléments de son graphique, et il est libre également de rajouter des éléments en plus du tracé de la \textit{toile} !
+
+\smallskip
+
+La macro ne permet -- pour le moment -- ni de tracer la bissectrice, ni de tracer la courbe$\ldots$
+
+En effet, il y aurait trop d'options pour ces deux éléments, et l'idée est quand même de conserver une commande \textit{simple} ! Donc l'utilisateur se chargera de tracer et de personnaliser sa courbe et sa bissectrice !
+\end{codeinfo}
+
+\subsection{Exemples}
+
+\begin{codeinfo}
+On va tracer la \textit{toile} des 4 premiers termes de la suite récurrente $\begin{dcases} u_1 = 1 \\ u_{n+1} = \sqrt{5u_n}+1 \text{ pour tout entier } n \geqslant 1\end{dcases}$.
+\end{codeinfo}
+
+\begin{codetex}[tikz lower]
+%code tikz
+\def\x{1.5cm}\def\y{1.5cm}
+\def\xmin{0}\def\xmax{10}\def\xgrille{1}\def\xgrilles{0.5}
+\def\ymin{0}\def\ymax{8}\def\ygrille{1}\def\ygrilles{0.5}
+%axes et grilles
+\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax);
+\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax);
+\draw[line width=1.5pt,->,darkgray] (\xmin,0)--(\xmax,0) ;
+\draw[line width=1.5pt,->,darkgray] (0,\ymin)--(0,\ymax) ;
+\foreach \x in {0,1,...,9} {\draw[darkgray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;}
+\foreach \y in {0,1,...,7} {\draw[darkgray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;}
+%fonction définie et réutilisable
+\def\f{sqrt(5*\x)+1}
+%toile
+\recurrPL[fct={\f},no=1,uno=1,nb=4,decallabel=4pt]
+%éléments supplémentaires
+\draw[very thick,blue,domain=0:8,samples=250] plot (\x,{\f}) ;
+\draw[very thick,ForestGreen,domain=0:8,samples=2] plot (\x,\x) ;
+\end{codetex}
+
+\begin{codeinfo}
+Peut-être que -- ultérieurement -- des options \textit{booléennes} seront disponibles pour un tracé \textit{générique} de la courbe et de la bissectrice, mais pour le moment la \textsf{macro} ne fait \textit{que} l'escalier.
+\end{codeinfo}
+
+\subsection{Influence des paramètres}
+
+\begin{codetex}[listing only]
+\begin{center}
+	\begin{tikzpicture}[x=4cm,y=3cm]
+	%axes + grilles + graduations
+	...
+	%fonction
+	\def\f{-0.25*\x*\x+\x}
+	%tracés
+	\begin{scope}
+		\clip (0,0) rectangle (2.5,1.25) ;
+		\draw[line width=1.25pt,blue,domain=0:2.5,samples=200] plot (\x,{\f}) ;
+	\end{scope}
+	\recurrPL[fct={\f},no=0,uno=2,nb=5,poslabel=above right,decallabel=0pt]
+\end{tikzpicture}
+\end{center}
+\end{codetex}
+
+\medskip
+
+\begin{codesortie}
+\begin{center}
+	\begin{tikzpicture}[x=4cm,y=3cm]
+	\draw[xstep=0.25,ystep=0.25,line width=0.3pt,lightgray!50] (0,0) grid (2.5,1.25);
+	\draw[thick,->] (0,0)--(2.5,0) ;
+	\draw[thick,->] (0,0)--(0,1.25) ;
+	\foreach \x in {0,1,2}
+	\draw[line width=1.25pt] (\x,4pt) -- (\x,-4pt) node[below] {\num{\x}} ;
+	\foreach \y in {0,0.5,1.0}
+	\draw[line width=1.25pt] (4pt,\y) -- (-4pt,\y) node[left] {\num{\y}} ;
+	\draw[line width=1.25pt,red](0,0) -- (1.25,1.25) ;
+	%fonction
+	\def\f{-0.25*\x*\x+\x}
+	%tracés
+	\begin{scope}
+		\clip (0,0) rectangle (2.5,1.25) ;
+		\draw[line width=1.25pt,blue,domain=0:2.5,samples=200] plot (\x,{\f}) ;
+	\end{scope}
+	\recurrPL[fct={\f},no=0,uno=2,nb=5,poslabel=above right,decallabel=0pt]
+\end{tikzpicture}
+\end{center}
+\end{codesortie}
+
+\begin{codetex}[listing only]
+\begin{center}
+	\begin{tikzpicture}[x=5cm,y=1.5cm]
+		...
+		\def\f{-0.25*\x*\x+\x}
+		\recurrPL%
+			[fct={\f},no=0,uno=1,nb=7,poslabel=above right,decallabel=0pt,afftermes=false]%
+			[line width=1.25pt,ForestGreen,densely dashed][]
+		\draw[line width=1.25pt,blue,domain=0:2.25,samples=2] plot(\x,{\x});
+		\draw[line width=1.25pt,red,domain=0.8:2.5,samples=250] plot(\x,{\f});
+	\end{tikzpicture}
+\end{center}
+\end{codetex}
+
+\begin{codesortie}
+\begin{center}
+	\begin{tikzpicture}[x=5cm,y=1.5cm]
+		%axes et grille
+		\draw[xstep=0.5,ystep=0.25,line width=0.3pt,lightgray!50] (0,0) grid (2.5,2.25);
+		\draw[thick,->] (0,0)--(2.5,0) ;
+		\draw[thick,->] (0,0)--(0,2.25) ;
+		\foreach \x in {0,0.5,...,2}
+			\draw[line width=1.25pt] (\x,4pt) -- (\x,-4pt) node[below] {\num{\x}};
+		\foreach \y in {0,0.5,...,2}
+			\draw[line width=1.25pt] (4pt,\y) -- (-4pt,\y) node[left] {\num{\y}};
+		%fonction
+		\def\f{1+1/\x}
+		%tracés
+		\recurrPL[fct={\f},no=0,uno=1,nb=7,poslabel=above right,decallabel=0pt,afftermes=false][line width=1.25pt,ForestGreen,densely dashed][]
+		\draw[line width=1.25pt,blue,domain=0:2.25,samples=2] plot(\x,{\x});
+		\draw[line width=1.25pt,red,domain=0.8:2.5,samples=250] plot(\x,{\f});
+	\end{tikzpicture}
+\end{center}
+\end{codesortie}
+
+\newpage
+
 \section{Historique}
 
+{\small \bverb|v1.1.3|~:~~~~Ajout des commandes \textsf{convertfraction}, \textsf{ensPL} et \textsf{recurrPL} (changement de numérotation du package également)
+
 {\small \bverb|v1.1.1|~:~~~~Modification mineure de l'environnement CF, avec prise de charge de la taille du texte !
 
 {\small \bverb|v1.1.0|~:~~~~Ajout d'une commande \textsf{tetraPL} pour créer des tétraèdres (avec nœuds) en \TikZ

Modified: trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-05-02 19:41:58 UTC (rev 63208)
+++ trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-05-02 19:42:09 UTC (rev 63209)
@@ -3,7 +3,9 @@
 % or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/04/28 - v1.1.1 - Aide pour l'utilisation de LaTeX en lycée]
+\ProvidesPackage{ProfLycee}[2022/05/02 - v1.1.3 - Aide pour l'utilisation de LaTeX en lycée]
+% 1.1.3	Ajout d'une commande ensemble pour créer un ensemble à partir d'une liste
+% 1.1.2	Modifications mineures
 % 1.1.1	Modification mineure de l'environnement CF, avec prise de charge de la taille du texte !
 % 1.1.0	Ajout d'une commande tetraPL pour un tetraèdre dans un environnement TikZ
 % 1.0.9	Ajout d'une commande pavePL pour un pave droit dans un environnement TikZ
@@ -46,7 +48,7 @@
 \usetikzlibrary{calc}
 \usetikzlibrary{decorations.pathreplacing}
 \usetikzlibrary{decorations.markings}
-\usetikzlibrary{arrows.meta}
+\usetikzlibrary{arrows,arrows.meta}
 %tcolorbox
 \RequirePackage[most]{tcolorbox}
 %divers
@@ -796,4 +798,90 @@
 		{\draw[dashed,\PFTetraThick] (\TetraA)--(\TetraC) ;}
 }
 
+%============EnsembleList============== OK !!
+\defKV[kvensemble]{%
+	sep=\def\PLenssep{#1},%
+	option=\def\PLensopt{#1}
+}
+
+\setKVdefault[kvensemble]{%
+	sep={;},%
+	option=,%
+	mathpunct=true
+}
+
+\newcommand\ensPL[2][1]{%
+	\useKVdefault[kvensemble]
+	\setKV[kvensemble]{#1}
+	\ifboolKV[kvensemble]{mathpunct}%
+		{\left\lbrace \PLensopt{} \mathpunct{} \StrSubstitute{#2}{/}{\mathpunct{}{\PLenssep}\mathpunct{}} \mathpunct{} \right\rbrace}%
+		{\left\lbrace \PLensopt{} \StrSubstitute{#2}{/}{{\PLenssep}} \right\rbrace}
+}
+
+%===============SimplFrac============== OK !!
+\DeclareDocumentCommand\convertfraction{ O{} m }{% argument optionnel [d ou t] puis argument mandataire {calcul ou fraction}
+	\def\calculargument{\xintPRaw{\xintIrr{\xinteval{#2}}}}%on calcule et on transforme en A/B
+	\IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
+	{%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
+	}{%si non := entier
+		\num{\calculargument}%on affiche l'entier, avec le package siunitx
+	}
+}
+
+%================CabWeb================ OK !!
+\defKV[webrecurr]{%
+	fct=\def\PLRecurfct{#1},%
+	nom=\def\PLRecurnom{#1},%
+	no=\def\PLRecurno{#1},%
+	nb=\def\PLRecurnb{#1},%
+	uno=\def\PLRecuruno{#1},%
+	poslabel=\def\PLRecurposlab{#1},%
+	decallabel=\def\PLRecuroffset{#1},%
+	taillelabel=\def\PLRecurlabelsize{#1},%
+}
+
+\setKVdefault[webrecurr]{
+	no=0,%
+	nom=u,%
+	nb=5,%
+	afftermes=true,%
+	poslabel=below,%
+	decallabel=6pt,%
+	taillelabel=\small
+}
+
+%\newcommand\recurr[1][]{%
+	\NewDocumentCommand\recurrPL{ O{} O{thick,color=magenta} O{dotted} }{
+		%<clés> + <style cabweb> + <style supplémentaire pointillés>
+		\useKVdefault[webrecurr]%
+		\setKV[webrecurr]{#1}% on paramètres les nouvelles clés et on les simplifie
+		\foreach \i [remember=\i as \x (initially \PLRecuruno)] in {1,...,\PLRecurnb}{%
+			\def\y{\fpeval{\PLRecurfct}}
+			%test de la position courbe / bissectrice ?
+			\ifnum \i=1
+				\newdimen \X
+				\newdimen \Y
+				\X = \x pt
+				\Y = \y pt
+				\ifdim \Y < \X
+					\draw[#2] (\x,\y)--(\y,\y) ;
+				\else
+					\draw[#2] (\x,\x)--(\x,\y)--(\y,\y) ;
+				\fi
+			\else
+				\draw[#2] (\x,\x)--(\x,\y)--(\y,\y) ;
+			\fi
+			\ifboolKV[webrecurr]{afftermes}
+				{\def\indice{\fpeval{\i+\PLRecurno-1}}
+				 \draw[#2,#3] (\x,\y)--(\x,0) node[\PLRecurposlab=\PLRecuroffset,font=\PLRecurlabelsize]{$\PLRecurnom_\indice$};}
+				{}
+			\def\i{\fpeval{\y}}%
+		}
+	}
+
 \endinput
\ No newline at end of file



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