diff options
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex')
-rw-r--r-- | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex b/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex new file mode 100644 index 0000000000..12b5077025 --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex @@ -0,0 +1,80 @@ +%%% +% Barres de calculs +%%% +\setKVdefault[SuiteBarre]{Litteral=false,Perso=false,Decimaux=false} + +\NewDocumentCommand\BarresCalculs{o m m}{% + \useKVdefault[SuiteBarre]% + \setKV[SuiteBarre]{#1}% + \xdef\PfCListeCalculsBarre{}% + \xdef\PfCListeResultatsBarre{}% + \ignoreemptyitems% + \ifboolKV[SuiteBarre]{Perso}{% + \setsepchar[*]{,*§}% + \readlist*\PfCListeBarresCalculs{#2}% + \foreachitem\compteur\in\PfCListeBarresCalculs{% + \StrChar{#3}{\compteurcnt}[\PfCLettreB]% + \StrSubstitute[0]{\PfCLettreB}{*}{Départ}[\PfCLettreC]% + \xdef\PfCListeResultatsBarre{\PfCListeResultatsBarre \PfCLettreC,}% + }% + \setsepchar{,}% + \readlist*\PfCListeResultats{\PfCListeResultatsBarre}% + \begin{NiceTabular}{ccc}[hvlines] + \xintFor* ##1 in{\xintSeq{1}{\PfCListeResultatslen}}\do{% + \xintifForFirst{\Block{2-1}{}}{\Block{2-1}{\ifboolKV[SuiteBarre]{Decimaux}{% + \num{\fpeval{\PfCListeBarresCalculs[\fpeval{##1-1},1]}}% + }{% + \begin{CAS} + c = \PfCListeBarresCalculs[\fpeval{##1-1},1] + \end{CAS}$\print{c:autosimplify()}$}% + }}&\Block{2-1}{\PfCListeResultats[##1]}&\Block{2-1}{$\PfCListeBarresCalculs[##1,2]$}\\ + &&\\ + }% + \end{NiceTabular} + }{% + \setsepchar{,}%\ignoreemptyitems% + \readlist*\PfCListeBarresCalculs{#2}% + \ifboolKV[SuiteBarre]{Litteral}{% + \foreachitem\compteur\in\PfCListeBarresCalculs{% + \StrChar{#3}{\compteurcnt}[\PfCLettreB]% + \StrSubstitute[0]{\PfCLettreB}{*}{Départ}[\PfCLettreC]% + \xdef\PfCListeResultatsBarre{\PfCListeResultatsBarre \PfCLettreC,}% + }% + \setsepchar[*]{,*/}% + \readlist*\PfCListeResultats{\PfCListeResultatsBarre}% + \setsepchar{,}% + \readlist*\PfCListeCalculs{#2}% + \begin{NiceTabular}{ccc}[hvlines] + \xintFor* ##1 in{\xintSeq{1}{\PfCListeResultatslen}}\do{% + \xintifForFirst{\Block{2-1}{}}{\Block{2-1}{$\print{c:expand():topolynomial()}$}}&\Block{2-1}{\PfCListeResultats[##1,1]}&\Block{2-1}{\begin{CAS} + vars('x') + c = \PfCListeCalculs[##1] + \end{CAS}$\print{c}$}\\ + &&\\ + }% + \end{NiceTabular} + }{% + \foreachitem\compteur\in\PfCListeBarresCalculs{% + \StrChar{#3}{\compteurcnt}[\PfCLettreB]% + \StrSubstitute[0]{\PfCLettreB}{*}{Départ}[\PfCLettreC]% + \xdef\PfCListeResultatsBarre{\PfCListeResultatsBarre \num{\fpeval{\compteur}}/\PfCLettreC,}% + \StrSubstitute[0]{\compteur}{*}{\times}[\PfCListeResultatEtapeA]% + \StrSubstitute[0]{\PfCListeResultatEtapeA}{/}{\div}[\PfCListeResultatEtapeB]% + \StrSubstitute[0]{\PfCListeResultatEtapeB}{(}{\left(}[\PfCListeResultatEtapeC]% + \StrSubstitute[0]{\PfCListeResultatEtapeC}{)}{\right)}[\PfCListeResultatEtapeD]% + \xdef\PfCListeCalculsBarre{\PfCListeCalculsBarre $\PfCListeResultatEtapeD$,}% + }% + \setsepchar[*]{,*/}% + \readlist*\PfCListeResultats{\PfCListeResultatsBarre}% + \setsepchar{,}% + \readlist*\PfCListeCalculs{\PfCListeCalculsBarre}% + \begin{NiceTabular}{ccc}[hvlines] + \xintFor* ##1 in{\xintSeq{1}{\PfCListeResultatslen}}\do{% + \xintifForFirst{\Block{2-1}{}}{\Block{2-1}{\PfCListeResultats[\fpeval{##1-1},1]}}&\Block{2-1}{\PfCListeResultats[##1,2]}&\Block{2-1}{\PfCListeCalculs[##1]}\\ + &&\\ + }% + \end{NiceTabular} + }% + }% + \reademptyitems% +}%
\ No newline at end of file |