% Author...................: C. Pierquet % licence..................: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt % licence (part of code).. : CC BY-SA 3.0 (from Mark Wibrow) % licence cliparts.........: CC0 (from openclipart or svgrepo) % code \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{ProfLycee}[2025/12/18 4.00a Aide pour l'utilisation de LaTeX en lycee] % 4.00a Boulot sur latex3 + option [lng] pour multilangue ? % 3.12f Modif mineure des styles piton % 3.12e Correction d'un bug de couleur avec piton % 3.12d Compat fa567 % 3.12c Pictosbac version 'flat' % 3.12b Style grille histo + améliorations de qques codes + binôme Newton + corrections de bugs (nouveaux codes 'piton') % 3.12a Ajout de cliparts 'zone bac' (via ProfLycee-Pictosbac) % 3.11g Ajout de deux cliparts (bullseye) % 3.11f Bugfix % 3.11e Compatibilité avec fa5/6 (en projet) + nouvelle clé pour SolutionSeuil + Styles piton (Onglet & Carbon) % 3.11d Correction d'un bug avec des espacements non voulus % 3.11c Option [noncancel] pour ne pas charger cancel avec thicklines + option [compat] pour 'maximiser' les options utiles + améliorations dans le code % 3.11b Option [nonsiunitxfr] + bugfix avec tabularray % 3.11a Ajout d'aliases des commandes via \pfl... (à voir pour les environnements...) % 3.10g Clé [warningsoff] pour envlever les warnings liés à unicode-math %------Mathtools \RequirePackage{mathtools} %------Option(s) \newif\if@xcolor \@xcolorfalse \newif\if@build \@buildfalse \newif\if@loadamssymb \@loadamssymbtrue \newif\if@loadsiunitxfr \@loadsiunitxfrtrue \newif\if@warningsoff \@warningsofffalse \newif\if@loadtikzbabel \@loadtikzbabeltrue \newif\if@loadcancel \@loadcanceltrue \newif\if@compatmax \@compatmaxfalse \newif\if@fafive \@fafivetrue \newif\if@fasix \@fasixfalse \newif\if@faseven \@fasevenfalse \newif\if@pfllngfr \@pfllngfrtrue \newif\if@pfllngen \@pfllngenfalse \newif\if@pfllngde \@pfllngdefalse \newif\if@pfllnges \@pfllngesfalse \DeclareOption{xcolor}{\@xcolortrue}% \DeclareOption{build}{\@buildtrue}% \DeclareOption{nonsiunitxfr}{\@loadsiunitxfrfalse}% \DeclareOption{nosiunitxfr}{\@loadsiunitxfrfalse}% \DeclareOption{nonamssymb}{\@loadamssymbfalse}% \DeclareOption{noamssymb}{\@loadamssymbfalse}% \DeclareOption{warningsoff}{\@warningsofftrue}% \DeclareOption{nonwarnings}{\@warningsofftrue}% \DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}% \DeclareOption{notikzbabel}{\@loadtikzbabelfalse}% \DeclareOption{noncancel}{\@loadcancelfalse}% \DeclareOption{nocancel}{\@loadcancelfalse}% \DeclareOption{compat}{\@compatmaxtrue}% \DeclareOption{nonfa}{\@fafivefalse\@fasixfalse\@fasevenfalse} \DeclareOption{nofa}{\@fafivefalse\@fasixfalse\@fasevenfalse} \DeclareOption{fa6}{\@fafivefalse\@fasixtrue\@fasevenfalse} \DeclareOption{fa7}{\@fafivefalse\@fasixfalse\@faseventrue} \DeclareOption{french}{\@pfllngfrtrue\@pfllngenfalse\@pfllngdefalse\@pfllngesfalse} \DeclareOption{spanish}{\@pfllngfrfalse\@pfllngenfalse\@pfllngdefalse\@pfllngestrue} \DeclareOption{english}{\@pfllngfrfalse\@pfllngentrue\@pfllngdefalse\@pfllngesfalse} \DeclareOption{german}{\@pfllngfrfalse\@pfllngenfalse\@pfllngdetrue\@pfllngesfalse} \DeclareOption*{} \ProcessOptions\relax \if@compatmax \@warningsofftrue \@loadamssymbfalse \fi %------Packages utiles \if@loadamssymb \RequirePackage{amssymb} \fi \if@warningsoff \PassOptionsToPackage{warnings-off={mathtools-colon,mathtools-overbracket}}{unicode-math} \fi \if@xcolor \RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs \fi \RequirePackage{tikz} \usetikzlibrary{calc,decorations,decorations.pathreplacing,decorations.markings,arrows,arrows.meta,shapes.geometric,decorations.pathmorphing} \if@loadtikzbabel \usetikzlibrary{babel} \fi \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 \if@loadsiunitxfr \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% }% \fi %tcolorbox \RequirePackage{tcolorbox}% \tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks} %divers \RequirePackage{iftex} %couleurs \definecolor{CouleurVertForet}{HTML}{1F8B36} %ForestGreen \colorlet{MotsClesPseudoCodeA}{blue!75} \colorlet{MotsClesPseudoCodeB}{green!50!black} \colorlet{MotsClesPseudoCodeChaine}{red!75} %%=====LABELS MULTILANGUES SI OPTION \if@pfllngfr \def\labelcodepython{Code Python} \def\labelpseudocode{Pseudo-Code} \def\labelconsolepythondebut{Début de la console Python} \def\labelconsolepythonfin{Fin de la console Python} \def\labelsepdec{,} \fi \if@pfllngen \def\labelcodepython{Python code} \def\labelpseudocode{Pseudocode} \def\labelconsolepythondebut{Start of Python console} \def\labelconsolepythonfin{End of Python console} \def\labelsepdec{.} \fi \if@pfllngde \def\labelcodepython{Python-Code} \def\labelpseudocode{Pseudocódigo} \def\labelconsolepythondebut{Beginn der Python-Konsole} \def\labelconsolepythonfin{Ende der Python-Konsole} \def\labelsepdec{,} \fi \if@pfllnges \def\labelcodepython{Código Python} \def\labelpseudocode{Pseudocode} \def\labelconsolepythondebut{Inicio de la consola de Python} \def\labelconsolepythonfin{Fin de la consola de Python} \def\labelsepdec{,} \fi %%=====FONTAWESOME... \if@fafive \RequirePackage{fontawesome5} \fi \if@fasix \RequirePackage{fontawesome6} \fi \if@faseven \RequirePackage{fontawesome7} \fi \def\pflfacog{} \def\pflfapseudocode{} \def\pflfapcode{} \def\pflfaclone{} \def\pflfapython{} \@ifpackageloaded{fontawesome5}% {% \def\pflfacog{\faIcon{cog}}% \def\pflfapseudocode{\faFileCode}% \def\pflfapcode{\faCode}% \def\pflfaclone{\faClone}% \def\pflfapython{\faPython}% }% {} \@ifpackageloaded{fontawesome6} {% \def\pflfacog{\faIcon{gear}}% \def\pflfapseudocode{\faFileCode}% \def\pflfapcode{\faCode}% \def\pflfapython{\faPython}% }% {}% \@ifpackageloaded{fontawesome7}% {% \def\pflfacog{\faIcon{gear}}% \def\pflfapseudocode{\faFileCode}% \def\pflfapcode{\faCode}% \def\pflfapython{\faPython}% }% {}% %%=====several version of \geqslant\geq + \leqslant\leq (ok ?) \def\pflgeq{\geqslant}% \def\pflleq{\leqslant}% %%------LIBRAIRIES/BIBIOTHÈQUES \ExplSyntaxOn \cs_new_protected:Npn \proflycee_use_library:n #1 { % Ces modules sont toujours testés même si "most" est présent \str_if_in:nnT {#1} {piton} { \file_input:n { proflycee-tools-piton.tex } } \str_if_in:nnT {#1} {espace} { \file_input:n { proflycee-tools-espace.tex } } \str_if_in:nnT {#1} {space} { \file_input:n { proflycee-tools-espace.tex } } \str_if_in:nnT {#1} {ecritures} { \file_input:n { proflycee-tools-ecritures.tex } } \str_if_in:nnT {#1} {mathwriting} { \file_input:n { proflycee-tools-ecritures.tex } } \str_if_in:nnT {#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 \file_input:n { proflycee-tools-pythontex.tex } } \str_if_in:nnT {#1} {cas} { \RequirePackage { FenetreCas } } \str_if_in:nnT {#1} {tikz2d} { \RequirePackage { tikz2d-fr } } \str_if_in:nnT {#1} {tikz3d} { \RequirePackage { tikz3d-fr } } } % Interface LaTeX2e : \useproflyclib{...} \NewDocumentCommand \useproflyclib { m } { \proflycee_use_library:n {#1} } % Macro pour activer une langue (et désactiver les autres) \NewDocumentCommand\setproflyclng{ m }{% % Désactiver tous les booléens de langue \@pfllngfrfalse \@pfllngenfalse \@pfllngdefalse \@pfllngesfalse % Activer le booléen correspondant à la langue choisie \str_case_e:nnF {#1} { {fr} {\@pfllngfrtrue} % Français {en} {\@pfllngentrue} % Anglais {de} {\@pfllngdetrue} % Allemand {es} {\@pfllngestrue} % Espagnol }{ % Cas par défaut (si la langue n'est pas reconnue) \PackageError{proflycee}{Langue~'#1'~non~reconnue.~Utilisez~fr,~en,~de~ou~es.}{} }% \if@pfllngfr \def\labelcodepython{Code~Python} \def\labelpseudocode{Pseudo-Code} \def\labelconsolepythondebut{Début~de~la~console~Python} \def\labelconsolepythonfin{Fin~de~la~console~Python} \def\labelsepdec{,} \fi \if@pfllngen \def\labelcodepython{Python~code} \def\labelpseudocode{Pseudocode} \def\labelconsolepythondebut{Start~of~Python~console} \def\labelconsolepythonfin{End~of~Python~console} \def\labelsepdec{.} \fi \if@pfllngde \def\labelcodepython{Python-Code} \def\labelpseudocode{Pseudocódigo} \def\labelconsolepythondebut{Beginn~der~Python-Konsole} \def\labelconsolepythonfin{Ende~der~Python-Konsole} \def\labelsepdec{,} \fi \if@pfllnges \def\labelcodepython{Código~Python} \def\labelpseudocode{Pseudocode} \def\labelconsolepythondebut{Inicio~de~la~consola~de~Python} \def\labelconsolepythonfin{Fin~de~la~consola~de~Python} \def\labelsepdec{,} \fi } \ExplSyntaxOff \RequirePackage{ProfLycee-Macros} %%------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} %%------PictosBac \RequirePackage{ProfLycee-Pictosbac} \endinput