diff options
Diffstat (limited to 'macros/latex/contrib/proflycee/tex')
4 files changed, 326 insertions, 410 deletions
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index f8a0b9f0aa..c65512f9e3 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}[2023/02/04 2.1.9 Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2023/02/08 2.5.0 Aide pour l'utilisation de LaTeX en lycee] +% 2.5.0 Passage à des libraires via \useproflyclib +% 2.2.0 Ajout de clés [Notation] pour les arrangements et combinaisons % 2.1.9 Correction d'un bug avec les MiniSchémas + version étoilée % 2.1.8 Suppression des pixelarts, désormais dans le package "PixelArtTikz" ! % 2.1.7 Option booléenne Math pour les figures pave/tetraèdre @@ -23,55 +25,10 @@ % 2.0.2 Ajout de l'option auto-margin sur piton % 2.0.1 Chargement de piton uniquement si lua... % 2.0.0 Refonte des commandes, des options, et de la documentation !!! -% ------------------------------------------------------------------ -% 1.3.7 Ajout d'un environnement simplifié pour du code python via piton -% 1.3.6 Ajout d'un "générateur" de trinômes (ou mise en forme basique) -% 1.3.5 Correction de bugs sur les calculs de probas (loi géométrique) -% 1.3.4 Ajout des calculs de probas geométriques et hypergeometriques + petits schémas probas -% 1.3.3 Ajout de commandes pour des arbres de probas classiques, en tikz -% 1.3.2 Correction d'une commande liée à la conversion bintohex (suppression clé trait) -% 1.3.1 Ajout d'une option pour ne pas afficher les bords des cases en pixelart -% 1.3.0 Ajout d'une commande pour mettre en forme une conversion depuis la base 10 -% 1.2.9 Correction d'une incompatibilité avec simplekv (clés vides...) -% 1.2.8 Correction de l'oubli d'une librairie tikz et remise en forme de la documentation -% 1.2.7 Calculs de probas pour des lois classiques -% 1.2.6 Ajout d'un environnement tikz pour des sudomaths personnalisés -% 1.2.5 Ajout d'une commande pour des boites à moustaches, en tikz -% 1.2.4 Correction de quelques bugs mineurs, et mise à jour de la doc -% 1.2.3 Ajout d'un environnement simplifié pour du code python -% 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 -% 1.1.7 Ajout de commandes pour des conversions bin/dec/hex -% 1.1.6 Ajout d'une commande pour déterminer les paramètres d'un régression linéaire par moindres carrés -% 1.1.5 Ajout de commandes pour "visualiser" le signe de ax+b ou de ax2+bx+c (cf tnsana !) -% 1.1.4 Ajout d'une commande cercletrigoPL pour, en \TikZ, créer facilement un cercle trigo avec options -% 1.1.3 Ajout d'une commande ensemble pour créer un ensemble à partir d'une liste -% 1.1.2 Modifs 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 -% 1.0.8 Ajout d'une commande liencapytale pour créer un cartouche "comme sur capytale" -% 1.0.7 Option [build] pour placer les fichiers temporaires dans un répertoire build (désactivée par défaut) -% 1.0.6 Option [nominted] pour éviter de charger minted & nettoyage amssymb -% 1.0.5 Environnement code python avec minted -% 1.0.4 Environnement pour simuler terminal windows & linux -% 1.0.3 Environnement pour présenter du pseudocode -% 1.0.2 Environnement pour présenter du code python (avec pythontex) -% 1.0.1 Modif mineure du chargement de xcolor (compatibilité avec d'autres packages notamment...) -% 1.0 Version initiale %------Option(s) -\newif\if@nonshellescape \@nonshellescapefalse -\DeclareOption{nonshellescape}{\@nonshellescapetrue} \newif\if@build \@buildfalse \DeclareOption{build}{\@buildtrue} -\newif\if@pythontex \@pythontexfalse -\DeclareOption{pythontex}{\@pythontextrue} -%\newif\if@csvii \@csviifalse -%\DeclareOption{csvii}{\@csviitrue} \DeclareOption*{} \ProcessOptions\relax @@ -82,7 +39,6 @@ \RequirePackage{tkz-tab} \RequirePackage{pgf,pgffor} \RequirePackage{ifthen} -%\RequirePackage{xparse} \RequirePackage{xkeyval} \RequirePackage{xstring} \RequirePackage{xintexpr} @@ -92,25 +48,18 @@ \RequirePackage{simplekv} \RequirePackage{listofitems} \RequirePackage{tabularray} -%\RequirePackage{hvlogos} \RequirePackage{hologo} \RequirePackage{fancyvrb} \RequirePackage{siunitx} %test avec v3 \sisetup{% locale=FR,output-decimal-marker={,},% - mode = match, propagate-math-font = true,% - reset-math-version = false, reset-text-family = false,% - reset-text-series = false, reset-text-shape = false,% - text-family-to-math = true, text-series-to-math = true,% - group-minimum-digits=4% + mode=match,propagate-math-font=true,% + reset-math-version=false,reset-text-family=false,% + reset-text-series=false,reset-text-shape=false,% + text-family-to-math=true,text-series-to-math=true,% + group-minimum-digits=4 }% \RequirePackage{fontawesome5} -%\if@csvii -% \RequirePackage[legacy]{csvsimple} -%\else -% \RequirePackage{expl3} -% \RequirePackage[l3]{csvsimple} -%\fi %librairies tikz \usetikzlibrary{calc} \usetikzlibrary{decorations} @@ -125,28 +74,35 @@ %divers \RequirePackage{iftex} -%python -\if@pythontex - \RequirePackage[gobble=auto]{pythontex} - \setpythontexlistingenv{pythont} %pour ne pas télescoper lstlistings (?) - \if@build - \setpythontexoutputdir{./build/pythontex-files-\jobname} %essai de modif pythontex répertoire build - \fi -\fi - -%shellescape -\if@nonshellescape - %on ne charge pas minted et la librairie tcbox -\else - \if@build - %on charge minted avec le répertoire build - \RequirePackage[outputdir=build]{minted} - \fi - %on charge minted via la librairie tcbox - \tcbuselibrary{minted} -\fi +%%------LIBRAIRIES/BIBIOTHÈQUES +\newcommand\useproflyclib[1]{%ajout d'une commande "librairie" pour charger des modules + \IfSubStr{#1}{piton}% + {% + \input{proflycee-tools-piton.tex} + }% + {}% + \IfSubStr{#1}{minted}% + {% + \if@build + \RequirePackage[outputdir=build]{minted} %on charge minted avec le répertoire build + \fi + \tcbuselibrary{minted} %on charge minted via la librairie tcbox + \input{proflycee-tools-minted.tex} + }% + {}% + \IfSubStr{#1}{pythontex}% + {% + \RequirePackage[gobble=auto]{pythontex} + \setpythontexlistingenv{pythont} %pour ne pas télescoper lstlistings (?) + \if@build + \setpythontexoutputdir{./build/pythontex-files-\jobname} %essai de modif pythontex répertoire build + \fi + \input{proflycee-tools-pythontex.tex} + }% + {}% +} -%-----------PRESENTATIONDECODES-------------- +%%------PRESENTATIONDECODES \NewTCBListing{PresentationCode}{ O{ForestGreen} m }{% sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,% colback=#1!5!white,colframe=#1!75!black,colbacklower=White,% @@ -163,9 +119,9 @@ #2 } -%---------------SPLINES---------------------- -%------commande utile pour extraire des infos d'une liste -\newcommand\extractcoeff[2]{% #1=liste & #2=numero +%%------SPLINES +%commande utile pour extraire des infos d'une liste +\newcommand\extractcoeff[2]{%1=liste,2=numero \setsepchar{§}% \readlist*\lcoeffs{#1} \ifnum \lcoeffslen=1 @@ -179,7 +135,7 @@ \fi } -%------splines en tikz avec ..controls +%splines en tikz avec ..controls \defKV[spline]{% Epaisseur=\def\SPLepaisseur{#1},% Couleur=\def\SPLcouleur{#1},% @@ -244,7 +200,7 @@ {} } -%------tangente(s) en TikZ, avec point/dérivée ou liste points/dérivées +%tangente(s) en TikZ, avec point/dérivée ou liste points/dérivées \defKV[tgte]{% Epaisseur=\def\TGTepaisseur{#1},% Couleur=\def\TGTcouleur{#1},% @@ -274,7 +230,7 @@ \draw[line width=\TGTepaisseur,\TGTcouleur,domain=\TGTDEB:\TGTFIN,\TGTstyle] plot (\x,{\fprimea*(\x-\xa)+\ya}) ;% } -%----------------FENÊTRE CALCUL FORMEL +%%------FENÊTRE CALCUL FORMEL \newcommand\CFchap{\textasciicircum} \newcounter{CFnum} %def des clés @@ -305,7 +261,7 @@ \useKVdefault[paramfenxcas]% \setKV[paramfenxcas]{#1}% on paramètres les nouvelles clés et on les simplifie } -%def des clés + \defKV[paramlgxcas]{% HautCmd=\def\CFhle{#1},% HautRes=\def\CFhlr{#1} @@ -379,163 +335,7 @@ {} } -\if@pythontex -%=========CONSOLEPYTHON=========== OK !! -\defKV[envpythonconsole]{% - Largeur=\def\CSPYlargeur{#1},% - Centre=\testboolKV{#1} - {\def\hookcenterpre{\begin{center}}\def\hookcenterpost{\end{center}}} - {\def\hookcenterpre{\begin{flushleft}}\def\hookcenterpost{\end{flushleft}}},% - TaillePolice=\def\CSPYfonte{#1},% - EspacementVertical=\def\CSPYstretch{#1} -} - -\setKVdefault[envpythonconsole]{% - Largeur=\linewidth,% - Centre=true,% - Label=true,% - TaillePolice=\footnotesize,% - EspacementVertical=1 -} - -\newenvironment{ConsolePythontex}[1][]{% - \useKVdefault[envpythonconsole]% - \setKV[envpythonconsole]{#1}% on paramètres les nouvelles clés et on les simplifie - \VerbatimEnvironment - \hookcenterpre - \begin{minipage}{\CSPYlargeur} - \ifboolKV[envpythonconsole]{Label}%si label - {\begin{pyconsole}[][% - framesep=3mm,frame=single,fontsize=\CSPYfonte,framerule=1pt,rulecolor=\color{ForestGreen},label={[\scriptsize Début de la console python]\scriptsize Fin de la console python},baselinestretch=\CSPYstretch]}% - {\begin{pyconsole}[][% - framesep=3mm,frame=single,fontsize=\CSPYfonte,framerule=1pt,rulecolor=\color{ForestGreen},baselinestretch=\CSPYstretch]} - } - { - \end{pyconsole} - \end{minipage} - \hookcenterpost -} - -%=========CODEPYTHONTEX=========== OK!! -\defKV[envpythonverb]{% - Largeur=\def\CODPYlargeur{#1},% - TaillePolice=\def\CODPYfonte{#1},% - EspacementVertical=\def\CODPYstretch{#1},% - Centre=\testboolKV{#1} - {\def\verbcenterpre{\begin{center}}\def\verbcenterpost{\end{center}}} - {\def\verbcenterpre{}\def\verbcenterpost{}} -} - -\setKVdefault[envpythonverb]{% - Largeur=\linewidth,% - Centre=true,% - Lignes=true,% - TaillePolice=\footnotesize,% - EspacementVertical=1 -} - -\tcbset{stylepythontex/.style={% - enhanced,boxrule=1.25pt,% - sharp corners=downhill,arc=12pt, - before skip=12pt,after skip=12pt,% - top=10pt,bottom=1mm,rightupper=4pt,%leftupper=25pt, - attach boxed title to top right={yshift=-\tcboxedtitleheight}, - boxed title style={ - size=small,colback=ForestGreen!25,boxrule=1.25pt, - colframe=Green,boxsep=1.25pt, - sharp corners=downhill, - arc=12pt, - top=2pt,bottom=1pt,left=6pt,right=6pt - }, - fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, - title={\scriptsize\faPython}\:Code Python\vphantom{p}, - watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, - } -} - -\tcbset{stylepythonnolineos/.style={% - stylepythontex,leftupper=10pt, - colframe=Green,colback=ForestGreen!5,% -% fontlower=\small,% - before upper=\renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Gray}\arabic{FancyVerbLine}} - } -} - -\tcbset{stylepythonlineos/.style={% - stylepythontex,leftupper=25pt, - colframe=Green,colback=ForestGreen!5,% -% fontlower=\small,% - before upper=\renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Gray}\arabic{FancyVerbLine}} - } -} - -\newtcolorbox{tcpythontexcode}[1][\linewidth]{% - width=#1,stylepythonlineos -} - -\newtcolorbox{tcpythontexcodeno}[1][\linewidth]{% - width=#1,stylepythonnolineos -} - -\newenvironment{CodePythontex}[1][]{% - \useKVdefault[envpythonverb]% - \setKV[envpythonverb]{#1}% on paramètres les nouvelles clés et on les simplifie - \VerbatimEnvironment - \verbcenterpre - \ifboolKV[envpythonverb]{Lignes}%si lignes=true - {\begin{tcpythontexcode}[\CODPYlargeur]} - {\begin{tcpythontexcodeno}[\CODPYlargeur]} - \ifboolKV[envpythonverb]{Lignes}%si lignes=true - {\begin{pyverbatim}[][fontsize=\CODPYfonte,numbers=left,numbersep=10pt,commandchars=\\\{\},mathescape,baselinestretch=\CODPYstretch]} - {\begin{pyverbatim}[][numbers=none,numbersep=0pt,fontsize=\CODPYfonte,commandchars=\\\{\},mathescape,baselinestretch=\CODPYstretch]} - } - { - \end{pyverbatim} - \ifboolKV[envpythonverb]{Lignes}%si lignes=true - {\end{tcpythontexcode}} - {\end{tcpythontexcodeno}} - \verbcenterpost -} -\fi - -%=========PYTHONMINTED========= OK !! -\tcbset{pytmintedno/.style={% - listing engine=minted,minted style=colorful, - minted language=python,listing only, - minted options={tabsize=4,fontsize=\footnotesize,autogobble}, - } -} - -\tcbset{pytminted/.style={% - listing engine=minted,minted style=colorful, - minted language=python,listing only, - minted options={tabsize=4,fontsize=\footnotesize,autogobble,xleftmargin=16pt,linenos,numbersep=10pt}, - } -} - -\DeclareTCBListing{CodePythonMinted}{ s O{12cm} O{} }{% étoilée sans numéro, taille puis options... - \IfBooleanTF{#1}{pytmintedno}{pytminted}, - enhanced,width=#2,#3, - colframe=Green,colback=ForestGreen!5,% - boxrule=1.25pt, - sharp corners=downhill,arc=12pt, - before skip=12pt,after skip=12pt,% - leftupper=8pt,top=10pt,bottom=4pt,rightupper=4pt,% - attach boxed title to top right={yshift=-\tcboxedtitleheight}, - boxed title style={ - size=small,colback=ForestGreen!25,boxrule=1.25pt, - colframe=Green,boxsep=1.25pt, - sharp corners=downhill, - arc=12pt, - top=2pt,bottom=1pt,left=6pt,right=6pt - }, - fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, - title={\scriptsize\faPython}\:Code Python\vphantom{y}, - watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, - before upper=\renewcommand{\theFancyVerbLine}{\scriptsize\ttfamily\color{Green}\arabic{FancyVerbLine}} -} - -%=======STYLE ALGO LST========= OK ! +%%------STYLE ALGO LST \ifluatex \tcbuselibrary{listings} \lstdefinelanguage{langnat}{% @@ -586,7 +386,7 @@ } \fi -%=======PYTHONLISTINGS========= OK !! +%%------PYTHONLISTINGS \tcbset{stylepythonlst/.style={% enhanced,boxrule=1.25pt,% leftupper=10pt, @@ -629,63 +429,10 @@ \NewTCBInputListing{\CodePythonLstFichier}{ s O{\linewidth} m m }{ \IfBooleanTF{#1}{stylepythonlstnolineos}{stylepythonlstlineos}, width=#2,#3, - listing file={#4}} - -%=========PYTHONPITON========== OK !! -\defKV[envpiton]{% - Largeur=\def\CODPITlargeur{#1},% - Alignement=\def\CODPITalign{#1},% - TaillePolice=\def\CODPITfonte{#1} -} - -\setKVdefault[envpiton]{% - Largeur=\linewidth,% - Alignement=center,% - Lignes=true,% - Gobble=true,% - TaillePolice=\footnotesize + listing file={#4} } -\tcbset{stylepiton/.style={% - enhanced,boxrule=1.25pt,% - sharp corners=downhill,arc=12pt, - before skip=12pt,after skip=12pt,% - top=10pt,bottom=1mm,rightupper=4pt,%leftupper=25pt, - attach boxed title to top right={yshift=-\tcboxedtitleheight}, - boxed title style={ - size=small,colback=ForestGreen!25,boxrule=1.25pt, - colframe=Green,boxsep=1.25pt, - sharp corners=downhill, - arc=12pt, - top=2pt,bottom=1pt,left=6pt,right=6pt - }, - fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, - title={\scriptsize\faPython}\:Code Python\vphantom{p}, - watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, - } -} - -\ifluatex - \RequirePackage{piton} - \NewPitonEnvironment{CodePiton}{ O{} }% - {% - \useKVdefault[envpiton]% - \setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie - \ifboolKV[envpiton]{Lignes}%si lignes=true - {\PitonOptions{left-margin=auto,all-line-numbers}}% - {}% - \ifboolKV[envpiton]{Gobble}%si gobble=true - {\PitonOptions{tabs-auto-gobble}}% - {}% - \PitonOptions{break-lines,indent-broken-lines}% - \begin{tcolorbox}[stylepiton,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontupper=\CODPITfonte,fontlower=\CODPITfonte,\CODPITalign] - }% - {% - \end{tcolorbox}% - }% -\fi - -%=========PSEUDOCODE=========== OK !! +%%------PSEUDOCODE %language pseudocode listings \lstdefinestyle{pseudocodePL}{% language=langnat, @@ -768,7 +515,7 @@ } } -%============FakeTerm=========== OK !! +%%------FakeTerm %couleurs (inspirées par termsim !) \definecolor{PLmpurple}{RGB}{48,10,36} \definecolor{PLmgray}{RGB}{70,72,67} @@ -912,14 +659,14 @@ width=#1,#3 } -%============CartoucheCapytale========= OK !! +%%------CartoucheCapytale \definecolor{vertcapyt}{rgb}{0.0,0.5,0.0} %\definecolor{vertcapyt}{HTML}{008000} \DeclareTotalTCBox{\CartoucheCapytale}{ s O{} m } {enhanced,size=fbox,on line,arc=3pt,colback=vertcapyt,colframe=vertcapyt,fontupper=\IfBooleanTF{#1}{\ttfamily}{\sffamily}\bfseries,colupper=white}% {#3#2~{\scriptsize\faLink}} -%============PaveDroitTikZ============= OK !! +%%------PaveDroitTikZ \defKV[paramspave]{% Largeur=\xdef\PFPaveLg{#1},% Profondeur=\xdef\PFPavePf{#1},% @@ -990,7 +737,7 @@ (\PaveD)--(\PaveH) ;} } -%============TétraèdreTikZ============= OK !! +%%------TétraèdreTikZ \defKV[paramstetra]{% Largeur=\xdef\PFTetraLg{#1},% Profondeur=\xdef\PFTetraPf{#1},% @@ -1040,7 +787,7 @@ {\draw[dashed,\PFTetraThick] (\TetraA)--(\TetraC) ;} } -%============EnsembleList============== OK !! +%%------EnsembleList \defKV[kvensemble]{% Sep=\def\PLenssep{#1},% Option=\def\PLensopt{#1} @@ -1056,11 +803,11 @@ \useKVdefault[kvensemble]% \setKV[kvensemble]{#1}% \ifboolKV[kvensemble]{Mathpunct}% - {\left\lbrace \PLensopt{} \mathpunct{} \StrSubstitute{#2}{/}{\mathpunct{}{\PLenssep}\mathpunct{}} \mathpunct{} \right\rbrace}% + {\left\lbrace \PLensopt{} \mathpunct{} \StrSubstitute{#2}{/}{\mathpunct{}{\PLenssep}\mathpunct{}} \right\rbrace}% {\left\lbrace \PLensopt{} \StrSubstitute{#2}{/}{{\PLenssep}} \right\rbrace} } -%===============SimplFrac============== OK !! +%%------SimplFrac \DeclareDocumentCommand\ConversionFraction{ 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 @@ -1075,7 +822,7 @@ }% } -%================CabWeb================ OK !! +%%------CabWeb \defKV[webrecurr]{% Fct=\def\PLRecurfct{#1},% Nom=\def\PLRecurnom{#1},% @@ -1097,7 +844,6 @@ TailleLabel=\small } -%\newcommand\recurr[1][]{% \NewDocumentCommand\ToileRecurrence{ O{} O{thick,color=magenta} O{dotted} }{ %<clés> + <style cabweb> + <style supplémentaire pointillés> \useKVdefault[webrecurr]% @@ -1126,7 +872,7 @@ } } -%================CercleTrigo=========== OK !! +%%------CercleTrigo \defKV[cercletrigo]{% Rayon=\def\PLcerclerayon{#1},% Epaisseur=\def\PLcerclethick{#1},% @@ -1256,7 +1002,7 @@ {} } -%==================AideTds============= OK !! +%%------AideTds \defKV[aidetds]{% Code=\def\tdsparam{#1},% Couleur=\def\tdscouleur{#1},% @@ -1357,7 +1103,6 @@ } \NewDocumentCommand\MiniSchemaSignes{ s O{} D<>{} }{% -%\newcommand\MiniSchemaSignes[1][]{% \useKVdefault[aidetds] \setKV[aidetds]{#2} %simplification des codes @@ -1439,7 +1184,7 @@ \path (ZZZ.east) + (#4,0) pic[right,scale=#3,every node/.style={scale=#3}] {code={\MiniSchemaSignes[#1]}} ; } -%=============RegressionLinéaire======= OK !! +%%------RegressionLinéaire %calcul des paramètres \defKV[coeffreglin]{% NomCoeffa=\def\RegLinCoeffa{#1},% @@ -1535,7 +1280,7 @@ \foreach \i in {1,2,...,\LNB} {\filldraw[\RegLinNuageCouleur] ({\LX[\i]-\RegLinNuageOx},{\LY[\i]-\RegLinNuageOy}) circle[radius=\RegLinNuageTaille] ;} } -%=============ConversionsBases========= OK !! +%%------ConversionsBases %dec->bin avec blocs de 4 chiffres \setKVdefault[CONVDECBIN]{% AffBase=true @@ -1551,10 +1296,6 @@ {\num{#3}\ifboolKV[CONVDECBIN]{AffBase}{_{10}}{}=\num[digit-group-size=4,minimum-integer-digits=\nbgrp]{\resbrut}\ifboolKV[CONVDECBIN]{AffBase}{_{2}}{}} } -%bin->hexa avec blocs de 4 chiffres -%\defKV[CONVBINHEX]{% -% trait=\def\epcrochet{#1} -%} \setKVdefault[CONVBINHEX]{% %trait=0.5pt,% AffBase=true,% @@ -1717,87 +1458,13 @@ \num{\convertbasetobasedix{#2}{#3}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}% } -%==============MainLevée TikZ========== OK !! +%%------MainLevée TikZ \tikzset{% mainlevee/.style args={#1et#2}{decorate,decoration={random steps,segment length=#1,amplitude=#2}}, mainlevee/.default={5mm et 0.6pt} } -%%==============PixelArt TikZ=========== OK !! :=> vers le package PixelArtTikz !! -%\defKV[pixelarttkz]{% -% Codes=\def\PATlettres{#1},% -% Couleurs=\def\PATcouleurs{#1},% -% Symboles=\def\PATchiffres{#1},% -% Style=\def\PATtaille{#1} -%} -% -%\setKVdefault[pixelarttkz]{% -% Style=\scriptsize,% -% Correction=false,% -% Symb=false,% -% BordCases=true -%} -% -%\newcommand\PixelArtTikz[2][]{% -% \useKVdefault[pixelarttkz] -% \setKV[pixelarttkz]{#1} -% %affichage du corrigé -% \ifboolKV[pixelarttkz]{Correction} -% {% -% \csvloop{file=#2,no head,command={% -% \foreach \l [count=\n] in \csvline {% -% \StrDel{\l}{ }[\l] -% \setsepchar{,} -% \readlist*\LCPA\PATcouleurs -% \StrPosition{\PATlettres}{\l}[\pixcnt]% -% \xintifboolexpr{\pixcnt>0}% -% {% -% \itemtomacro\LCPA[\pixcnt]\pixcol% -% \ifboolKV[pixelarttkz]{BordCases}% -% {\draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% -% {\filldraw[\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% -% % -% }% -% {} -% } -% } -% } -% } -% {% -% \ifboolKV[pixelarttkz]{Symb} -% {%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]% -% \xintifboolexpr{\pixpos>0}% -% {% -% \itemtomacro\LCNA[\pixpos]\pixchf% -% \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\pixchf} ;% -% } -% {}% -% } -% } -% } -% } -% {%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};} -% {} -% } -% } -% } -% } -% } -%} - -%=========STATS2VAR========= +%%------STATS2VAR %variables directement dans tikzpicture \tikzset{% Ox/.store in=\axexOx,Ox/.default=0,Ox=0,%essai @@ -2159,7 +1826,7 @@ \end{tikzpicture}% } -%=============BOITES MOUSTACHES======== OK !! +%%------BOITES MOUSTACHES \defKV[boiteamoustaches]{% Couleur=\def\BaMCouleur{#1},% Elevation=\def\BaMElevation{#1},% @@ -2242,7 +1909,7 @@ {} } -%================SUDOMATHS============= OK !! +%%------SUDOMATHS \defKV[PLTIKZSUDOM]{% CouleurTexte=\def\PLSMcoultexte{#1},% Epaisseur=\def\PLSMepf{#1},% @@ -2369,7 +2036,7 @@ \end{tikzpicture} } -%================LOISPROBAS============ OK !! +%%------LOISPROBAS %calculs "simples" \newcommand\CalcBinomP[3]{%npk \xintFloatToDecimal{\xintfloateval{binomial(#1,#3)*#2^#3*(1-#2)^(#1-#3)}} @@ -2599,7 +2266,7 @@ } } -%===============CONVFROMDEC============ OK !! +%%------CONVFROMDEC \newcommand\PLnoeud[2]{\tikz[remember picture,baseline=(#1.base)]\node[shape=rectangle,inner sep=0pt](#1){#2};} \ExplSyntaxOn \newcommand\convertbasedixtobase[2]{% @@ -2658,7 +2325,7 @@ }{}% } -%===============ARBRESPROBAS=========== OK !! +%%------ARBRESPROBAS \defKV[PLTIKZARBRE]{% Unite=\def\PLAPunite{#1},% EspaceNiveau=\def\PLAPespniv{#1},% @@ -3056,7 +2723,7 @@ \end{tikzpicture} } -%==============SCHEMASPROBAS============= OK! +%%------SCHEMASPROBAS %densites utiles \def\densnorm#1{1/(sqrt(2*pi))*exp(-0.5*(#1*#1))} \def\densexpo#1{exp(-#1)} @@ -3131,7 +2798,7 @@ \end{tikzpicture} } -%===============TRINOMEALEA============== OK! +%%------TRINOMEALEA \setKVdefault[trinomealea]{% Alea=false,% Anegatif=true @@ -3171,7 +2838,7 @@ } -%=================PRESPGCD=============== OK! +%%------PRESPGCD \DeclareMathOperator{\PLpgcd}{PGCD} \defKV[prespgcd]{% Couleur=\def\PLPGCDCouleur{#1},% @@ -3234,7 +2901,7 @@ }{}% } -%================TVISOLUTION============= OK! +%%------TVISOLUTION \defKV[dichoto]{% NomFct=\def\DHTnomfct{#1},% va=\def\DHTva{#1},% @@ -3271,7 +2938,7 @@ }% } -%=================CALCSRECUR============= OK! +%%------CALCSRECUR \NewDocumentCommand\CalculInterneTermeRecurrence{ m m m m }{%pas forcément utile \xintdeffloatfunc varfctrecur(x) := #1 ;% \xdef\vartmp{#3}% @@ -3423,7 +3090,7 @@ }% } -%=================ALEATOIRES============= OK! +%%------ALEATOIRES \ExplSyntaxOn \NewDocumentCommand\TriListeCroiss{m} { @@ -3502,7 +3169,7 @@ \StrSubstitute{#2}{,}{\TAEEsep}[#2]%on change le séparateur si besoin } -%================SIMPLIFRACINES============ OK! +%%------SIMPLIFRACINES \DeclareDocumentCommand\SimplificationRacine{ m }{% argument mandataire {calcul ou fraction} \xdef\calculargument{\xintIrr{\xinteval{#1}}}% \IfEndWith{\calculargument}{/1}% @@ -3544,7 +3211,7 @@ }% } -%================MESUREPPALE============= OK! +%%------MESUREPPALE \setKVdefault[MesurePpale]{% Crochets=false, d=false @@ -3594,7 +3261,7 @@ }% } -%================DICHOTOMIE============== OK! +%%------DICHOTOMIE \defKV[SolDichoto]{% Precision=\xdef\DICHOTOstep{#1},% Intervalle=\xdef\DICHOTOinterv{#1},% @@ -3636,13 +3303,16 @@ \expandafter\def\csname#3a\endcsname{\fpeval{round(\varvalm,\DICHOTOstep)}}% } -%=================aNp/Cnp================ OK! +%%------aNp/Cnp \setKVdefault[anpCnp]{% - Formule=false + Formule=false,% + Notation=false,% + NotationAncien=false } \NewDocumentCommand\Arrangement{ s O{} m m }{% \useKVdefault[anpCnp]% \setKV[anpCnp]{#2}% + \ifboolKV[anpCnp]{Notation}{A_{#4}^{#3}=}{}% \ifboolKV[anpCnp]{Formule}{\frac{#4!}{\inteval{#4-#3}!}=}{}% \IfBooleanTF{#1}% {\fpeval{fact(#4)/fact(#4-#3)}}%non formaté @@ -3651,6 +3321,8 @@ \NewDocumentCommand\Combinaison{ s O{} m m }{% \useKVdefault[anpCnp]% \setKV[anpCnp]{#2}% + \ifboolKV[anpCnp]{Notation}{\binom{#4}{#3} =}{}% + \ifboolKV[anpCnp]{NotationAncien}{C_{#4}^{#3}=}{}% \ifboolKV[anpCnp]{Formule}{\frac{#4!}{#3! \times \inteval{#4-#3}!}=}{}% \IfBooleanTF{#1}% {\fpeval{fact(#4)/(fact(#3)*fact(#4-#3))}}%non formaté diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex new file mode 100644 index 0000000000..028199ee6d --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex @@ -0,0 +1,48 @@ +% proflycee-tools-minted.tex +% Copyright 2023 Cédric Pierquet +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. + +%%------PYTHONMINTED +\tcbset{pytmintedno/.style={% + listing engine=minted,minted style=colorful, + minted language=python,listing only, + minted options={tabsize=4,fontsize=\footnotesize,autogobble}, + } +} + +\tcbset{pytminted/.style={% + listing engine=minted,minted style=colorful, + minted language=python,listing only, + minted options={tabsize=4,fontsize=\footnotesize,autogobble,xleftmargin=16pt,linenos,numbersep=10pt}, + } +} + +\DeclareTCBListing{CodePythonMinted}{ s O{12cm} O{} }{% étoilée sans numéro, taille puis options... + \IfBooleanTF{#1}{pytmintedno}{pytminted}, + enhanced,width=#2,#3, + colframe=Green,colback=ForestGreen!5,% + boxrule=1.25pt, + sharp corners=downhill,arc=12pt, + before skip=12pt,after skip=12pt,% + leftupper=8pt,top=10pt,bottom=4pt,rightupper=4pt,% + attach boxed title to top right={yshift=-\tcboxedtitleheight}, + boxed title style={ + size=small,colback=ForestGreen!25,boxrule=1.25pt, + colframe=Green,boxsep=1.25pt, + sharp corners=downhill, + arc=12pt, + top=2pt,bottom=1pt,left=6pt,right=6pt + }, + fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, + title={\scriptsize\faPython}\:Code Python\vphantom{y}, + watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, + before upper=\renewcommand{\theFancyVerbLine}{\scriptsize\ttfamily\color{Green}\arabic{FancyVerbLine}} +} + +\endinput diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex new file mode 100644 index 0000000000..5e97e82cc1 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex @@ -0,0 +1,67 @@ +% proflycee-tools-piton.tex +% Copyright 2023 Cédric Pierquet +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. + +\RequirePackage{iftex} + +%%------PYTHONPITON +\defKV[envpiton]{% + Largeur=\def\CODPITlargeur{#1},% + Alignement=\def\CODPITalign{#1},% + TaillePolice=\def\CODPITfonte{#1} +} + +\setKVdefault[envpiton]{% + Largeur=\linewidth,% + Alignement=center,% + Lignes=true,% + Gobble=true,% + TaillePolice=\footnotesize +} + +\tcbset{stylepiton/.style={% + enhanced,boxrule=1.25pt,% + sharp corners=downhill,arc=12pt, + before skip=12pt,after skip=12pt,% + top=10pt,bottom=1mm,rightupper=4pt,%leftupper=25pt, + attach boxed title to top right={yshift=-\tcboxedtitleheight}, + boxed title style={ + size=small,colback=ForestGreen!25,boxrule=1.25pt, + colframe=Green,boxsep=1.25pt, + sharp corners=downhill, + arc=12pt, + top=2pt,bottom=1pt,left=6pt,right=6pt + }, + fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, + title={\scriptsize\faPython}\:Code Python\vphantom{p}, + watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50 + } +} + +\ifluatex +\RequirePackage{piton} +\NewPitonEnvironment{CodePiton}{ O{} }% +{% + \useKVdefault[envpiton]% + \setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie + \ifboolKV[envpiton]{Lignes}%si lignes=true + {\PitonOptions{left-margin=auto,all-line-numbers}}% + {}% + \ifboolKV[envpiton]{Gobble}%si gobble=true + {\PitonOptions{tabs-auto-gobble}}% + {}% + \PitonOptions{break-lines,indent-broken-lines}% + \begin{tcolorbox}[stylepiton,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontupper=\CODPITfonte,fontlower=\CODPITfonte,\CODPITalign] +}% +{% + \end{tcolorbox}% +} +\fi + +\endinput diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex new file mode 100644 index 0000000000..a27acf3248 --- /dev/null +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex @@ -0,0 +1,129 @@ +% proflycee-tools-pythontex.tex +% Copyright 2023 Cédric Pierquet +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. + +%%------CONSOLEPYTHON +\defKV[envpythonconsole]{% + Largeur=\def\CSPYlargeur{#1},% + Centre=\testboolKV{#1} + {\def\hookcenterpre{\begin{center}}\def\hookcenterpost{\end{center}}} + {\def\hookcenterpre{\begin{flushleft}}\def\hookcenterpost{\end{flushleft}}},% + TaillePolice=\def\CSPYfonte{#1},% + EspacementVertical=\def\CSPYstretch{#1} +} + +\setKVdefault[envpythonconsole]{% + Largeur=\linewidth,% + Centre=true,% + Label=true,% + TaillePolice=\footnotesize,% + EspacementVertical=1 +} + +\newenvironment{ConsolePythontex}[1][] +{% + \useKVdefault[envpythonconsole]% + \setKV[envpythonconsole]{#1}% on paramètres les nouvelles clés et on les simplifie + \VerbatimEnvironment + \hookcenterpre + \begin{minipage}{\CSPYlargeur} + \ifboolKV[envpythonconsole]{Label}%si label + {\begin{pyconsole}[][% + framesep=3mm,frame=single,fontsize=\CSPYfonte,framerule=1pt,rulecolor=\color{ForestGreen},label={[\scriptsize Début de la console python]\scriptsize Fin de la console python},baselinestretch=\CSPYstretch]}% + {\begin{pyconsole}[][% + framesep=3mm,frame=single,fontsize=\CSPYfonte,framerule=1pt,rulecolor=\color{ForestGreen},baselinestretch=\CSPYstretch]} +}% +{% + \end{pyconsole} + \end{minipage} + \hookcenterpost +} + +%=========CODEPYTHONTEX=========== OK!! +\defKV[envpythonverb]{% + Largeur=\def\CODPYlargeur{#1},% + TaillePolice=\def\CODPYfonte{#1},% + EspacementVertical=\def\CODPYstretch{#1},% + Centre=\testboolKV{#1} + {\def\verbcenterpre{\begin{center}}\def\verbcenterpost{\end{center}}} + {\def\verbcenterpre{}\def\verbcenterpost{}} +} + +\setKVdefault[envpythonverb]{% + Largeur=\linewidth,% + Centre=true,% + Lignes=true,% + TaillePolice=\footnotesize,% + EspacementVertical=1 +} + +\tcbset{stylepythontex/.style={% + enhanced,boxrule=1.25pt,% + sharp corners=downhill,arc=12pt, + before skip=12pt,after skip=12pt,% + top=10pt,bottom=1mm,rightupper=4pt,%leftupper=25pt, + attach boxed title to top right={yshift=-\tcboxedtitleheight}, + boxed title style={ + size=small,colback=ForestGreen!25,boxrule=1.25pt, + colframe=Green,boxsep=1.25pt, + sharp corners=downhill, + arc=12pt, + top=2pt,bottom=1pt,left=6pt,right=6pt + }, + fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, + title={\scriptsize\faPython}\:Code Python\vphantom{p}, + watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, + } +} + +\tcbset{stylepythonnolineos/.style={% + stylepythontex,leftupper=10pt, + colframe=Green,colback=ForestGreen!5,% + before upper=\renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Gray}\arabic{FancyVerbLine}} + } +} + +\tcbset{stylepythonlineos/.style={% + stylepythontex,leftupper=25pt, + colframe=Green,colback=ForestGreen!5,% + % fontlower=\small,% + before upper=\renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Gray}\arabic{FancyVerbLine}} + } +} + +\newtcolorbox{tcpythontexcode}[1][\linewidth]{% + width=#1,stylepythonlineos +} + +\newtcolorbox{tcpythontexcodeno}[1][\linewidth]{% + width=#1,stylepythonnolineos +} + +\newenvironment{CodePythontex}[1][] +{% + \useKVdefault[envpythonverb]% + \setKV[envpythonverb]{#1}% on paramètres les nouvelles clés et on les simplifie + \VerbatimEnvironment + \verbcenterpre + \ifboolKV[envpythonverb]{Lignes}%si lignes=true + {\begin{tcpythontexcode}[\CODPYlargeur]} + {\begin{tcpythontexcodeno}[\CODPYlargeur]} + \ifboolKV[envpythonverb]{Lignes}%si lignes=true + {\begin{pyverbatim}[][fontsize=\CODPYfonte,numbers=left,numbersep=10pt,commandchars=\\\{\},mathescape,baselinestretch=\CODPYstretch]} + {\begin{pyverbatim}[][numbers=none,numbersep=0pt,fontsize=\CODPYfonte,commandchars=\\\{\},mathescape,baselinestretch=\CODPYstretch]} +}% +{% + \end{pyverbatim} + \ifboolKV[envpythonverb]{Lignes}%si lignes=true + {\end{tcpythontexcode}} + {\end{tcpythontexcodeno}} + \verbcenterpost +} + +\endinput |