summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/proflycee/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-10-24 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2023-10-24 03:01:00 +0000
commit7fc03b60d145610ff8e62c3d3a0d5fe037f6597d (patch)
tree5a571652d167dc38829a038550b6a7fbb8b57b2c /macros/latex/contrib/proflycee/tex
parent6864ad38da5412fd65e655da307e368cea282091 (diff)
CTAN sync 202310240300
Diffstat (limited to 'macros/latex/contrib/proflycee/tex')
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty3
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex151
2 files changed, 153 insertions, 1 deletions
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index a713a0cdce..8f3f9bb1fb 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2023/10/19 2.8.0 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2023/10/23 3.00a Aide pour l'utilisation de LaTeX en lycee]
+% 3.00a Ajout de commandes pour travailler avex des intervalles + Nouvelle numérotation
% 2.8.0 Amélioration du tapis de Sierpinski
% 2.7.9 Ajout de fractales (Koch + Sierpinski)
% 2.7.8 Conversion hexa->bin présentée
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
index 009b5d0967..0a31d0861a 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
@@ -610,4 +610,155 @@
\tikzset{declare function={#1(\x)=#2;}}
}
+%====INTERVALLES TIKZ
+\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing}
+
+\defKV[repinterv]{%
+ Unite=\def\RepIntervUnit{#1},%
+ Largeur=\def\RepIntervLarg{#1},%
+ Graduations=\def\RepIntervGrad{#1},%,
+ GraduationsAlt=\def\RepIntervGradPrim{#1},%
+ HautGrad=\def\RepIntervHautGrad{#1},%
+ Valeurs=\def\RepIntervVal{#1}
+}
+\setKVdefault[repinterv]{%
+ xmin=-8,xmax=8,%
+ Elargir=0.05,Unite=auto,Largeur=12,EpTrait=0.8pt,%
+ Graduations={},%
+ GraduationsAlt={},%
+ HautGrad=7pt,Hauteur=16pt,Coeff=1.1,Valeurs={},%
+ Police={\normalsize\normalfont}
+}
+
+\NewDocumentEnvironment{RepIntervalles}{ O{} D<>{} }%
+{%
+ \restoreKV[repinterv]%
+ \setKV[repinterv]{#1}%
+ \IfStrEq{\RepIntervUnit}{auto}%
+ {\def\RepIntervUnitX{\fpeval{round((\useKV[repinterv]{Largeur})/(\useKV[repinterv]{xmax}-\useKV[repinterv]{xmin}),3)}}}%
+ {\def\RepIntervUnitX{\RepIntervUnit}}%
+ \xdef\AxeXminInterv{\fpeval{\useKV[repinterv]{xmin}-(\useKV[repinterv]{Elargir})*(\useKV[repinterv]{xmax}-\useKV[repinterv]{xmin})}}%
+ \xdef\AxeXmaxInterv{\fpeval{\useKV[repinterv]{xmax}+(\useKV[repinterv]{Elargir})*(\useKV[repinterv]{xmax}-\useKV[repinterv]{xmin})}}%
+ \begin{tikzpicture}[x=\RepIntervUnitX cm,#2]
+ \draw[line width={\useKV[repinterv]{EpTrait}},->,>=latex] ({\AxeXminInterv},0) -- ({\AxeXmaxInterv},0) ;
+ \IfStrEq{\RepIntervGrad}{}%
+ {}%
+ {
+ \foreach \i in \RepIntervGrad {\draw[line width={\useKV[repinterv]{EpTrait}}] (\i,{0.5*\RepIntervHautGrad})--++(0,{-\RepIntervHautGrad}) ;}
+ }%
+ \IfStrEq{\RepIntervGradPrim}{}%
+ {}%
+ {
+ \foreach \i in \RepIntervGradPrim {\draw[line width={\useKV[repinterv]{EpTrait}}] (\i,{0.75*\RepIntervHautGrad})--++(0,{-1.5*\RepIntervHautGrad}) ;}
+ }%
+ \IfStrEq{\RepIntervVal}{}%
+ {}%
+ {
+ \foreach \i in \RepIntervVal {\draw (\i,{-0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={1.5*\useKV[repinterv]{EpTrait}},below,font={\useKV[repinterv]{Police}}] {\num{\i}} ;}
+ }%
+ }%
+ {%
+ \end{tikzpicture}%
+}
+
+\defKV[tkzinterv]{%
+ Type=\def\IntervType{#1},%
+ Decor=\def\IntervStyle{#1},%
+ PosValeurs=\def\IntervPosValeurs{#1},%
+ Offset=\def\IntervOffset{#1}
+}
+\setKVdefault[tkzinterv]{%
+ Couleur=red,%
+ Type=FF,%
+ NiveauV=0,%
+ Decor={},%
+ AffValeurs=false,%
+ PosValeurs=above,%
+ NumInf=true,%
+ NumSup=true,%
+ Offset=0pt
+}
+
+\NewDocumentCommand\tkzIntervalle{ O{} m m }{%1=options,2=min,3=max
+ \restoreKV[tkzinterv]%
+ \setKV[tkzinterv]{#1}%
+ %transformations min/max
+ \IfStrEq{#2}{*}{\def\ValMinInterv{\AxeXminInterv}}{\def\ValMinInterv{#2}}%
+ \IfStrEq{#3}{*}{\def\ValMaxInterv{\AxeXmaxInterv}}{\def\ValMaxInterv{#3}}%
+ \begin{scope}[yshift={\useKV[repinterv]{Coeff}*\useKV[tkzinterv]{NiveauV}*\useKV[repinterv]{Hauteur}+\IntervOffset}]
+ %segment
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)--({\ValMaxInterv},0) ;
+ %style fond
+ \IfStrEq{\IntervStyle}{fond}%
+ {%
+
+ \filldraw[draw=none,fill={\useKV[tkzinterv]{Couleur}},fill opacity=0.25] ({\ValMinInterv},{-0.425*\useKV[repinterv]{Hauteur}}) rectangle ({\ValMaxInterv},{0.425*\useKV[repinterv]{Hauteur}}) ;
+ }{}%
+ \IfStrEq{\IntervStyle}{zigzag}%
+ {%
+ \draw[line width={1.25*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}},decorate,decoration={zigzag,segment length=5mm,amplitude={0.425*\useKV[repinterv]{Hauteur}}}] ({\ValMinInterv},0)--({\ValMaxInterv},0) ;
+ }{}%
+ \IfSubStr{\IntervStyle}{hach}%
+ {%
+ \IfSubStr{\IntervStyle}{/}%
+ {\StrBehind{\IntervStyle}{/}[\IntervHachAngle]}
+ {\def\IntervHachAngle{60}}%
+ \begin{scope}
+ \clip ({\ValMinInterv},{-0.5*\useKV[repinterv]{Hauteur}}) rectangle ({\ValMaxInterv},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={1.25*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}},decorate,decoration={border,segment length=2.5mm,angle=\IntervHachAngle,amplitude={0.425*\useKV[repinterv]{Hauteur}}}] ({\AxeXminInterv},0)--({\AxeXmaxInterv},0) ;
+ \draw[line width={1.25*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}},decorate,decoration={border,segment length=2.5mm,angle=\IntervHachAngle,amplitude={-0.425*\useKV[repinterv]{Hauteur}}}] ({\AxeXminInterv},0)--({\AxeXmaxInterv},0) ;
+ \end{scope}
+ }{}%
+ %bord gauche
+ \IfStrEq{#2}{*}%
+ {}%
+ {%
+ \ifboolKV[tkzinterv]{AffValeurs}%
+ {%
+ \IfSubStr{\IntervPosValeurs}{above}
+ {%
+ \draw ({\ValMinInterv},{0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumInf}{\num{#2}}{#2}} ;
+ }{}%
+ \IfSubStr{\IntervPosValeurs}{below}
+ {%
+ \draw ({\ValMinInterv},{-0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumInf}{\num{#2}}{#2}} ;
+ }{}%
+ }{}%
+ \IfBeginWith{\IntervType}{O}%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ }%
+ \IfStrEq{#3}{*}%
+ {}%
+ {%
+ \ifboolKV[tkzinterv]{AffValeurs}%
+ {%
+ \IfSubStr{\IntervPosValeurs}{above}
+ {%
+ \draw ({\ValMaxInterv},{0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumSup}{\num{#3}}{#3}} ;
+ }{}%
+ \IfSubStr{\IntervPosValeurs}{below}
+ {%
+ \draw ({\ValMaxInterv},{-0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumSup}{\num{#3}}{#3}} ;
+ }{}%
+ }{}%
+ \IfEndWith{\IntervType}{O}%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ }%
+ \end{scope}%
+}
+
\endinput \ No newline at end of file