% Author.............: C. Pierquet % licence............: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt % licence cliparts...: CC0 from openclipart or svgrepo \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{ProfLycee-Light}[2025/12/18 4.00a Aide pour l'utilisation de LaTeX en lycee] %4.00a Refonte du fonctionnement, et reprise de la numérotation pfl %%=====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 %%=====Mathtools (la base) \RequirePackage{mathtools} %%=====Packages utiles et indispensables \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{iftex} \RequirePackage{tikz} \usetikzlibrary{calc} \usetikzlibrary{decorations,decorations.pathreplacing,decorations.markings,arrows,arrows.meta,shapes.geometric,decorations.pathmorphing} \if@loadtikzbabel \usetikzlibrary{babel} \fi \RequirePackage{ifthen} \RequirePackage{xstring} \RequirePackage{xintexpr} \RequirePackage{xintbinhex} \RequirePackage{xinttools} \RequirePackage{randomlist} \RequirePackage{simplekv} \RequirePackage{listofitems} \RequirePackage{tkz-tab} \RequirePackage{tabularray} \RequirePackage{settobox} \RequirePackage{hologo} \RequirePackage{fancyvrb} \RequirePackage{nicefrac} \RequirePackage{siunitx} \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 \RequirePackage{tcolorbox}% \tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks} %%=====LABELS MULTILANGUES \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}% %%=====COULEURS PERSO \definecolor{CouleurVertForet}{HTML}{1F8B36} %ForestGreen \colorlet{MotsClesPseudoCodeA}{blue!75} \colorlet{MotsClesPseudoCodeB}{green!50!black} \colorlet{MotsClesPseudoCodeChaine}{red!75} %%=====MACROS INTERNES \RequirePackage{ProfLycee-Macros} %%=====LIBRAIRIES/BIBIOTHÈQUES \ExplSyntaxOn \cs_new_protected:Npn \proflycee_use_library:n #1 { % si "most" est présent, charger le pack complet \str_if_in:nnTF {#1} {most} { \file_input:n { proflycee-tools-analyse.tex } \file_input:n { proflycee-tools-graphiques.tex } \file_input:n { proflycee-tools-listings.tex } \file_input:n { proflycee-tools-trigo.tex } \file_input:n { proflycee-tools-probas.tex } \file_input:n { proflycee-tools-stats.tex } \file_input:n { proflycee-tools-arithm.tex } \file_input:n { proflycee-tools-aleatoire.tex } \file_input:n { proflycee-tools-suites.tex } \file_input:n { proflycee-tools-cliparts.tex } \RequirePackage { ProfLycee-Pictosbac } } { % sinon, chargements modulaires \str_if_in:nnT {#1} {analyse} { \file_input:n { proflycee-tools-analyse.tex } } \str_if_in:nnT {#1} {analysis} { \file_input:n { proflycee-tools-analyse.tex } } \str_if_in:nnT {#1} {graphiques} { \file_input:n { proflycee-tools-graphiques.tex } } \str_if_in:nnT {#1} {listings} { \file_input:n { proflycee-tools-listings.tex } } \str_if_in:nnT {#1} {trigo} { \file_input:n { proflycee-tools-trigo.tex } } \str_if_in:nnT {#1} {probas} { \file_input:n { proflycee-tools-probas.tex } } \str_if_in:nnT {#1} {stats} { \file_input:n { proflycee-tools-stats.tex } } \str_if_in:nnT {#1} {arithm} { \file_input:n { proflycee-tools-arithm.tex } } \str_if_in:nnT {#1} {aleatoire} { \file_input:n { proflycee-tools-aleatoire.tex } } \str_if_in:nnT {#1} {random} { \file_input:n { proflycee-tools-aleatoire.tex } } \str_if_in:nnT {#1} {suites} { \file_input:n { proflycee-tools-suites.tex } } \str_if_in:nnT {#1} {seq} { \file_input:n { proflycee-tools-suites.tex } } \str_if_in:nnT {#1} {geom} { \file_input:n { proflycee-tools-geom.tex } } \str_if_in:nnT {#1} {cliparts} { \file_input:n { proflycee-tools-cliparts.tex } } \str_if_in:nnT {#1} {pictosbac} { \RequirePackage { ProfLycee-Pictosbac } } } % 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} {complexes} { \file_input:n { proflycee-tools-complexes.tex } } \str_if_in:nnT {#1} {recreat} { \file_input:n { proflycee-tools-recreat.tex } } \str_if_in:nnT {#1} {competences} { \file_input:n { proflycee-tools-competences.tex } } \str_if_in:nnT {#1} {exams} { \file_input:n { proflycee-tools-exams.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 \endinput