% !TeX TXS-program:compile = txs:///lualatex
\documentclass[french,11pt,a4paper]{article}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage{fontspec}
\setmonofont[Scale=MatchLowercase]{Inconsolatazi4}
\usepackage{tkz-bernoulli}
\usepackage{nicefrac}
\usepackage{enumitem}
\usepackage{codehigh}
\usepackage{multicol}
\usepackage{tabularray}
\usepackage{lipsum}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{fontawesome5}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
%\rhead{\sffamily\small\affloetalab[Legende]}
\lfoot{\sffamily\small [tkz-bernoulli]}
\cfoot{\sffamily\small - \thepage{} -}
\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
\usepackage{hologo}
\providecommand\tikzlogo{Ti\textit{k}Z}
\providecommand\TeXLive{\TeX{}Live\xspace}
\providecommand\PSTricks{\textsf{PSTricks}\xspace}
\let\pstricks\PSTricks
\let\TikZ\tikzlogo
\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
\def\TPversion{0.1.3}
\def\TPdate{5 novembre 2023}
\usepackage{tcolorbox}
\tcbuselibrary{skins,hooks}
\usepackage{soul}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
\hl{\vphantom{\texttt{pf}}\texttt{#1}}%
}
\usepackage{siunitx}
\sisetup{locale=FR}
\usepackage{babel}
\begin{document}
\pagestyle{fancy}
\thispagestyle{empty}
\begin{center}
\begin{minipage}{0.88\linewidth}
\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
\begin{center}
\begin{tabular}{c}
{\Huge \texttt{tkz-bernoulli}}\\
\\
{\LARGE Présenter, grâce à \MontreCode{tikz},} \\
{\LARGE des arbres de Bernoulli.} \\
\\
{\LARGE $\rhd$ Commandes [fr] ou [en] $\lhd$} \\
\\
{\small \texttt{Version \TPversion{} -- \TPdate}}
\end{tabular}
\end{center}
\end{tcolorbox}
\end{minipage}
\end{center}
\begin{center}
\begin{tabular}{c}
\texttt{Cédric Pierquet}\\
{\ttfamily c pierquet -- at -- outlook . fr}\\
\texttt{\url{
https://github.com/cpierquet/tkz-bernoulli}} \\
\end{tabular}
\end{center}
\hrule
\vfill
Présenter, avec personnalisations possibles, un arbre de Bernoulli.
\vfill
\begin{tcolorbox}[colframe=lightgray,colback=white]
\MontreCode{\textbackslash tkzSchemBernoulli*}
\hfill\tkzSchemBernoulli*\hfill~
\end{tcolorbox}
\vspace*{5mm}
\begin{tcolorbox}[colframe=lightgray,colback=white]
\MontreCode{\textbackslash tkzSchemBernoulli*}
\phantom{\texttt{~~~~}}\MontreCode{[N=2,EspNiv=3,EspFeuil=1.25,NoticeProbas=\{\textbackslash num{0.75}/\textbackslash num\{0.25\}\},Evts=\{\$E\$/\$\textbackslash overline\{E\}\$\}]}
\tikzstyle{BernProbaS} = [text=violet,fill=white,sloped,midway,font=\scriptsize]
\tikzstyle{BernProbaE} = [text=red,fill=white,sloped,midway,font=\scriptsize]
\tikzstyle{BernBranche} = [semithick,blue,->]
\hfill\tkzSchemBernoulli*[N=2,EspNiv=3,EspFeuil=1.25,Notice,Racine=false,Probas={\num{0.75}/\num{0.25}},Evts={$E$/$\overline{E}$}]\hfill~
\tkzSchemBernStyleDefaut
\end{tcolorbox}
\vfill~
\pagebreak
\phantomsection
\hypertarget{matoc}{}
\tableofcontents
\vspace*{5mm}
\hrule
\vspace*{5mm}
\section{Le package tkz-bernoulli}
\subsection{Introduction}
L'idée du package \MontreCode{tkz-bernoulli} est de proposer des commandes pour représenter un schéma de Bernoulli, dans le cadre d'une loi binomiale par exemple, avec la possibilité de :
\begin{itemize}
\item personnaliser les dimensions et styles ;
\item rajouter des éléments a posteriori, grâce aux nœuds créés.
\end{itemize}
\subsection{Chargement}
Le package se charge dans le préambule, via \MontreCode{\textbackslash usepackage\{tkz-bernoulli\}}.
Les seuls packages chargés sont :
\begin{itemize}
\item \MontreCode{xstring}, \MontreCode{pgffor} et \MontreCode{simplekv} ;
\item \MontreCode{xintexpr} et \MontreCode{xintbinhex} ;
\item \MontreCode{tikz} avec la librairie \MontreCode{calc}.
\end{itemize}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\usepackage{tkz-bernoulli}
\end{codehigh}
{\small\faAngleDoubleRight}~\MontreCode{tkz-bernoulli} est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.
\subsection{Commandes disponibles}
Les commandes proposées par le package \MontreCode{tkz-bernoulli} sont :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande à insérer dans un environnement tikzpicture, pour rajouts éventuels
\begin{tikzpicture}
\tkzSchemBernoulli
\end{tikzpicture}
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande autonome
\tkzSchemBernoulli*
\end{codehigh}
\subsection{Styles par défaut}
Le package propose des styles prédéfinis, pour :
\begin{itemize}
\item la racine et les nœuds ;
\item les branches ;
\item les probabilités.
\end{itemize}
Pour modifier, en \textit{profondeur}, le style de l'arbre, il suffira de redéfinir les styles suivants (une commande est disponible pour remettre tous les styles par défaut) :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%style par défaut des branches
\tikzstyle{BernBranche} = [semithick]
%style par défaut du label de la racine, si affichée
\tikzstyle{BernRacine} = [inner sep=2pt]
%styles par défaut des noeuds relatifs à Succès/Échec
\tikzstyle{BernNoeudS} = [inner sep=2pt]
\tikzstyle{BernNoeudE} = [inner sep=2pt]
%styles par défaut des probas relatives à Succès/Échec
\tikzstyle{BernProbaS} = [fill=white,midway,font=\footnotesize,inner sep=1.5pt]
\tikzstyle{BernProbaE} = [fill=white,midway,font=\footnotesize,inner sep=1.5pt]
%style par défaut des valeurs prises par la v.a.
\tikzstyle{BernNotice} = [inner sep=2pt,text=teal,right=1em]
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande de remise des styles par défaut
\tkzSchemBernStyleDefaut
\end{codehigh}
\section{Les commandes}
\subsection{Commande à insérer dans un environnement tikzpicture}
La commande dédiée pour insertion dans un environnement \textsf{tikzpicture} est \MontreCode{\textbackslash tkzSchemBernoulli} :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande à insérer dans un environnement tikzpicture, pour rajouts éventuels
\begin{tikzpicture}
\tkzSchemBernoulli[clés]
\end{tikzpicture}
\end{codehigh}
Concernant cette commande :
\begin{itemize}
\item les clés disponibles sont :
\begin{itemize}
\item \MontreCode{EspNiv} := espace horizontal entre les niveaux (\MontreCode{2.25} par défaut) ;
\item \MontreCode{EspFeuil} := espace vertical entre les éléments du dernier niveau (\MontreCode{1} par défaut) ;
\item \MontreCode{Evts} := nom des évènements Succès/Échec (\MontreCode{\$S\$/\$E\$} par défaut) ;
\item \MontreCode{Probas} := probabilités (\MontreCode{\$p\$/\$1-p\$} par défaut) ;
\item \MontreCode{AffProbas} := booléen pour afficher les probabilités (\MontreCode{true} par défaut) ;
\item \MontreCode{Racine} := nom qui apparaît pour la racine(\MontreCode{\$\textbackslash Omega\$} par défaut, ou \MontreCode{false} pour désactiver) ;
\item \MontreCode{Aide} := booléen pour afficher les noms des nœuds créés (\MontreCode{false} par défaut) ;
\item \MontreCode{Notice} := booléen pour afficher les valeurs prises par la v.a. (\MontreCode{false} par défaut) ;
\item \MontreCode{Var} := nom de la v.a. pour la notice (\MontreCode{X} par défaut) ;
\item \MontreCode{N} := paramètre $n$ du schéma de Bernoulli (\MontreCode{3} par défaut).
%\item \MontreCode{Indice} := booléen (expérimental !!) pour forcer l'affichage de l'indice du niveau pour les succès/échecs, au quel cas les évènements doivent utiliser \MontreCode{\_i} (mais pas dans un \MontreCode{\textbackslash overline}\ldots) ! (\MontreCode{false} par défaut).
\end{itemize}
\end{itemize}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\begin{tikzpicture}
\tkzSchemBernoulli
\end{tikzpicture}
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%les nœuds sont nommés sous la forme (B<niveau>-<numéro>)
\begin{tikzpicture}
\tkzSchemBernoulli[Aide,Notice,AffProbas=false,EspNiv=3.25,EspFeuil=0.75,N=4]
\end{tikzpicture}
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%\usepackage{nicefrac}
\begin{tikzpicture}
\tkzSchemBernoulli[%
Evts={$A$/$\overline{A}$},%
EspFeuil=0.75,%
Probas={$\nicefrac{1}{6}$/$\nicefrac{5}{6}$}]
\end{tikzpicture}
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%en utilisant des indices, dépendant du niveau \i
\begin{tikzpicture}
\tkzSchemBernoulli[Evts={$S_{\i}$/$\overline{S_{\i}}$}]
\end{tikzpicture}
\end{demohigh}
\subsection{Commande autonome}
La commande dédiée pour insertion autonome est \MontreCode{\textbackslash tkzSchemBernoulli*} :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande autonome
\tkzSchemBernoulli*[clés]<options tikz>
\end{codehigh}
Concernant cette commande :
\begin{itemize}
\item l'environnement \textsf{tikzpicture} est automatiquement créé ;
\item les \textsf{clés} sont les mêmes que pour la commande non étoilée ;
\item des \MontreCode{<options tikz>}, optionnels, peuvent être passées à l'environnement \textsf{tikzpicture}.
\end{itemize}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tkzSchemBernoulli*
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tkzSchemBernoulli*[Notice,AffProbas=false,EspNiv=3.25,EspFeuil=0.75,N=4,Aide]
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%\usepackage{nicefrac}
\tkzSchemBernoulli*[%
N=6,EspFeuil=0.35,Notice,%
Probas={$\nicefrac{1}{6}$/$\nicefrac{5}{6}$}]
<scale=0.75,every node/.style={scale=0.5}>
\end{demohigh}
\pagebreak
\subsection{Mofication avancée des styles}
Les \textsf{clés} relatives aux commandes précédentes permettent de modifier l'aspect \textit{global} de l'arbre, mais les styles particuliers des éléments peuvent également être modifiés, comme indiqué au début de cette documentation.
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tikzstyle{BernBranche} = [thick,red,->]
\tikzstyle{BernRacine} = []
\tikzstyle{BernNoeudS} = [draw,rectangle,inner sep=1.5pt]
\tikzstyle{BernNoeudE} = [draw,rectangle,inner sep=1.5pt]
\tikzstyle{BernProbaS} = [text=teal,midway,fill=cyan!5,inner sep=1.5pt]
\tikzstyle{BernProbaE} = [text=orange,midway,fill=purple!5,inner sep=1.5pt]
\tkzSchemBernoulli*
\end{demohigh}
\subsection{La commande pour une épreuve de Bernoulli}
Il existe une commande, \MontreCode{\textbackslash tkzEpreuvBernoulli}, pour afficher un arbre \textit{simple}, avec le même fonctionnement que les arbres \textit{complets}.
Certaines clés n'ont pas d'effet, donc il n'y aura pas de d'explications dédiées pour cette commande.
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande dans un environnement tikzpicture
\begin{tikzpicture}
\tkzEpreuvBernoulli[clés]
\end{tikzpicture}
\end{codehigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\begin{tikzpicture}
\tkzEpreuvBernoulli
\end{tikzpicture}
~~
\begin{tikzpicture}
\tkzEpreuvBernoulli[Racine=false]
\end{tikzpicture}
\end{demohigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%commande autonome
\tkzEpreuvBernoulli*[clés]
\end{codehigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tkzEpreuvBernoulli*[Probas={$p$/$q$}]
~~
\tkzEpreuvBernoulli*
\end{demohigh}
\pagebreak
\section{English commands}
\subsection{Introduction}
There's also english versions of the commands and keys :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%command in an environment tikzpicture
\begin{tikzpicture}
\tkzBernoulliTree[keys]
\end{tikzpicture}
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%stand-alone command
\tkzBernoulliTree*[keys]<tikz options>
\end{codehigh}
Default styles are given by :
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%style for edges
\tikzstyle{BernEdge} = [semithick]
%style for root (if displayed)
\tikzstyle{BernRoot} = [inner sep=2pt]
%styles for nodes Success/Failure
\tikzstyle{BernNodeS} = [inner sep=2pt]
\tikzstyle{BernNodeF} = [inner sep=2pt]
%styles for probas Success/Failure
\tikzstyle{BernProbS} = [fill=white,midway,font=\footnotesize,inner sep=2pt]
\tikzstyle{BernProbF} = [fill=white,midway,font=\footnotesize,inner sep=2pt]
%style for values taken by X
\tikzstyle{BernGuide} = [inner sep=2pt,text=teal,right=1em]
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%command to restore default styles
\tkzBernTreeStyleDefault
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%command in an environment tikzpicture for a single Bernoulli trial
\begin{tikzpicture}
tkzBernoulliTrial[keys]
\end{tikzpicture}
\end{codehigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\begin{tikzpicture}
\tkzBernoulliTrial
\end{tikzpicture}
~~
\begin{tikzpicture}
\tkzBernoulliTrial[Root=false]
\end{tikzpicture}
\end{demohigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%stand-alone command for a single Bernoulli trial
\tkzBernoulliTrial*[keys]
\end{codehigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tkzBernoulliTrial*[Probs={$p$/$q$}]
~~
\tkzBernoulliTrial*
\end{demohigh}
\subsection{Examples}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\begin{tikzpicture}
\tkzBernoulliTree
\end{tikzpicture}
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tkzBernoulliTree*[Help,ShowProbs=false,LevelSep=3.25,NodeSep=0.75,N=4,Guide,Var=Z]
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%\usepackage{nicefrac}
\tikzstyle{BernEdge} = [thick,red,->]
\tikzstyle{BernRoot} = []
\tikzstyle{BernNodeS} = [draw,rectangle,fill=yellow,inner sep=1.5pt]
\tikzstyle{BernNodeF} = [draw,rectangle,fill=orange,inner sep=1.5pt]
\tikzstyle{BernProbS} = [text=teal,midway,fill=cyan!5,inner sep=1.5pt]
\tikzstyle{BernProbF} = [text=orange,midway,fill=purple!5,inner sep=1.5pt]
\tikzstyle{BernGuide} = [draw,rectangle,inner sep=2pt,text=green,right=2em]
\tkzBernoulliTree*[%
Events={$A$/$\overline{A}$},%
NodeSep=0.75,Guide,%
Probs={$\nicefrac{1}{6}$/$\nicefrac{5}{6}$}]
\end{demohigh}
\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
%with index for the levels \i
\begin{tikzpicture}
\tkzBernoulliTree[Events={$S_{\i}$/$\overline{S_{\i}}$}]
\end{tikzpicture}
\end{demohigh}
\pagebreak
\section{Historique}
{\small \texttt{v0.1.3 : }Correction de la documentation}
{\small \texttt{v0.1.1 : }Commande pour une épreuve de Bernoulli}
{\small \texttt{v0.1.0 : }Version initiale}
\end{document}