% Author     : C. Pierquet
% licence    : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ProfLycee}[2024/09/21 3.05a Aide pour l'utilisation de LaTeX en lycee]
% 3.05a	Conversions entre bases + vectorial clipart (de openclipart)
% 3.04g	Ajout de clés pour les arbres de probas
% 3.04f	Ajout de clés pour la coloration des nombres et Piton
% 3.04e	Commandes prix/angle/pourcent en lien avec siunitx
% 3.04d	PitonInputFile et styles
% 3.04c	Max et min pour des fonctions
% 3.04b	Travail sur la loi binomiale + Ajout de clés pour les environnements graphiques
% 3.04a	Améliorations de la partie graphiques tikz (intégrales, axes) + Factorielle
% 3.03d	Page de garde type BAC
% 3.03c	Correction du fonctionnement gobble avec piton + compatibilité luamplib PfC
% 3.03b	Compétences Maths Lycées + \pflnum pour num+xint :-) + correction de bugs (div eucl)
% 3.03a	Forme canonique + fonction homographique
% 3.02g	Correction de bugs avec les arbres de probas
% 3.02f	Ajout de petits schémas type pour la géométrie dans l'espace + conformité avec piton
% 3.02e	Présentation python dans la style 'thonny' + amélioration dans la gestion du gobble avec piton
% 3.02d	Retenues pour les soustractions dans les opérations posées
% 3.02c	Ajout d'une commande pour le calcul d'une congruence (+petite pos / +petite nég) + ligne tkz-convex + Opérations posées
% 3.02b	Amélioration du code pour les arbres de probas (tks M. Degrange pour les suggestions)
% 3.02a	Ajout des [ecritures] proba conditionnelle, norme, valeur absolue et IF/IC
% 3.01g	Ajout de commandes internes, en phase de test (et non documentées à 100%...)
% 3.01f	PseudoCode avec piton (avec langage=minimal de FP ^^) + Suppression Terminal (doublon avec sim-os-menus)
% 3.01e	Mise ne conformité avec pyluatex/piton
% 3.01d	Ajout des commentaires en gris italique (via #) pour le pseudocode
% 3.01c	Ajout des splines en mode génération (sans forcément tracer)
% 3.01b	Ajout de la division euclidienne + correction du bugs mineurs
% 3.01a	Ajout des courbes ECC/FCC + paramètres par interpolation
% 3.00g	Amélioration de la marge Gauche dans le PseudoCode
% 3.00f	Conversion d'une écriture décimale périodique en fraction (avec rédaction éventuelle)
% 3.00e	Ajout des 'machines à transformer' + Correction d'un nom de commande (cc ProfCollege ^^)
% 3.00d	Ajout de commandes pour des chateaux de cartes et des allumettes
% 3.00c	Ajout de chiffrements (César + Affine + Hill)
% 3.00b	Amélioration de la commande des intervalles (spécifier un label pour les bornes)
% 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
% 2.7.7	Ajout d'une commande pour matérialiser des points de discontinuité
% 2.7.6	Amélioration de la gestion de la console piton
% 2.7.5	Ajout d'options pour les environnements de code (piton + listings)
% 2.7.4	Ajout de commandes pour des écritures mathématiques (avec librairie ?)
% 2.7.3	Correction de la couleur de bordures vertes pour les codes python
% 2.7.2	Modification du chargement de xcolor pour éviter les clash errors (couleurs adaptées du coup), passage en option (test)
% 2.7.1	Modification du chargement de tcolorbox
% 2.7.0	Ajout de la clé [Frac] pour \AxeyTikz + \FonctionRepartTikz
% 2.6.9	Correction de bugs et améliorations des boîtes de codes
% 2.6.8	Ajout d'une grille (manuelle) pour les histogrammes non réguliers
% 2.6.7	Correction de bugs mineurs + Histogramme (classes régulières ou non)
% 2.6.6	Externalisation du style Tikz mainlevee (dans tikz2d-fr)
% 2.6.5	Ajout d'une option[noamssymb] pour éviter les clashs avec fourier (merci PfC) + Corections de bugs
% 2.6.4	Correction d'un dysfonctionnement avec les racines (oubli du \num) + Equation diophantienne ax+by=c + Eq cartésiennes (plan & droite) + Corrections de bugs mineurs
% 2.6.3	Ajout d'une commande pour rédiger l'obtention de l'équation affine d'une droite passant par deux points
% 2.6.2	Correction de commandes pour la pseudo3d + nouvelle clé pour la trigo
% 2.6.1	Ajout de commandes pour du calcul intégral (valeur approchée + tikz)
% 2.6.0	Ajout d'une clé [Brut] pour les mesures principales + commande calcul ligne trigo
%		Refonte des fichiers inclus + correction de bugs mineurs
%		Split des thèmes en fichiers 'input'
% 2.5.9	Ajout clé [CouleurNombres] pour CodePiton
% 2.5.8	Ajout du style Classique pour PythonLst (externalisation listings) + Modification marges CodePiton (1.5)
%		Refonte des commandes pour les codes pour éviter des soucis avec les étoilées
% 2.5.7	Ajout d'un style classique pour le code python (Piton) + console piton/pyluatex
%		Refonte des commandes tcbset pour les codes
% 2.5.6	Ajout d'une clé [Trigo] pour \AxexTikz (avec graduations libres)
%		"Suppression" de la fenêtre XCas de la documentation
% 2.5.5	Correction d'un bug avec la fenetre XCas
% 2.5.4	Amélioration des commandes de combinatoire avec calculs via xint (plus précis !)
% 2.5.3	Modification des tests d'arguments dans les probas (macros autorisées)
% 2.5.2	Correction d'un dysfonctionnement avec tcolorbox 6.0 :-(
% 2.5.1	Modification de la commande de conversion en fraction
% 2.5.0	Passage à des libraires via \useproflyclib
% 2.2.0	Ajout de clés [Notation] pour les arrangements et combinaisons
% 2.1.9	Correction d'un bug avec les MiniSchémas + version étoilée
% 2.1.8	Suppression des pixelarts, désormais dans le package "PixelArtTikz" !
% 2.1.7	Option booléenne Math pour les figures pave/tetraèdre
% 2.1.6	Chargement de hologo à la place de hvlogos (bug potentiel avec \bm)
% 2.1.5	Ajout de commandes pour calculer arrangements et combinaisons
% 2.1.4	Ajout d'une commande pour résoudre de manière approchée une équation f(x)=k
% 2.1.3	Ajout de l'option auto-tabs-gobble sur piton (v1.0) + correction d'un bug sur CodePiton
% 2.1.2	Ajout d'une commande pour déterminer la mesure principale d'un angle + option <ElargirOx/y> pour les axes
% 2.1.1	Ajout d'une section pour les tracés de repère et courbe, en tikz
% 2.1.1	Ajout d'une section pour les tracés de repère et courbe, en tikz
% 2.1.0	Ajout du calcul du seuil pour les suites récurrentes + racines de nombres décimaux + option pour pythontex
% 2.0.9	Ajouts de commandes pour générer des nombres et listes aléatoires
% 2.0.8	Ajout d'options pour stretch et fonte env python(s) (pas tous...)
% 2.0.6	Quelques modifications sur les codes python (taille police et marges)...
% 2.0.5	Correction d'un bug avec les calculs en valeurx exactes avec les suites récurrentes...
% 2.0.4	Ajout d'une commande pour présenter un balayage (TVI) + calculs suites récurrentes 
% 2.0.3Correction d'un bug avec les arbres 3x3
% 2.0.2	Ajout de l'option auto-margin sur piton
% 2.0.1	Chargement de piton uniquement si lua...
% 2.0.0	Refonte des commandes, des options, et de la documentation !!!

%------Mathtools
\RequirePackage{mathtools}

%------Option(s)
\newif\if@xcolor \@xcolorfalse
\newif\if@build \@buildfalse
\newif\if@loadamssymb \@loadamssymbtrue
\DeclareOption{xcolor}{\@xcolortrue}%
\DeclareOption{build}{\@buildtrue}%
\DeclareOption{nonamssymb}{\@loadamssymbfalse}%
\DeclareOption*{}
\ProcessOptions\relax

%------Packages utiles
\if@loadamssymb
	\RequirePackage{amssymb}
\fi
\if@xcolor
	\RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
\fi
\RequirePackage{tikz}
\RequirePackage{tkz-tab}
\RequirePackage{pgf,pgffor}
\RequirePackage{ifthen}
\RequirePackage{xkeyval}
\RequirePackage{xstring}
\RequirePackage{xintexpr}
\RequirePackage{xintbinhex}
\RequirePackage{xinttools}
\RequirePackage{randomlist}
\RequirePackage{simplekv}
\RequirePackage{listofitems}
\RequirePackage{tabularray}
\RequirePackage{settobox}
\RequirePackage{hologo}
\RequirePackage{fancyvrb}
\RequirePackage{nicefrac}
\RequirePackage{siunitx} %test avec v3
\sisetup{%
	locale=FR,output-decimal-marker={,},%
	mode=match,propagate-math-font=true,%
	reset-math-version=false,reset-text-family=false,%
	reset-text-series=false,reset-text-shape=false,%
	text-family-to-math=true,text-series-to-math=true,%
	group-minimum-digits=4%
}%
\RequirePackage{fontawesome5}
%librairies tikz
\usetikzlibrary{calc}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{arrows,arrows.meta}
\usetikzlibrary{babel}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{decorations.pathmorphing}
%tcolorbox
\RequirePackage{tcolorbox}%
\tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks}
%divers
\RequirePackage{iftex}

%couleurs
\definecolor{CouleurVertForet}{HTML}{1F8B36} %ForestGreen

%%------LIBRAIRIES/BIBIOTHÈQUES
\newcommand\useproflyclib[1]{%ajout d'une commande "librairie" pour charger des modules
	\IfSubStr{#1}{piton}%
		{%
			\input{proflycee-tools-piton.tex}
		}%
		{}%
	\IfSubStr{#1}{espace}%
		{%
			\input{proflycee-tools-espace.tex}
		}%
		{}%
	\IfSubStr{#1}{minted}%
		{%
			\if@build
				\RequirePackage[outputdir=build]{minted} %on charge minted avec le répertoire build
			\fi
			\tcbuselibrary{minted} %on charge minted via la librairie tcbox
			\input{proflycee-tools-minted.tex}
		}%
		{}%
	\IfSubStr{#1}{pythontex}%
		{%
			\RequirePackage[gobble=auto]{pythontex}
			\setpythontexlistingenv{pythont} %pour ne pas télescoper lstlistings (?)
			\if@build
				\setpythontexoutputdir{./build/pythontex-files-\jobname} %essai de modif pythontex répertoire build
			\fi
			\input{proflycee-tools-pythontex.tex}
		}%
		{}%
	\IfSubStr{#1}{ecritures}%
		{%
			\input{proflycee-tools-ecritures.tex}
		}%
		{}%
}

%%------patch num et xint
\NewDocumentCommand\pflnum{ s O{} m }{%
	\IfBooleanTF{#1}%
	{%
		\IfEq{#2}{}{\num{\xintfloateval{#3}}}{\num{\xintfloateval{round(#3,#2)}}}%
	}%
	{%
		\num{\xintiieval{#3}}%
	}%
}

%%------Codes listings
\input{proflycee-tools-listings.tex}
%%------Trigo
\input{proflycee-tools-trigo.tex}
%%------Probas
\input{proflycee-tools-probas.tex}
%%------Stats
\input{proflycee-tools-stats.tex}
%%------Arithm
\input{proflycee-tools-arithm.tex}
%%------Graphiques
\input{proflycee-tools-graphiques.tex}
%%------Analyse
\input{proflycee-tools-analyse.tex}
%%------Aléatoire
\input{proflycee-tools-aleatoire.tex}
%%------Suites
\input{proflycee-tools-suites.tex}
%%------Complexes
\input{proflycee-tools-complexes.tex}
%%------Géométrie
\input{proflycee-tools-geom.tex}
%%------Récréations diverses
\input{proflycee-tools-recreat.tex}
%%------Compétences
\input{proflycee-tools-competences.tex}
%%------Examens
\input{proflycee-tools-exams.tex}
%%------Cliparts
\input{proflycee-tools-cliparts.tex}

\endinput