summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex23
1 files changed, 15 insertions, 8 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
index 2e6ff56149..06a02de387 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
@@ -1,5 +1,5 @@
-\setKVdefault[CalculsFractions]{Couleurs=false}
-\defKV[CalculsFractions]{Couleur=\setKV[CalculsFractions]{Couleurs}}
+\setKVdefault[CalculsFractions]{Couleurs=false,Negatif=false}%
+\defKV[CalculsFractions]{Couleur=\setKV[CalculsFractions]{Couleurs}}%
\NewDocumentCommand\tofrac{m}{%
\IfDecimal{#1}{#1}{%
@@ -33,7 +33,7 @@
\xdef\PfCAddFoo{\PfCNumA/\PfCNumB,\PfCNumC/\PfCNumD}%
\setsepchar[*]{,*/}\ignoreemptyitems%
\readlist*\ListeFractions{\PfCAddFoo}%
- \reademptyitems
+ \reademptyitems%
\setsepchar{,}%
% Partie calculs
\PGCD{\ListeFractions[1,2]}{\ListeFractions[2,2]}%
@@ -50,7 +50,10 @@
\ensuremath{%
\IfValueTF{#3}{%
\ifnum#3=4\relax%
- \tofrac{\PfCAddSumSimp}%
+ %test
+ \ifboolKV[CalculsFractions]{Negatif}{%
+ \xintifboolexpr{\fpeval{\PfCAddNumSimp/\PfCAddDenoSimp}<0}{-\tofrac{\fpeval{abs(\PfCAddNumSimp)}/\fpeval{abs(\PfCAddDenoSimp)}}}{\tofrac{\PfCAddSumSimp}}%
+ }{\tofrac{\PfCAddSumSimp}}%
\else%
\ifnum#3=3\relax%
\SSimpliTest{\fpeval{abs(\PfCAddNumFin)}}{\fpeval{abs(\PfCAddDenoFin)}}\ifthenelse{\boolean{Simplification}}{\tofrac{\PfCAddNumFin/\PfCAddDenoFin}}{\tofrac{\PfCAddSumSimp}}%
@@ -79,8 +82,8 @@
}%
}%
-\NewDocumentCommand\SousFraction{oomm}{%
- \AddFraction*[#1][#2]{#3}{#4}%
+\NewDocumentCommand\SousFraction{oommo}{%
+ \AddFraction*[#1][#2]{#3}{#4}[#5]%
}%
\NewDocumentCommand\MulFraction{oommo}{%
@@ -114,7 +117,9 @@
\ensuremath{%
\IfValueTF{#2}{%
\ifnum#2=3\relax
- \tofrac{\PfCMulPdtSimp}%
+ \ifboolKV[CalculsFractions]{Negatif}{%
+ \xintifboolexpr{\fpeval{\PfCMulNumSimp/\PfCMulDenoSimp}<0}{-\tofrac{\fpeval{abs(\PfCMulNumSimp)}/\fpeval{abs(\PfCMulDenoSimp)}}}{\tofrac{\PfCMulPdtSimp}}%
+ }{\tofrac{\PfCMulPdtSimp}}%
\else
\ifnum#2=2\relax%
\SSimpliTest{\PfCMulNumFin}{\PfCMulDenoFin}\ifthenelse{\boolean{Simplification}}{\frac{\ifnum\PfCMulNumFin<0\relax-\fi\Decomposition[Longue]{\fpeval{abs(\PfCMulNumFin)}}}{\ifnum\PfCMulDenoFin<0\relax-\fi\Decomposition[Longue]{\fpeval{abs(\PfCMulDenoFin)}}}}{\tofrac{\PfCMulPdtSimp}}%
@@ -160,7 +165,9 @@
\ensuremath{%
\IfValueTF{#2}{%
\ifnum#2=4\relax
- \tofrac{\PfCDivPdtSimp}%
+ \ifboolKV[CalculsFractions]{Negatif}{%
+ \xintifboolexpr{\fpeval{\PfCDivNumSimp/\PfCDivDenoSimp}<0}{-\tofrac{\fpeval{abs(\PfCDivNumSimp)}/\fpeval{abs(\PfCDivDenoSimp)}}}{\tofrac{\PfCDivPdtSimp}}%
+ }{\tofrac{\PfCDivPdtSimp}}%
\else\ifnum#2=3\relax
\MulFraction[][\fpeval{#2-1}]{\ListeFractions[1,1]/\ListeFractions[1,2]}{\ListeFractions[2,2]/\ListeFractions[2,1]}%
\else