%%% OLD (pdfLaTeX) %%%
%\usepackage{lmodern}
%\usepackage[french]{babel}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}

%%% NEW %%%
\usepackage[french]{babel}
\usepackage{iftex}
\ifPDFTeX
   \usepackage[utf8]{inputenc}
   \usepackage[T1]{fontenc}
   \usepackage{lmodern}
\else
   \ifXeTeX
     \usepackage{fontspec}
   \else 
     \usepackage{luatextra}
   \fi
   \defaultfontfeatures{Ligatures=TeX}
\fi
\usepackage{lettrine, lipsum, hologo, epigraph} % Pour mettre des lettrines - Pour les tests - Pour les logos LaTeX - Pour les épigraphes

\usepackage{fancyhdr, fourier-orns} % En-têtes et pieds de pages
\fancyhf{} % Tout effacer
\fancypagestyle{main}{
	\renewcommand{\headrule}{\hrulefill\raisebox{-2.1pt}{\quad\decofourleft\decotwo\decofourright\quad}\hrulefill}
	\fancyhead[L]{\textsc{\nouppercase{\leftmark}}} % Mettre l'en-tête en small capitals
	\renewcommand{\footrulewidth}{0pt}
	\fancyfoot[C]{\thepage}
}
\pagestyle{plain} % Style "main" appliqué plus tard

\usepackage{enumitem, multicol, pifont, eurosym, fontawesome5} % Pour les listes à puce
\setlist[itemize, 1]{label = {--}, itemsep = \baselineskip}
\setlist[enumerate, 1]{label = \arabic*), itemsep = \baselineskip}

\usepackage{amsmath, amsfonts, amssymb, mathrsfs, esvect, stmaryrd} % Pour faire des maths

\usepackage{array, booktabs, longtable, multirow} % Pour les tableaux
\renewcommand{\arraystretch}{1.3}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\usepackage[dvipsnames]{xcolor} % Ok pour le moment (avant tcolorbox)
% Si problème : \PassOptionsToPackage{dvipsnames}{xcolor} avant documentclass
\usepackage[breakable, listings, raster, skins]{tcolorbox} % Boîtes personnalisables
\lstset{literate = {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {ù}{{\`u}}1 {û}{{\^u}}1 {ç}{{\c{}c}}1 {°}{{\degres{}}}1} % Pour résoudre le problème des accents dans le code (listings sous tcolorbox)
\usepackage{upquote} % Pour des apostrophes droites (verbatim / listings)
\usepackage{accsupp} % Pour garantir la numérotation des lignes de code

\usepackage{graphicx, float, subcaption} % Pour les images
\graphicspath{{./Images/}} % Sous-répertoire pour les images

\usepackage{pgfornament, pgfplots} % TikZ et tracé de fonctions
\usetikzlibrary{arrows.meta, babel, decorations.text, mindmap, positioning, shadows, shapes.geometric, shapes.misc, shapes.multipart, shapes.symbols, spy, trees}
\pgfplotsset{compat=1.18}

\usepackage{pdfpages, pdflscape, qrcode} % Pour inclure des PDF -- Pour les pages au format paysage -- Pour le QR Code

\usepackage[hyphens]{url} % Pour des césures correctes dans les URLs
\usepackage[pdfauthor = {{Adrien Bouzigues -- I13 CL215}}, pdftitle = {{Initiation à LaTeX -- guide-latex-fr}}, pdfstartview = Fit, pdfpagelayout = SinglePage, pdfnewwindow = true, bookmarksnumbered = true, breaklinks, colorlinks, linkcolor = red, urlcolor = RawSienna, citecolor = cyan, linktoc = all]{hyperref} % Renvois -- Options Adobe

% Chargement après hyperref selon le guide d'utilisation
\usepackage[os = win]{menukeys} % Pour "écrire" des touches claviers
\renewmenumacro{\keys}[+]{shadowedroundedkeys} % Style choisi pour les touches -- [+] = séparateur

% Numérotation correcte des différentes parties
\makeatletter\@addtoreset{section}{chapter}\makeatother % RAZ des numéros de section après un chapitre
\renewcommand{\thepart}{\Roman{part}}
\renewcommand{\thechapter}{\arabic{chapter}}
\renewcommand{\thesection}{\thechapter.\arabic{section}}