%!TEX pdflatex
\documentclass[french,a4paper,11pt]{article}
\usepackage{babel}
\usepackage[margin=1.5cm]{geometry}
\usepackage[group-minimum-digits=4]{siunitx}
\usepackage[nominted]{ProfLycee}
\newtcblisting{codetex}[1][]{%
colback=white,colframe=red!75!black,title={\small \faCode} Code \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1,listing options={style=tcblatex,basicstyle=\footnotesize\ttfamily,tabsize=2}}
\defKV[boiteamoustaches]{%
parametres=\def\BaMListe{#1},%
couleur=\def\BaMCouleur{#1},%
elevation=\def\BaMElevation{#1},%
hauteur=\def\BaMHauteur{#1},%
moyenne=\def\BaMMoyenne{#1},%
epaisseur=\def\BaMEpaisseur{#1},%
remplir=\def\BaMRemplissage{#1}
}
\setKVdefault[boiteamoustaches]{%
couleur=black,%
elevation=1,%
hauteur=1,%
affmoyenne=false,%
epaisseur=thick,%
pointilles=false,%
valeurs=false,%
remplir=white
}
\defKV[boiteamoustachesaxe]{%
min=\def\BaMAxeMin{#1},%
max=\def\BaMAxeMax{#1},%
elargir=\def\BaMAxeElarg{#1},%
epaisseur=\def\BaMAxeEpaisseur{#1},%
valeurs=\def\BaMAxeValeurs{#1}
}
\setKVdefault[boiteamoustachesaxe]{%
elargir=0.05,%
epaisseur=thick,%
affvaleurs=false
}
\newcommand\PLboitemoustaxe[1][]{
\useKVdefault[boiteamoustachesaxe]
\setKV[boiteamoustachesaxe]{#1}
\def\BaMaxelargeur{\fpeval{\BaMAxeMax-\BaMAxeMin}}
\def\BaMaxexmin{\fpeval{\BaMAxeMin-\BaMAxeElarg*\BaMaxelargeur}}
\def\BaMaxexmax{\fpeval{\BaMAxeMax+\BaMAxeElarg*\BaMaxelargeur}}
\draw[\BaMAxeEpaisseur,->] (\BaMaxexmin,0) -- (\BaMaxexmax,0) ;
\ifboolKV[boiteamoustachesaxe]{affvaleurs}
{\foreach \x in \BaMAxeValeurs \draw[\BaMAxeEpaisseur] (\x,3pt)--(\x,-3pt) node[below=3pt] {\x} ;}
{}
}
\newcommand\PLboitemoust[1][]{
\useKVdefault[boiteamoustaches]
\setKV[boiteamoustaches]{#1}
\setsepchar[.]{/}%
\readlist*\BaMListeparams\BaMListe%
\itemtomacro\BaMListeparams[1]\BaMmin%
\itemtomacro\BaMListeparams[2]\BaMqu%
\itemtomacro\BaMListeparams[3]\BaMmed%
\itemtomacro\BaMListeparams[4]\BaMqt%
\itemtomacro\BaMListeparams[5]\BaMmax%
\draw[draw,\BaMEpaisseur,\BaMCouleur,fill=\BaMRemplissage] ({\BaMqu},{\BaMElevation-0.5*\BaMHauteur}) rectangle ({\BaMqt},{\BaMElevation+0.5*\BaMHauteur}) ;
\draw[\BaMEpaisseur,\BaMCouleur] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmin,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmax,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmax,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmed,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmed,{\BaMElevation+0.5*\BaMHauteur});
\draw[\BaMEpaisseur,\BaMCouleur] ({\BaMmin},{\BaMElevation})--({\BaMqu},{\BaMElevation}) ({\BaMqt},{\BaMElevation})--({\BaMmax},{\BaMElevation}) ;
\ifboolKV[boiteamoustaches]{affmoyenne}
{\filldraw[\BaMCouleur] ({\BaMMoyenne},{\BaMElevation}) circle[radius=2.5pt] ;}
{}
\ifboolKV[boiteamoustaches]{pointilles}
{
\draw[\BaMEpaisseur,densely dashed] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmin,0) ;
\draw[\BaMEpaisseur,densely dashed] (\BaMqu,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqu,0) ;
\draw[\BaMEpaisseur,densely dashed] (\BaMmed,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmed,0) ;
\draw[\BaMEpaisseur,densely dashed] (\BaMqt,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqt,0) ;
\draw[\BaMEpaisseur,densely dashed] (\BaMmax,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmax,0) ;
}
{}
\ifboolKV[boiteamoustaches]{valeurs}
{
\filldraw (\BaMmin,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmin}} ;
\filldraw (\BaMqu,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqu}} ;
\filldraw (\BaMmed,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmed}} ;
\filldraw (\BaMqt,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqt}} ;
\filldraw (\BaMmax,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmax}} ;
}
{}
}
\begin{document}
\part*{Boîte à moustache}
\section{Simple}
\begin{codetex}[]
\begin{tikzpicture}
\PLboitemoustaxe[min=10,max=20]
\PLboitemoust[parametres={10/15/17/19/20},moyenne=18.5,couleur=blue,affmoyenne,pointilles,valeurs]
\end{tikzpicture}
\end{codetex}
\section{Multiple}
\begin{codetex}[]
\begin{tikzpicture}
\PLboitemoustaxe[min=8,max=21,affvaleurs,valeurs={8,9,...,21}]
\PLboitemoust[parametres={10/15/17/19/20},moyenne=18.5,couleur=blue]
\PLboitemoust[elevation=2.5,parametres={8/10/11/12/15},couleur=red]
\PLboitemoust[elevation=4,parametres={10/14/14.5/16/21},couleur=ForestGreen,remplir=ForestGreen!25]
\end{tikzpicture}
\end{codetex}
\end{document}