diff options
Diffstat (limited to 'macros/latex/contrib/proflycee')
24 files changed, 460 insertions, 18 deletions
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex 000537a0d4..8529923448 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf Binary files differindex 5e6698109f..e9dc581cd8 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index f622238309..c63a66b218 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,13 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2024/05/09 3.04b Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2024/09/21 3.05a Aide pour l'utilisation de LaTeX en lycee] +% 3.05a Conversions entre bases + vectorial clipart (de openclipart) +% 3.04g Ajout de clés pour les arbres de probas +% 3.04f Ajout de clés pour la coloration des nombres et Piton +% 3.04e Commandes prix/angle/pourcent en lien avec siunitx +% 3.04d PitonInputFile et styles +% 3.04c Max et min pour des fonctions % 3.04b Travail sur la loi binomiale + Ajout de clés pour les environnements graphiques % 3.04a Améliorations de la partie graphiques tikz (intégrales, axes) + Factorielle % 3.03d Page de garde type BAC @@ -146,7 +152,6 @@ \usetikzlibrary{shapes.geometric} \usetikzlibrary{decorations.pathmorphing} %tcolorbox -%\RequirePackage[most]{tcolorbox} \RequirePackage{tcolorbox}% \tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks} %divers @@ -232,5 +237,7 @@ \input{proflycee-tools-competences.tex} %%------Examens \input{proflycee-tools-exams.tex} +%%------Cliparts +\input{proflycee-tools-cliparts.tex} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf Binary files differnew file mode 100644 index 0000000000..3ca7af1aac --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-cup.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf Binary files differnew file mode 100644 index 0000000000..0e4712cece --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-bronze-medal.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf Binary files differnew file mode 100644 index 0000000000..238d76df4e --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-checked.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf Binary files differnew file mode 100644 index 0000000000..94f04537b2 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-crossed.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf Binary files differnew file mode 100644 index 0000000000..e1b1a5fb46 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-cup.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf Binary files differnew file mode 100644 index 0000000000..3246c38693 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-gold-medal.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf Binary files differnew file mode 100644 index 0000000000..bc03661421 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-center.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf Binary files differnew file mode 100644 index 0000000000..40f843b864 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-left.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf Binary files differnew file mode 100644 index 0000000000..323710e097 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse-right.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf Binary files differnew file mode 100644 index 0000000000..b8e69cd524 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-mouse.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf Binary files differnew file mode 100644 index 0000000000..0fed35ca1e --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-notok.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf Binary files differnew file mode 100644 index 0000000000..43cac49c38 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-ok.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf Binary files differnew file mode 100644 index 0000000000..9ba7602d26 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-cup.pdf diff --git a/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf Binary files differnew file mode 100644 index 0000000000..ced83f9d17 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/pflcliparts/pfl-silver-medal.pdf diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex index ade88434c2..1581688cb1 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex @@ -996,4 +996,15 @@ }% } +%----max/min +\NewDocumentCommand\DetermineMax{ O{0.01} m m m O{\tmpmax} O{\tmpmaxvalx} }{% + \xdef#5{\xintfloateval{max(seq(#2,x=#3..[#1]..#4,#4))}}% + \xdef#6{\xintfloateval{first(seq((#2 == #5)?{x}{},x=#3..[#1]..#4,#4))}}% +} + +\NewDocumentCommand\DetermineMin{ O{0.01} m m m O{\tmpmin} O{\tmpminvalx} }{% + \xdef#5{\xintfloateval{min(seq(#2,x=#3..[#1]..#4,#4))}}% + \xdef#6{\xintfloateval{first(seq((#2 == #5)?{x}{},x=#3..[#1]..#4,#4))}}% +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex index a021fea937..a2008c15df 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex @@ -1902,4 +1902,65 @@ }% } +%====CONVERSIONS ENTRE BASES +\ExplSyntaxOn +%commande interne (stockage ou non) +\NewDocumentCommand\pflbasetobase{ m m m }{% + %1=init + %2=fin + %3=nb + \ifnum#2=10% + \int_from_base:nn {#3}{#1}% + \else% + \int_to_Base:nn {\int_from_base:nn {#3}{#1}}{#2}% + \fi% +} + +\NewDocumentCommand\tmpresconvbases{ m m m O{\tmpconvres} }{% + %1=init + %2=fin + %3=nb + \ifnum#2=10% + \xdef#4{\int_from_base:nn {#3}{#1}}% + \else% + \xdef#4{\int_to_Base:nn {\int_from_base:nn {#3}{#1}}{#2}}% + \fi% +} +\ExplSyntaxOff + +%commande interne split adaptée de https://tex.stackexchange.com/questions/171007/split-a-character-string-n-by-n // unbonpetit // CC BY-SA 3.0 +\NewDocumentCommand\tmpStrSplit{ O{\,} m m O{\tmpsplitres} }{% + %1=espace / %2=nb caract / %3=chaîne / %4=macro de stockage + \xdef\splitstring{#3}\let\splitresult\empty% + \loop% + \StrLen\splitstring[\tempa]% + \StrSplit\splitstring{\number\numexpr\tempa-#2}\splitstring\tempb% + \xdef\splitresult{\unless\ifx\splitstring\empty#1\fi\tempb\splitresult}% + \unless\ifx\splitstring\empty% + \repeat% + \xdef#4{\splitresult}% +} + +\NewDocumentCommand\ConversionEntreBases{ s O{\,} m m }{% + %calculs internes + \StrCut{#3}{->}{\tmpbaseinit}{\tmpbasefin}% + \tmpresconvbases{\tmpbaseinit}{\tmpbasefin}{#4}%\tmpconvres + %affichage + \ensuremath{% + \ifnum\tmpbaseinit=2% + \tmpStrSplit{4}{#4}% + {\tmpsplitres}\IfBooleanT{#1}{_{\tmpbaseinit}}% + \else% + {#4}\IfBooleanT{#1}{_{\tmpbaseinit}}% + \fi% + =% + \ifnum\tmpbasefin=2% + \tmpStrSplit[#2]{4}{\tmpconvres}% + {\tmpsplitres}\IfBooleanT{#1}{_{\tmpbasefin}}% + \else% + {\tmpconvres}\IfBooleanT{#1}{_{\tmpbasefin}}% + \fi% + }% +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex new file mode 100644 index 0000000000..cd53d46198 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-cliparts.tex @@ -0,0 +1,108 @@ +% proflycee-tools-cliparts.tex +% Copyright 2024 Cédric Pierquet +% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt +% logos from CC0 opencliparts (users Firkin & Juhele & qubodup & TzeenieWheenie & jetxee) + +%====DIMENSIONS +\newlength{\tmpcharacterheightinline} +\newlength{\tmpcharacterdepthinline} + +%====MACRO PRINCIPALE +\NewDocumentCommand\InsererClipart{ s O{} m }{% + \IfBooleanTF{#1}% + {% + \IfFileExists{pfl-#3.pdf}{\includegraphics[#2]{pfl-#3.pdf}}{}% + }% + {% + \settototalheight{\tmpcharacterheightinline}{\hbox{AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn}}% + \settodepth{\tmpcharacterdepthinline}{\hbox{AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn}}% + \IfFileExists{pfl-#3.pdf}{\raisebox{-\tmpcharacterdepthinline}{\includegraphics[height=\tmpcharacterheightinline]{pfl-#3.pdf}}}{}% + }% +} + +%====ALIASES +\NewDocumentCommand\pflimgcoupeb{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{bronze-cup}}% + {\InsererClipart{bronze-cup}}% +} + +\NewDocumentCommand\pflimgmedb{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{bronze-medal}}% + {\InsererClipart{bronze-medal}}% +} + +\NewDocumentCommand\pflimgverif{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{checked}}% + {\InsererClipart{checked}}% +} + +\NewDocumentCommand\pflimgnonverif{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{crossed}}% + {\InsererClipart{crossed}}% +} + +\NewDocumentCommand\pflimgcoupeo{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{gold-cup}}% + {\InsererClipart{gold-cup}}% +} + +\NewDocumentCommand\pflimgmedo{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{gold-medal}}% + {\InsererClipart{gold-medal}}% +} + +\NewDocumentCommand\pflimgsouris{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{mouse}}% + {\InsererClipart{mouse}}% +} + +\NewDocumentCommand\pflimgsourisg{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{mouse-left}}% + {\InsererClipart{mouse-left}}% +} + +\NewDocumentCommand\pflimgsourisc{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{mouse-center}}% + {\InsererClipart{mouse-center}}% +} + +\NewDocumentCommand\pflimgsourisd{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{mouse-right}}% + {\InsererClipart{mouse-right}}% +} + +\NewDocumentCommand\pflimgko{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{notok}}% + {\InsererClipart{notok}}% +} + +\NewDocumentCommand\pflimgok{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{ok}}% + {\InsererClipart{ok}}% +} + +\NewDocumentCommand\pflimgcoupea{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{silver-cup}}% + {\InsererClipart{silver-cup}}% +} + +\NewDocumentCommand\pflimgmeda{ s O{} }{% + \IfBooleanTF{#1}% + {\InsererClipart*[#2]{silver-medal}}% + {\InsererClipart{silver-medal}}% +} + +\endinput
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex index 0a1555c4e9..f524c41cf3 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex @@ -10,6 +10,39 @@ \RequirePackage{mleftright} %pour une meilleure gestion des espacements avec \left \right :-) %\RequirePackage{mathrsfs}%pour \mathscr (à voir...) +%===UNITÉS + +\NewDocumentCommand\pflprix{ o m }{% + \IfValueTF{#1}% + {% + \num[round-mode=places,round-precision=#1]{#2}\,\text{€}% + }% + {% + \num{#2}\,\text{€}% + }% +} + +\NewDocumentCommand\pflangle{ o m }{% + \IfValueTF{#1}% + {% + \num[round-mode=places,round-precision=#1]{#2}\text{\textdegree}% + }% + {% + \num{#2}\text{\textdegree}% + }% +} + +\NewDocumentCommand\pflpcent{ o m }{% + \IfValueTF{#1}% + {% + \num[round-mode=places,round-precision=#1]{#2}\,\%% + }% + {% + \num{#2}\,\%% + }% +} + + %===ENSEMBLES CLASSIQUES \ifthenelse{\isundefined{\N}}% {% diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex index 418c5aa8cc..52ef738955 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex @@ -2,6 +2,8 @@ % Copyright 2023-2024 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt +%3.04f Ajout de clés pour la coloration des nombres et Piton +%3.04d PitonInputFile et styles, pour compatibilité pfm %3.03c Thonny via piton + modification clé gobble ? %3.01f PseudoCode via piton (?) %3.01e Correction du comportement de la console repl piton/pyluatex @@ -41,7 +43,7 @@ BarreTitre=true,% Titre={{\scriptsize\faCode}~~Code Python},% EspacementV=0.5\baselineskip,% - CouleurNombres=orange + CouleurNombres={orange!75!black} } %==Style Moderne @@ -159,7 +161,7 @@ \useKVdefault[envpiton]% \setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie %------les styles piton - \SetPitonStyle{ Number = \color{\CODPITcolnb} } + \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} } \ifboolKV[envpiton]{Lignes}%si lignes=true {\PitonOptions{left-margin=0.75em,line-numbers={skip-empty-lines=false,label-empty-lines=true,#3}}}%left-margin=auto, {}% @@ -220,6 +222,57 @@ \endtcolorbox% } +%inputfile +\NewDocumentCommand\CodePitonFichier{ O{} m D<>{} }{% + {\tcbset{reset} + \useKVdefault[envpiton]% + \setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie + %------les styles piton + \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} } + \ifboolKV[envpiton]{Lignes}%si lignes=true + {\PitonOptions{left-margin=0.75em,line-numbers,line-numbers={skip-empty-lines=false,label-empty-lines=true,#3}}}%left-margin=auto, + {}% + \PitonOptions{break-lines,indent-broken-lines,continuation-symbol={\;}}%,numbers-sep=0.65em}%language=Python} + %------les styles tcbox + \IfEq{\CODPITstyle}{Moderne}%style Moderne (défaut) + {% + \tcbset{cadre/.style={}} + \tcbset{titre/.style={}} + \tcbset{stylebase/.style={stylepiton,colframe=CouleurVertForet,colback=CouleurVertForet!5,width=\CODPITlargeur,fontupper=\CODPITfonte,fontlower=\CODPITfonte,\CODPITalign,leftupper=0.75em}} + \ifboolKV[envpiton]{Filigrane}%si filigrane + {\tcbset{filigrane/.style={watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50}}}% + {\tcbset{filigrane/.style={}}}% + } + {}% + \IfEq{\CODPITstyle}{Classique}%style Classique + {% + \ifboolKV[envpiton]{Lignes}%si lignes=true + {\tcbset{stylebase/.style={thonnystylelineos,leftupper=0.75em,width=\CODPITlargeur,colframe=darkgray!50!black,fontupper=\CODPITfonte,fontlower=\CODPITfonte,\CODPITalign}}}% + {\tcbset{stylebase/.style={thonnystyle,leftupper=0.4em,width=\CODPITlargeur,colframe=darkgray!50!black,fontupper=\CODPITfonte,fontlower=\CODPITfonte,\CODPITalign}}}% + \ifboolKV[envpiton]{Filigrane}%si filigrane + {\tcbset{filigrane/.style={watermark text={\faPython},watermark opacity=0.25,watermark zoom=0.50}}}% + {\tcbset{filigrane/.style={}}}% + \ifboolKV[envpiton]{BarreTitre}% + {% + \ifboolKV[envpiton]{Cadre} + {\tcbset{cadre/.style={}}}% + {\tcbset{cadre/.style={boxrule=0pt,frame hidden}}}% + \tcbset{titre/.style={lefttitle=0.4em,title={\CODPITtitre},fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=darkgray!50!black}} + }% + {% + \tcbset{titre/.style={notitle}} + \ifboolKV[envpiton]{Cadre} + {\tcbset{cadre/.style={}}} + {\tcbset{cadre/.style={boxrule=0pt,frame hidden}}} + } + } + {}% + %on crée la boîte + \tcolorbox[stylebase,filigrane,cadre,titre] + \PitonInputFile{#2} + \endtcolorbox}% +} + %piton >= 2.4 \NewPitonEnvironment{PseudoCodePiton}{ O{} m D<>{} }% {% @@ -317,6 +370,86 @@ \endtcolorbox% } +%--inputfile +\NewDocumentCommand\PseudoCodePitonFichier{ O{} m D<>{} }{% + {\tcbset{reset} + \useKVdefault[envpcpiton]% + \setKV[envpcpiton]{#1}% on paramètres les nouvelles clés et on les simplifie + %------les styles piton + \ifboolKV[envpcpiton]{Lignes}%si lignes=true + {\PitonOptions{left-margin=0.75em,all-line-numbers}}%left-margin=auto, + {}% + \PitonOptions{break-lines,indent-broken-lines,language=minimal,continuation-symbol={\;}}%,numbers-sep=0.65em}% + \SetPitonStyle{ Number = } + \ifboolKV[envpcpiton]{Couleurs}% + {% + \SetPitonIdentifier[minimal]{Algorithme,Fonction,Début,Paramètre,Paramètres,Faire,Fin,Si,Pour,Tant,Que,que,alors,Alors,Sinon,SinonSi,FinSi,FinPour,FinTantQue,TantQue,Variable,Variables,Procédure}{\color{MotsClesPseudoCodeA}} + \SetPitonIdentifier[minimal]{Afficher,Renvoyer,Saisir}{\color{MotsClesPseudoCodeB}} + % \PitonOptions{ + % identifiers = + % { + % names = {Algorithme,Fonction,Début,Paramètre,Paramètres,allant,Faire,Fin,Si,Pour,Tant,Que,que,alors,Alors,Sinon,SinonSi,FinSi,FinPour,FinTantQue,TantQue,Variable,Variables,Procédure}, + % style = \color{MotsClesPseudoCodeA} + % } , + % identifiers = + % { + % names = {Afficher,Retourner,Saisir}, + % style = \color{MotsClesPseudoCodeB} + % } + % }% + \SetPitonStyle + { + String = \color{MotsClesPseudoCodeChaine}, + Comment = \itshape\color{gray}, + } + }% + {% + \SetPitonStyle + { + String = , + Comment = \itshape + } + }% + %------les styles tcbox + \IfEq{\CODPITPCstyle}{Moderne}%style Moderne (défaut) + {% + \tcbset{cadre/.style={}} + \tcbset{titre/.style={}} + \tcbset{stylebase/.style={stylepcpiton,colframe=CouleurVertForet,colback=CouleurVertForet!5,width=\CODPITPClargeur,fontupper=\CODPITPCfonte,fontlower=\CODPITPCfonte,\CODPITPCalign,leftupper=0.75em}} + \ifboolKV[envpcpiton]{Filigrane}%si filigrane + {\tcbset{filigrane/.style={watermark text={\faCode},watermark opacity=0.175,watermark zoom=0.50}}}% + {\tcbset{filigrane/.style={}}}% + } + {}% + \IfEq{\CODPITPCstyle}{Classique}%style Classique + {% + \ifboolKV[envpcpiton]{Lignes}%si lignes=true + {\tcbset{stylebase/.style={thonnypcstylelineos,leftupper=0.75em,width=\CODPITPClargeur,colframe=darkgray!50!black,fontupper=\CODPITPCfonte,fontlower=\CODPITPCfonte,\CODPITPCalign}}}% + {\tcbset{stylebase/.style={thonnypcstyle,leftupper=0.4em,width=\CODPITPClargeur,colframe=darkgray!50!black,fontupper=\CODPITPCfonte,fontlower=\CODPITPCfonte,\CODPITPCalign}}}% + \ifboolKV[envpcpiton]{Filigrane}%si filigrane + {\tcbset{filigrane/.style={watermark text={\faCode},watermark opacity=0.25,watermark zoom=0.50}}}% + {\tcbset{filigrane/.style={}}}% + \ifboolKV[envpcpiton]{BarreTitre}% + {% + \ifboolKV[envpcpiton]{Cadre} + {\tcbset{cadre/.style={}}}% + {\tcbset{cadre/.style={boxrule=0pt,frame hidden}}}% + \tcbset{titre/.style={lefttitle=0.4em,title={\CODPITPCtitre},fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=darkgray!50!black}} + }% + {% + \tcbset{titre/.style={notitle}} + \ifboolKV[envpcpiton]{Cadre} + {\tcbset{cadre/.style={}}} + {\tcbset{cadre/.style={boxrule=0pt,frame hidden}}} + } + } + {}% + %on crée la boîte + \tcolorbox[stylebase,filigrane,cadre,titre] + \PitonInputFile{#2}% + \endtcolorbox}% +} + %======CONSOLE PYLUATEX (package à charger manuellement !!) \tcbset{consolepylua/.style={%base de la boîte enhanced,colback=white,colframe=CouleurVertForet,sharp corners,boxrule=1pt,% @@ -345,12 +478,14 @@ \defKV[consolepyluatex]{% Largeur=\def\ConsPyluaLarg{#1}, - Alignement=\def\ConsPyluaAlign{#1} + Alignement=\def\ConsPyluaAlign{#1},% + CouleurNombres=\def\CODPITcolnb{#1} } \setKVdefault[consolepyluatex]{% Logo=true,% Largeur=\linewidth,% - Alignement=flush left + Alignement=flush left,% + CouleurNombres={orange!75!black} } \NewDocumentEnvironment{ConsolePiton}{ O{} D<>{} m }% @@ -360,6 +495,7 @@ { \restoreKV[consolepyluatex]% revenir au valeurs par défaut \setKV[consolepyluatex]{#2}% lit les arguments optionnels + \SetPitonStyle[Python]{ Number = \color{\CODPITcolnb} } \PitonOptions{width={\ConsPyluaLarg-5mm},break-lines,end-of-broken-line={\,},continuation-symbol={\;},#1} %\PitonOptions{width={\ConsPyluaLarg-5mm},#1} \PyLTVerbatimEnv @@ -392,14 +528,16 @@ NomFichier=\def\thonnypitonfilename{#1},% NomConsole=\def\thonnypitonshellname{#1},% IntroConsole=\def\thonnypitonintroconsole{#1},% - Gobble=\def\thonnypitongobble{#1} + Gobble=\def\thonnypitongobble{#1},% + CouleurNombres=\def\CODPITcolnb{#1} } \setKVdefault[pitonthonny]{% NomFichier=script.py,% NomConsole=console,% IntroConsole={Python 3.11.6 /usr/bin/python},% - Gobble={} + Gobble={},% + CouleurNombres={orange!75!black} } \NewPitonEnvironment{PitonThonnyEditor}{ D<>{} O{} m }% @@ -407,6 +545,7 @@ \restoreKV[pitonthonny]% \setKV[pitonthonny]{#1}% \settowidth{\LargeurNumbersThonny}{\footnotesize\texttt{00}}% + \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}} \PitonOptions{left-margin=\LargeurNumbersThonny+1mm,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={}}% %--gestion du gobble \IfStrEqCase{\thonnypitongobble}{% @@ -428,6 +567,19 @@ \endtcolorbox% }% +\NewDocumentCommand\PitonThonnyEditorFichier{ D<>{} O{\linewidth} m }{% + {\restoreKV[pitonthonny]% + \setKV[pitonthonny]{#1}% + \settowidth{\LargeurNumbersThonny}{\footnotesize\texttt{00}}% + \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}} + \PitonOptions{left-margin=\LargeurNumbersThonny+1mm,line-numbers,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={}}% + \tcbset{tcbthonnypiton/.style={title=\vphantom{pf}\thonnypitonfilename\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}% + \tcolorbox[sharp corners=all,enhanced,size=small,width=#2,colframe=gray,colback=lightgray!5,tcbthonnypiton,fonttitle=\scriptsize\sffamily,coltitle=black, + attach boxed title to top left={yshift*=-0.4pt},fontupper=\footnotesize,bottom=-0.25mm,boxed title style={size=tight,colback=lightgray!15,sharp corners=all,boxrule=0.4pt,boxsep=2pt},boxrule=0.4pt,overlay={\begin{tcbclipinterior}\fill[draw=none,gray!25] ([shift={(0.4pt,0.4pt)}]frame.south west) rectangle ([shift={(\LargeurNumbersThonny+1mm+0.8pt,-0.4pt)}]frame.north west) ;\end{tcbclipinterior}}]% + \PitonInputFile{#3} + \endtcolorbox}% +}% + \NewDocumentEnvironment{PitonThonnyConsole}{ D<>{} O{} m }% { \restoreKV[pitonthonny]% @@ -435,6 +587,7 @@ \PyLTVerbatimEnv% \tcbset{tcbthonnypitonconsole/.style={title=\vphantom{pf}\thonnypitonshellname\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}% \noindent% + \SetPitonStyle[Python]{Number=\color{\CODPITcolnb}} %--gestion du gobble \IfStrEqCase{\thonnypitongobble}{% {auto}{\PitonOptions{auto-gobble}}% diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex index 92cff33772..e80cbb4d4c 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex @@ -245,7 +245,10 @@ StyleTrait=\def\PLAPtypetrait{#1},% EpaisseurTrait=\def\PLAPeptrait{#1},% PositionProbas=\def\PLAPposprob{#1},% - CouleurFond=\def\PLAPcolback{#1} + CouleurFond=\def\PLAPcolback{#1},% + CouleurTraits=\def\PLAPcolarc{#1},% + CouleurProbas=\def\PLAPcolprobas{#1},% + CouleurNoeuds=\def\PLAPcolnoeuds{#1} } \setKVdefault[PLTIKZARBRE]{% @@ -260,7 +263,10 @@ StyleTrait={},% EpaisseurTrait=semithick,% PositionProbas={},% - CouleurFond=white + CouleurFond=white,% + CouleurTraits=black,% + CouleurProbas=black,% + CouleurNoeuds=black } \NewDocumentCommand\IntPlaceProbasArbre{ m m m m m }{% @@ -285,14 +291,14 @@ \readlist*\PLARBREDONNES{#2}% \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite] %styles - \tikzstyle{noeud} = [font=\PLAPfont] - \tikzstyle{probas}= [font=\PLAPfontproba] + \tikzstyle{noeud} = [font=\PLAPfont,text=\PLAPcolnoeuds] + \tikzstyle{probas}= [font=\PLAPfontproba,text=\PLAPcolprobas] \ifboolKV[PLTIKZARBRE]{InclineProbas} {\tikzstyle{PLetiquette}=[pos=0.525,sloped,inner sep=2pt,outer sep=2pt,rectangle]} {\tikzstyle{PLetiquette}=[pos=0.525,inner sep=2pt,outer sep=2pt,rectangle]} \ifboolKV[PLTIKZARBRE]{Fleche} - {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]} - {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]} + {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]} + {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]} %arbre2x2 \IfEq{\PLAPtype}{2x2} {% @@ -576,14 +582,14 @@ \readlist*\PLARBREDONNES{#2} \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite] %styles - \tikzstyle{noeud} = [font=\PLAPfont] - \tikzstyle{probas}= [font=\PLAPfontproba] + \tikzstyle{noeud} = [font=\PLAPfont,text=\PLAPcolnoeuds] + \tikzstyle{probas}= [font=\PLAPfontproba,text=\PLAPcolprobas] \ifboolKV[PLTIKZARBRE]{InclineProbas} {\tikzstyle{PLetiquette}=[pos=0.525,sloped,inner sep=2pt,outer sep=2pt,rectangle]} {\tikzstyle{PLetiquette}=[pos=0.525,inner sep=2pt,outer sep=2pt,rectangle]} \ifboolKV[PLTIKZARBRE]{Fleche} - {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]} - {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]} + {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]} + {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait,\PLAPcolarc]} %arbre2x2 \IfEq{\PLAPtype}{2x2} {% diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex index cd01f4393b..89fe894503 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex @@ -75,6 +75,69 @@ \expandafter\def\csname\RegLinCoeffrd\endcsname{\fpeval{\csname\RegLinCoeffr\endcsname*\csname\RegLinCoeffr\endcsname}} } +\defKV[coeffregquad]{% + NomCoeffa=\def\RegQuadCoeffa{#1},% + NomCoeffb=\def\RegQuadCoeffb{#1},% + NomCoeffc=\def\RegQuadCoeffc{#1},% + NomXmin=\def\RegQuadCoeffXmin{#1},% + NomXmax=\def\RegQuadCoeffXmax{#1} +} + +\setKVdefault[coeffregquad]{% + NomCoeffa=COEFFa,% + NomCoeffb=COEFFb,% + NomCoeffc=COEFFc,% + NomXmin=LXmin,% + NomXmax=LXmax +} + +\newcommand\CalculsRegQuad[3][]{% + \useKVdefault[coeffregquad]% + \setKV[coeffregquad]{#1}% on paramètres les nouvelles clés et on les simplifie + %xmin et xmax + \expandafter\def\csname\RegQuadCoeffXmin\endcsname{\xintfloateval{min(#2)}}% + \expandafter\def\csname\RegQuadCoeffXmax\endcsname{\xintfloateval{max(#2)}}% + %listes des données + \def\xliste{#2}% + \def\yliste{#3}% + \readlist*\LX{\xliste}% + \readlist*\LY{\yliste}% + %taille des listes + \def\LNB{\inteval{\LXlen}} + %somme importantes + \xdef\LXSomme{0}% + \xdef\LXCSomme{0}% + \xdef\LYSomme{0}% + \xdef\LXXSomme{0}% + \xdef\LXYSomme{0}% + \xdef\LXXCSomme{0}% + \xdef\LXCXCSomme{0}% + \xdef\LXCYSomme{0}% + %calculs + \foreach \i in {1,2,...,\LNB}{% + \xdef\LXSomme{\xintfloateval{\LXSomme+\LX[\i]}}% + \xdef\LXCSomme{\xintfloateval{\LXCSomme+(\LX[\i])^2}}% + }% + \foreach \i in {1,2,...,\LNB}{% + \xdef\LYSomme{\xintfloateval{\LYSomme+\LY[\i]}}% + }% + \xdef\LXmoy{\xintfloateval{\LXSomme/\LNB}}% + \xdef\LYmoy{\xintfloateval{\LYSomme/\LNB}}% + \xdef\LXCmoy{\xintfloateval{\LXCSomme/\LNB}}% + %calculs suites + \foreach \i in {1,2,...,\LNB}{% + \xdef\LXXSomme{\xintfloateval{\LXXSomme+(\LX[\i]-\LXmoy)^2}}% + \xdef\LXYSomme{\xintfloateval{\LXYSomme+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}% + \xdef\LXXCSomme{\xintfloateval{\LXXCSomme+(\LX[\i]-\LXmoy)*((\LX[\i])*(\LX[\i])-\LXCmoy)}}% + \xdef\LXCXCSomme{\xintfloateval{\LXCXCSomme+((\LX[\i])^2-\LXCmoy)^2}}% + \xdef\LXCYSomme{\xintfloateval{\LXCYSomme+((\LX[\i])^2-\LXCmoy)*(\LY[\i]-\LYmoy)}}% + }% + %COEFFS OK + \expandafter\def\csname\RegQuadCoeffb\endcsname{\xintfloateval{(\LXYSomme*\LXCXCSomme-\LXCYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2)}}% + \expandafter\def\csname\RegQuadCoeffa\endcsname{\xintfloateval{(\LXCYSomme*\LXXSomme-\LXYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2)}}% + \expandafter\def\csname\RegQuadCoeffc\endcsname{\xintfloateval{\LYmoy-\csname\RegQuadCoeffb\endcsname*\LXmoy-\csname\RegQuadCoeffa\endcsname*\LXCmoy}}% +} + %pour un nuage en TiKz \defKV[nuagereglin]{% Couleur=\def\RegLinNuageCouleur{#1},% |