diff options
Diffstat (limited to 'macros/latex/contrib/proflycee/tex/ProfLycee.sty')
-rw-r--r-- | macros/latex/contrib/proflycee/tex/ProfLycee.sty | 352 |
1 files changed, 351 insertions, 1 deletions
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index 1f3e210420..8da7dca149 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,9 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2022/08/10 - v1.2 - Aide pour l'utilisation de LaTeX en lycée] +\ProvidesPackage{ProfLycee}[2022/08/15 - v1.2.2 - Aide pour l'utilisation de LaTeX en lycée] +% 1.2.2 Ajouts de commandes pour des stats à 2 variables +% 1.2.1 Amélioration de la gestion du csv pour les pixelart % 1.2 Correction d'un méchant bug avec pixelart, erf... % 1.1.9 Commande pour du pixelart en tikz (avec option csvii pour compatibilité) % 1.1.8 Ajout d'un style mainlevee pour tikz @@ -1476,6 +1478,7 @@ {% \csvloop{file=#2,no head,command={% \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] \setsepchar{,} \readlist\LCPA\PATcouleurs \StrPosition{\PATlettres}{\l}[\pixcnt]% @@ -1494,6 +1497,7 @@ {%affichage du pixelart versions chiffres si besoin \csvloop{file=#2,no head,command={% \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] \setsepchar{,} \readlist\LCNA\PATchiffres \StrPosition{\PATlettres}{\l}[\pixpos]% @@ -1510,6 +1514,7 @@ {%affichage du pixelart versions lettres ou chiffres simples (<=9) \csvloop{file=#2,no head,command={% \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] \IfSubStr{\PATlettres}{\l}% {% \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\l};} @@ -1521,4 +1526,349 @@ } } +%=========STATS2VAR========= +%variables directement dans tikzpicture +\tikzset{% + Ox/.store in=\axexOx,Ox/.default=0,Ox=0,%essai + Oy/.store in=\axeyOy,Oy/.default=0,Oy=0,%essai + xmin/.store in=\xmin,xmin/.default=-5,xmin=-5, + xmax/.store in=\xmax,xmax/.default=5,xmax=5, + ymin/.store in=\ymin,ymin/.default=-5,ymin=-5, + ymax/.store in=\ymax,ymax/.default=5,ymax=5, + xgrille/.store in=\xgrille,xgrille/.default=1,xgrille=1, + xgrilles/.store in=\xgrilles,xgrilles/.default=0.5,xgrilles=0.5, + ygrille/.store in=\ygrille,ygrille/.default=1,ygrille=1, + ygrilles/.store in=\ygrilles,ygrilles/.default=0.5,ygrilles=0.5, + xunit/.store in=\xunit,xunit/.default=1,xunit=1, + yunit/.store in=\yunit,yunit/.default=1,yunit=1 +} + +%style point croix +\tikzset{pics/PLdotcross/.style args={#1/#2}{ + code={ + \draw[line width={0.5*#1},rotate=#2] (-#1,0) -- (#1,0); + \draw[line width={0.5*#1},rotate=#2] (0,-#1) -- (0, #1); + } + }, + pics/PLdotcross/.default={4pt/0} +} + +%axeOx +\defKV[PLaxextkz]{% + epaisseur=\def\axexwidth{#1},% + police=\def\axexfont{#1},% + hautgrad=\def\axextickwidth{#1},% + posgrad=\def\axexposlabel{#1} +} + +\setKVdefault[PLaxextkz]{% + epaisseur=1.25pt,% + police=\normalsize\normalfont,% + posgrad=below,% + hautgrad=4pt,% + affgrad=true,% + afforigine=true,% + annee=false +} + +\DeclareDocumentCommand\PLaxextikz{ O{} m }{% + \useKVdefault[PLaxextkz] + \setKV[PLaxextkz]{#1}% on paramètres les nouvelles clés et on les simplifie + %formatage des années + \IfSubStr{\axextickwidth}{/} + {\StrCut{\axextickwidth}{/}{\axextickwidthA}{\axextickwidthB}} + {\def\axextickwidthA{\axextickwidth}\def\axextickwidthB{\axextickwidth}} + \foreach \x in {#2}{% + \draw[line width=\axexwidth] ({\x-\axexOx},{\axextickwidthA}) -- ({\x-\axexOx},{-\axextickwidthB})% + \ifboolKV[PLaxextkz]{affgrad}%on affiche les graduations + {% + \ifboolKV[PLaxextkz]{afforigine}%si on demande d'afficher l'origine + {node[\axexposlabel,font=\axexfont] + {\ifboolKV[PLaxextkz]{annee}% + {\num[group-digits=none]{\x}}% + {\num[text-family-to-math=true,text-series-to-math=true]{\x}}% + } + } + {\xintifboolexpr{\x==\axexOx}{}{node[\axexposlabel,font=\axexfont] {\ifboolKV[PLaxextkz]{annee}% + {\num[group-digits=none]{\x}}% + {\num[text-family-to-math=true,text-series-to-math=true]{\x}}% + } + } + } + } + {} + ;} +} + +%axeOy +\defKV[PLaxeytkz]{% + epaisseur=\def\axeywidth{#1},% + police=\def\axeyfont{#1},% + hautgrad=\def\axeytickwidth{#1},% + posgrad=\def\axeyposlabel{#1} +} + +\setKVdefault[PLaxeytkz]{% + epaisseur=1.25pt,% + police=\normalsize\normalfont,% + posgrad=left,% + hautgrad=4pt,% + affgrad=true,% + afforigine=true,% + annee=false +} + +\DeclareDocumentCommand\PLaxeytikz{ O{} m }{% + \useKVdefault[PLaxeytkz] + \setKV[PLaxeytkz]{#1}% on paramètres les nouvelles clés et on les simplifie + \IfSubStr{\axeytickwidth}{/} + {\StrCut{\axeytickwidth}{/}{\axeytickwidthA}{\axeytickwidthB}} + {\def\axeytickwidthA{\axeytickwidth}\def\axeytickwidthB{\axeytickwidth}} + \foreach \y in {#2}{% + \draw[line width=\axeywidth] ({\axeytickwidthA},{\y-\axeyOy}) -- ({-\axeytickwidthB},{\y-\axeyOy})% + \ifboolKV[PLaxeytkz]{affgrad}%on affiche les graduations + {% + \ifboolKV[PLaxeytkz]{afforigine}%si on demande d'afficher l'origine + {node[\axeyposlabel,font=\axeyfont] + {\ifboolKV[PLaxeytkz]{annee}% + {\num[group-digits=none]{\y}}% + {\num[text-family-to-math=true,text-series-to-math=true]{\y}}% + } + } + {\xintifboolexpr{\y==\axeyOy}{}{node[\axeyposlabel,font=\axeyfont] {\ifboolKV[PLaxeytkz]{annee}% + {\num[group-digits=none]{\y}}% + {\num[text-family-to-math=true,text-series-to-math=true]{\y}}% + } + } + } + } + {} + ;} +} + +%axes +\defKV[PLaxestkz]{% + epaisseur=\def\axeswidth{#1},% + police=\def\axesfont{#1},% + labelx=\def\axeslabelx{#1},% + labely=\def\axeslabely{#1},% + poslabelx=\def\axesposlabelx{#1},% + poslabely=\def\axesposlabely{#1},% + echellefleche=\def\axesechellefleche{#1},% + typefleche=\def\axestypefleche{#1},% + afflabel=\def\axesafflabel{#1} +} + +\setKVdefault[PLaxestkz]{% + epaisseur=1.25pt,% + police=\normalsize\normalfont,% + labelx=$x$,% + labely=$y$,% + afflabel=,% + poslabelx=right,% + poslabely=above,% + echellefleche=1,% + typefleche=> +} + +\DeclareDocumentCommand\PLaxestikz{ O{} }{% + \useKVdefault[PLaxestkz] + \setKV[PLaxestkz]{#1}% + %on affiche les deux axes + \draw[line width=\axeswidth,-{\axestypefleche[scale=\axesechellefleche]}] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ; + \draw[line width=\axeswidth,-{\axestypefleche[scale=\axesechellefleche]}] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ; + %les labels éventuels + \IfSubStr{\axesafflabel}{x}% + {\draw ({\xmax-\axexOx},0) node[\axesposlabelx,font=\axesfont] {\axeslabelx} ;} + {} + \IfSubStr{\axesafflabel}{y}% + {\draw (0,{\ymax-\axeyOy}) node[\axesposlabely,font=\axesfont] {\axeslabely} ;} + {} +} + +%fenêtre clippée +\newcommand\PLfenetre{% + \clip ({\xmin-\axexOx},{\ymin-\axeyOy}) rectangle ({\xmax-\axexOx},{\ymax-\axeyOy}) ; +} + +%origine +\defKV[PLaxesorig]{% + police=\def\axesorfont{#1},% + pos=\def\axesorpos{#1},% + decal=\def\axesordecal{#1},% + valeur=\def\axesorval{#1} +} + +\setKVdefault[PLaxesorig]{% + police=\normalsize\normalfont,% + pos={below left},% + decal=2pt,% + valeur=0 +} + +\DeclareDocumentCommand\PLorigine{ O{} }{% + \useKVdefault[PLaxesorig] + \setKV[PLaxesorig]{#1}% + \draw (0,0) node[\axesorpos=\axesordecal,font=\axesorfont] {\axesorval} ; +} + +%grilles +\setKVdefault[PLgrillestkz]{% + affp=true,% + affs=true +} + +\DeclareDocumentCommand\PLgrilletikz{ O{} O{thin,lightgray} O{ultra thin,lightgray} }{% + \useKVdefault[PLgrillestkz] + \setKV[PLgrillestkz]{#1}% + \ifboolKV[PLgrillestkz]{affs} + {\draw[xstep=\xgrilles,ystep=\ygrilles,#3] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});} + {} + \ifboolKV[PLgrillestkz]{affp} + {\draw[xstep=\xgrille,ystep=\ygrille,#2] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});} + {} +} + +%point(s) avec changement origines +\defKV[PLpts]{% + taille=\def\ptstaille{#1},% + couleur=\def\ptscouleur{#1},% + style=\def\ptsstyle{#1} +} + +\setKVdefault[PLpts]{% + taille=2pt,% + couleur=blue,% + style=o +} + +\newcommand\PLnuagepoints[2][]{% + \useKVdefault[PLpts] + \setKV[PLpts]{#1}% + \setsepchar{§}% + \readlist\listepointsaffiches{#2} + \foreachitem\point\in\listepointsaffiches{% + \StrBetween{\point}{(}{,}[\XPT] + \StrBetween{\point}{,}{)}[\YPT] + \IfStrEq{\ptsstyle}{o}% + {\filldraw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) circle[radius=\ptstaille] ;} + {} + \IfStrEq{\ptsstyle}{x}% + {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;} + {} + \IfStrEq{\ptsstyle}{+}% + {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;} + {} + } +} + +\newcommand\PLnuagepts[3][]{% + \useKVdefault[PLpts] + \setKV[PLpts]{#1}% on paramètres les nouvelles clés et on les simplifie + \def\xliste{#2} + \def\yliste{#3} + \readlist*\LX{\xliste} + \readlist*\LY{\yliste} + %taille des listes + \def\LNB{\inteval{\LXlen}} + \foreach \i in {1,2,...,\LNB} { + \IfStrEq{\ptsstyle}{o}% + { + \IfSubStr{\ptscouleur}{/} + {\StrCut{\ptscouleur}{/}{\ptscouleurA}{\ptscouleurB}\draw[thick,\ptscouleurA,fill=\ptscouleurB] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;} + {\draw[\ptscouleur,fill=\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;} + } + {} + \IfStrEq{\ptsstyle}{x}% + {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;} + {} + \IfStrEq{\ptsstyle}{+}% + {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;} + {} + } +} + +\defKV[PLptmoy]{% + police=\def\ptmoyfont{#1},% + taille=\def\ptmoytaille{#1},% + couleur=\def\ptmoycouleur{#1},% + style=\def\ptmoystyle{#1},% + xg=\def\ptmoyx{#1},% + yg=\def\ptmoyy{#1},% + nom=\def\ptmoynom{#1},% + pos=\def\ptmoypos{#1},% + decal=\def\ptmoydecal{#1},% +} + +\setKVdefault[PLptmoy]{% + police=\normalsize\normalfont,% + taille=4pt,% + couleur=red,% + style=x,% + xg=\LXmoy,% + yg=\LYmoy,% + nom=G,% + pos=above,% + decal=0pt,% + affnom=true +} + +\newcommand\PLnuageptmoy[1][]{% + \useKVdefault[PLptmoy] + \setKV[PLptmoy]{#1}% on paramètres les nouvelles clés et on les simplifie + \IfStrEq{\ptmoystyle}{o}% + { + \IfSubStr{\ptmoycouleur}{/} + {\StrCut{\ptmoycouleur}{/}{\ptmoycouleurA}{\ptmoycouleurB}\draw[thick,\ptmoycouleurA,fill=\ptmoycouleurB] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;} + {\draw[\ptmoycouleur,fill=\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;} + } + {} + \IfStrEq{\ptmoystyle}{x}% + {\draw[\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/45} ;} + {} + \IfStrEq{\ptmoystyle}{+}% + {\draw[fill=\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/0} ;} + {} + \ifboolKV[PLptmoy]{affnom} + {\draw ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) node[\ptmoypos={\ptmoytaille+\ptmoydecal},font=\ptmoyfont] {\ptmoynom} ;} + {} + +} + +%courbe ? +\newcommand\PLcourbe[3][]{% + \setsepchar{:}% + \readlist\PLdomaine{#3} + \itemtomacro\PLdomaine[1]\PLDm + \itemtomacro\PLdomaine[2]\PLDM + \saveexpandmode\noexpandarg + \StrSubstitute{#2}{\x}{(\x+\axexOx)}[\fctdecx] + \restoreexpandmode % restore the previous mode + \draw[#1] plot[domain={\PLDm-\axexOx}:{\PLDM-\axexOx}] (\x,{\fctdecx-\axeyOy}) ; +} + +\setKVdefault[PLsimplewindow]{% + axes=true,% + grille=true,% +} + +\DeclareDocumentCommand\PLfenetresimple{ O{} D<>{} m D<>{} m }{% + \useKVdefault[PLsimplewindow] + \setKV[PLsimplewindow]{#1}% on paramètres les nouvelles clés et on les simplifie + \ifboolKV[PLsimplewindow]{grille} + {\PLgrilletikz} + {} + \ifboolKV[PLsimplewindow]{axes} + {\PLaxestikz\PLaxextikz[#2]{#3}\PLaxeytikz[#4]{#5}} + {} +} + +\NewDocumentEnvironment{PLstats}{ O{} } +{% + \begin{tikzpicture}[#1] + }% + {% + \end{tikzpicture}% +} + \endinput
\ No newline at end of file |