\documentclass[ french, compacttoc, twocolumntoc, apmep, faketext, margin=1cm, vspacing=0.85, theme=fjord, mainface=Zilla Slab, sansface=Work Sans, sansfaceoptions={BoldFont = {Work Sans SemiBold}, Scale=0.9}, monoface=iAWriterDuoV.ttf, monofacescale=0.9, abstracttitle={}, monofaceoptions={UprightFont={iAWriterDuoV.ttf}, UprightFeatures = { RawFeature={axis={wght=430}} }, BoldFont={iAWriterDuoV.ttf}, BoldFeatures={RawFeature={+axis={wght=700}}}}, mathface=Concrete Math, ]{neoschool} \title{La classe \texttt{neoschool} (v1.2.0)} \author{Razik Ikhlef \textemdash{} \href{https://apps.edulatex.xyz}{https://apps.edulatex.xyz} \textemdash{} \href{mailto:razik.ikhlef@csilyon.fr}{razik.ikhlef@csilyon.fr}} \date{\today} \begin{document} \maketitle \vspace*{-.25cm} \begin{abstract} La classe \texttt{neoschool} propose aux enseignants du secondaire un ensemble d'outils pour concevoir leurs documents pédagogiques (évaluations, supports de cours, fiches d'exercices avec leur correction, etc). Pour répondre aux différents besoins, elle propose plus de soixante thèmes de couleurs prédéfinis, des options de classe variées pour la mise en page et la typographie, des environnements spécialisés, des commandes dédiées et différents styles d'en-têtes préformatés pour chaque type de document. Elle intègre plusieurs dizaines d'extensions LaTeX couramment utilisées, ce qui allège considérablement le préambule et évite autant que possible les incompatibilités. Multilingue, elle prend en charge le français, l'anglais et l'allemand. \end{abstract} \vspace*{-0.35cm} \tableofcontents \section{Extensions chargées} Les extensions suivantes sont automatiquement chargées par la classe \texttt{neoschool}. \begin{multicols}{4} \begin{itemize}[label={}] \item \texttt{adforn} \item \texttt{adjustbox} \item \texttt{algpseudocode} \item \texttt{amsmath} \item \texttt{babel} \item \texttt{bookmark} \item \texttt{calc} \item \texttt{changepage} \item \texttt{colortbl} \item \texttt{environ} \item \texttt{fontawesome5} \item \texttt{forest} \item \texttt{iftex} \item \texttt{kvoptions} \item \texttt{lastpage} \item \texttt{listings} \item \texttt{marginnote} \item \texttt{microtype} \item \texttt{multicol} \item \texttt{nccmath} \item \texttt{needspace} \item \texttt{pdftexcmds} \item \texttt{pgffor} \item \texttt{pgfplots} \item \texttt{pifont} \item \texttt{qrcode} \item \texttt{scrlayer-scrpage} \item \texttt{setspace} \item \texttt{silence} \item \texttt{siunitx} \item \texttt{tabularray} \item \texttt{tasks} \item \texttt{tcolorbox} \item \texttt{textcase} \item \texttt{tikz} \item \texttt{tikzpagenodes} \item \texttt{tikzsymbols} \item \texttt{todonotes} \item \texttt{ulem} \item \texttt{wrapfig} \item \texttt{xcolor} \item \texttt{xhfill} \item \texttt{xkeyval} \item \texttt{xsim} \item \texttt{xstring} \end{itemize} \end{multicols} La compilation en \texttt{pdflatex} charge les extensions \texttt{fontenc} (avec l'option \texttt{T1}), \texttt{inputenc} (avec l'option \texttt{utf8}), \texttt{newpxtext} et \texttt{newpxmath}. La compilation en \texttt{lualatex} rend disponible les extensions \texttt{fontspec}, \texttt{luacas}, \texttt{lua-ul}, \texttt{luacolor} et applique les polices \texttt{TeX Gyre Pagella} et \texttt{TeX Gyre Heros} en plus de \texttt{newpxmath}. \subsection{Extensions optionnelles} \begin{itemize} \item \textbf{faketext} : charge \texttt{blindtext} et \texttt{lipsum} pour générer du texte factice. \item \textbf{mathastext} : charge \texttt{mathastext} pour utiliser la police du texte en mathématiques. \item \textbf{math} : charge \texttt{annotate-equations}, \texttt{bm}, \texttt{cancel}, \texttt{esvect}, \texttt{mathrsfs}, \texttt{ncccomma}, \texttt{numprint}, \texttt{tdsfrmath} (avec les options \texttt{suite} et \texttt{taupe}), \texttt{tkz-euclide}, \texttt{witharrows} et \texttt{xlop}. \item \textbf{notes}/\textbf{leftnotes}/\textbf{rightnotes} : active les notes marginales (à gauche, à droite ou alternées). \item \textbf{apmep} : charge un ensemble d'extensions pour compiler les sujets d'annales APMEP, incluant \texttt{esvect}, \texttt{fourier-orns}, \texttt{numprint}, \texttt{pstricks} et son écosystème, \texttt{tabularx}, \texttt{textcomp}, \texttt{tkz-tab} et \texttt{variations}. \item \textbf{mathics} : charge \texttt{asymptote} et \texttt{latexalpha2} pour le calcul formel via Mathics. \end{itemize} \section{Options de configuration} \subsection{Langue} \begin{itemize} \item \textbf{english}, \textbf{french}, \textbf{german} : active les traductions et conventions liées à chaque langue. Ces options affectent les intitulés des environnements, la typographie et les conventions mathématiques. \item \textbf{nofrenchlist} : désactive le style français des listes (remet des points à la place des tirets). \item \textbf{frenchlistaspar} : traite les listes comme des paragraphes en français. \item \textbf{frenchmath} : applique les conventions mathématiques françaises (majuscules et lettres grecques droites). \end{itemize} \subsection{Apparence globale} \subsubsection{Thèmes prédéfinis} L'option \textbf{theme}=\texttt{nom} définit le thème de couleurs du document. Les thèmes disponibles sont organisés par catégories. \begin{itemize} \item \textbf{Thèmes modernes :} \texttt{cambridge}, \texttt{fjord}, \texttt{granite}, \texttt{graphite}, \texttt{midnight} (défaut), \texttt{nocturne}, \texttt{nordic}, \texttt{oceanic}, \texttt{oxford}, \texttt{petrol}, \texttt{slate}. \item \textbf{Thèmes bleus :} \texttt{academic}, \texttt{azure}, \texttt{book}, \texttt{klein}, \texttt{pacific}, \texttt{prussian}, \texttt{royalblue}, \texttt{scholar}, \texttt{skyblue}. \item \textbf{Thèmes verts :} \texttt{classic}, \texttt{dartmouth}, \texttt{emerald}, \texttt{forest}, \texttt{hunter}, \texttt{jungle}, \texttt{olive}, \texttt{reef}, \texttt{science}, \texttt{teal}. \item \textbf{Thèmes rouges :} \texttt{burgundy}, \texttt{cherry}, \texttt{crimson}, \texttt{deeporange}, \texttt{firebrick}, \texttt{pepper}, \texttt{scarlet}. \item \textbf{Thèmes bruns :} \texttt{coffee}, \texttt{goldenrod}, \texttt{monastery}, \texttt{rosewood}, \texttt{sahara}, \texttt{sienna}, \texttt{terra}, \texttt{titian}, \texttt{tuscany}, \texttt{vandyke}, \texttt{vintage}. \item \textbf{Thèmes violets :} \texttt{amethyst}, \texttt{dusk}, \texttt{indigo}, \texttt{iris}, \texttt{lavender}, \texttt{marrs}, \texttt{modern}, \texttt{modern2}, \texttt{mulberry}, \texttt{violetrose}. \item \textbf{Thèmes sombres :} \texttt{dracula}, \texttt{night}, \texttt{mocha}, \texttt{nord}. \end{itemize} \begin{code}{latex} \documentclass[theme=emerald]{neoschool} \end{code} \subsubsection{Styles d'accent} L'option \textbf{accent}=\texttt{style} définit la façon dont les couleurs du thème sont appliquées aux éléments du document. \begin{itemize} \item \textbf{strong} : couleurs vives et contrastées pour tous les éléments. \item \textbf{emphasized} : titres colorés, texte neutre. \item \textbf{gradient} : dégradé de couleurs à travers les niveaux de titres. \item \textbf{soft} : couleurs atténuées, texte noir. \item \textbf{flat} : couleur primaire dominante partout. \item \textbf{light} (défaut) : couleurs légères, équilibrées. \item \textbf{structured} : couleurs structurelles, code en noir. \item \textbf{minimal} : couleurs minimales, accent sur le contenu. \item \textbf{mono} : monochrome basé sur la couleur primaire. \item \textbf{technical} : style technique, fond blanc, texte noir. \item \textbf{print} : noir et blanc pour impression. \item \textbf{accessible} : fond crème, couleurs contrastées pour l'accessibilité. \end{itemize} \subsubsection{Profils de couleurs} L'option \textbf{colorprofile}=\texttt{profil} définit la répartition des couleurs entre les types d'environnements. \begin{itemize} \item \textbf{mathbook} (défaut) : primaire pour les fondations (définitions), secondaire pour la théorie (théorèmes), tertiaire pour les exercices et exemples. \item \textbf{exam} : primaire pour les exercices, secondaire pour les fondations et la théorie. \item \textbf{core} : primaire pour les fondations et la théorie, secondaire pour les exercices. \item \textbf{school} : primaire pour les exercices et exemples, secondaire pour la théorie, tertiaire pour les fondations. \end{itemize} \subsubsection{Modes de couleur} \begin{itemize} \item \textbf{unicolor} : utilise une couleur unique pour tous les environnements. \item \textbf{bicolor} : utilise deux couleurs complémentaires. \end{itemize} \subsubsection{Personnalisation des couleurs} \begin{itemize} \item \textbf{globalcolor}=\texttt{couleur} : couleur du texte principal (défaut : \texttt{black}). \item \textbf{titlecolor}=\texttt{couleur} : couleur du titre principal. \item \textbf{titlehexcolor}=\texttt{RRGGBB} : couleur du titre en hexadécimal. \item \textbf{headcolor}=\texttt{couleur} : couleur des titres \texttt{\textbackslash section}. \item \textbf{subcolor}=\texttt{couleur} : couleur des titres \texttt{\textbackslash subsection}. \item \textbf{subsubcolor}=\texttt{couleur} : couleur des titres \texttt{\textbackslash subsubsection}. \item \textbf{headfootcolor}=\texttt{couleur} : couleur des en-têtes et pieds de page. \end{itemize} \subsubsection{Apparence des boîtes} \paragraph{Cadres et fonds :} \begin{itemize} \item \textbf{thmnoframe} / \textbf{thmframe} : (dés)active les cadres des théorèmes. \item \textbf{thmnoback} / \textbf{thmback} : (dés)active les fonds des théorèmes. \item \textbf{codenoframe} / \textbf{codeframe} : (dés)active les cadres du code. \item \textbf{codenoback} / \textbf{codeback} : (dés)active les fonds du code. \item \textbf{codenonum} / \textbf{codenum} : (dés)active la numérotation des lignes. \item \textbf{adnoframe} / \textbf{adframe} : (dés)active les cadres des admonitions (défaut : sans cadre). \item \textbf{adnoback} / \textbf{adback} : (dés)active les fonds des admonitions (défaut : sans fond). \item \textbf{exnoback} / \textbf{exback} : (dés)active les fonds des exercices. \item \textbf{noback} / \textbf{back} : (dés)active tous les fonds. \item \textbf{noframe} / \textbf{frame} : (dés)active tous les cadres. \item \textbf{clean} : désactive tous les cadres et fonds. \item \textbf{styled} : active tous les cadres et fonds. \end{itemize} \paragraph{Opacité des fonds :} \begin{itemize} \item \textbf{boxopacity}=\texttt{n} : opacité globale des fonds (0--100, défaut : 0). \item \textbf{thmboxopacity}=\texttt{n} : opacité des théorèmes. \item \textbf{exboxopacity}=\texttt{n} : opacité des exercices. \item \textbf{codeboxopacity}=\texttt{n} : opacité du code (défaut : 7). \item \textbf{adboxopacity}=\texttt{n} : opacité des admonitions. \item \textbf{mathboxopacity}=\texttt{n} : opacité des surlignages mathématiques (défaut : 15). \end{itemize} \paragraph{Arrondis des coins :} \begin{itemize} \item \textbf{boxarc}=\texttt{dim} : arrondi pour \texttt{neobox} et \texttt{answerframe} (défaut : \texttt{0pt}). \item \textbf{thmboxarc}=\texttt{dim} : arrondi pour les théorèmes (défaut : \texttt{0pt}). \item \textbf{exboxarc}=\texttt{dim} : arrondi pour les exercices (défaut : \texttt{0pt}). \item \textbf{codeboxarc}=\texttt{dim} : arrondi pour les boîtes de code (défaut : \texttt{0pt}). \item \textbf{adboxarc}=\texttt{dim} : arrondi pour les admonitions (défaut : \texttt{0pt}). \item \textbf{sideboxarc}=\texttt{dim} : arrondi pour \texttt{sidebyside} (défaut : \texttt{0pt}). \item \textbf{pseudoboxarc}=\texttt{dim} : arrondi pour \texttt{pseudocode} (défaut : \texttt{0pt}). \end{itemize} \paragraph{Terminateurs de titres :} \begin{itemize} \item \textbf{thmterminator}=\texttt{texte} : terminateur après le titre des théorèmes (défaut : \texttt{.\textbackslash !}). \item \textbf{thmseparator}=\texttt{texte} : séparateur entre le nom et le titre personnalisé. \item \textbf{adterminator}=\texttt{texte} : terminateur pour les admonitions (défaut : \texttt{.\textbackslash !}). \item \textbf{exterminator}=\texttt{texte} : terminateur pour les exercices (défaut : \texttt{.}). \item \textbf{boxtitle}=\texttt{texte} : titre par défaut pour les boîtes génériques. \end{itemize} \subsubsection{Autres options d'affichage} \begin{itemize} \item \textbf{scale} : harmonise la taille des polices en \texttt{lualatex}/\texttt{xelatex}. \item \textbf{inlinecodebox} : affiche le code en ligne (\texttt{\textbackslash texttt}) dans une boîte encadrée et colorée. \item \textbf{inlineadmonition} (défaut) : titre et contenu des admonitions sur la même ligne. \item \textbf{blockadmonition} : force le contenu des admonitions à s'afficher sous le titre. \end{itemize} \subsection{Typographie} \subsubsection{Polices de caractères} \begin{itemize} \item \textbf{mainface}=\texttt{Police} : police principale (avec empattements). \item \textbf{mainfaceoptions}=\texttt{options} : options pour la police principale. \item \textbf{mainfacescale}=\texttt{facteur} : facteur d'échelle (défaut : 1.0). \item \textbf{sansface}=\texttt{Police} : police sans empattements. \item \textbf{sansfaceoptions}=\texttt{options} : options pour la police sans empattements. \item \textbf{sansfacescale}=\texttt{facteur} : facteur d'échelle (défaut : 1.0). \item \textbf{monoface}=\texttt{Police} : police à chasse fixe (code). \item \textbf{monofaceoptions}=\texttt{options} : options pour la police mono. \item \textbf{monofacescale}=\texttt{facteur} : facteur d'échelle (défaut : 1.0). \item \textbf{mathface}=\texttt{Police} : police mathématique. \item \textbf{mathfaceoptions}=\texttt{options} : options pour la police mathématique. \item \textbf{mathfacescale}=\texttt{facteur} : facteur d'échelle pour les maths. \item \textbf{facefamily}=\texttt{Famille} : famille complète de polices. \item \textbf{facefamilyoptions}=\texttt{options} : options pour la famille. \item \textbf{sfbody} : utilise la police sans empattements pour le corps du texte. \item \textbf{sfall} : utilise la police sans empattements pour tout le document. \item \textbf{mathastext} : utilise la police du texte pour les mathématiques. \end{itemize} \subsubsection{Styles des titres} \paragraph{Styles globaux :} \begin{itemize} \item \textbf{headstyle}=\texttt{style} : famille de police (défaut : \texttt{sffamily}). \item \textbf{headweight}=\texttt{graisse} : graisse (défaut : \texttt{bfseries}). \item \textbf{headshape}=\texttt{forme} : forme (défaut : \texttt{upshape}). \end{itemize} \paragraph{Titre principal :} \begin{itemize} \item \textbf{titlestyle}=\texttt{style} : hérite de \texttt{headstyle}. \item \textbf{titleweight}=\texttt{graisse} : hérite de \texttt{headweight}. \item \textbf{titleshape}=\texttt{forme} : défaut \texttt{upshape}. \item \textbf{titlesize}=\texttt{taille} : taille du titre (défaut : \texttt{hugeminus}). \item \textbf{titlealign}=\texttt{align} : alignement (défaut : \texttt{center}). \item \textbf{titledecor}=\texttt{décor} : décoration sous le titre (défaut : \texttt{none}). \item[] Valeurs : \texttt{none}, \texttt{ornament}, \texttt{rule}, \texttt{midrule}, \texttt{fullrule}. \end{itemize} \paragraph{Sections :} \begin{itemize} \item \textbf{sectionnumstyle}=\texttt{style} : apparence du numéro (défaut : \texttt{circle}). \item[] Valeurs : \texttt{circle}, \texttt{box}, \texttt{dash}, \texttt{plain}. \item \textbf{sectiontextstyle}=\texttt{style} : casse du texte (défaut : \texttt{sc}). \item[] Valeurs : \texttt{sc}, \texttt{upper}, \texttt{lower}. \item \textbf{sectionstyle}=\texttt{style} : style visuel (défaut : \texttt{normal}). \item[] Valeurs : \texttt{normal}, \texttt{ornaments}, \texttt{underline}, \texttt{highlighted}, \texttt{shadedline}. \item \textbf{sectionalign}=\texttt{align} : alignement (défaut : \texttt{center}). \end{itemize} \paragraph{En-têtes et pieds de page :} \begin{itemize} \item \textbf{headfootstyle}=\texttt{style} : hérite de \texttt{titlestyle}. \end{itemize} \subsection{Mise en page} \subsubsection{Marges et espacement} \begin{itemize} \item \textbf{margin}=\texttt{dim} : largeur des marges horizontales (défaut : \texttt{1.5cm}). \item \textbf{indent}=\texttt{dim} : taille de l'indentation (défaut : \texttt{1em}). \item \textbf{noindent} : supprime l'indentation en début de paragraphe. \item \textbf{vspacing}=\texttt{facteur} : facteur de compression/dilatation verticale (défaut : \texttt{1.0}). Valeurs entre 0.25 et 2.0. \end{itemize} \subsubsection{Notes marginales} \begin{itemize} \item \textbf{noteswidth}=\texttt{dim} : largeur des notes marginales (active \texttt{todonotes}). \item \textbf{notesposition}=\texttt{position} : position des notes (\texttt{left}, \texttt{right}, ou alternées par défaut). \end{itemize} \subsubsection{En-têtes et pieds de page} \begin{itemize} \item \textbf{fullheader} : active l'en-tête/pied de page complets (nécessite \texttt{\textbackslash neoheader}). \item \textbf{nofooter} : supprime l'en-tête et le pied de page (style \texttt{empty}). \item \textbf{pageonlyfooter} : affiche uniquement le numéro de page centré. \item \textbf{headerules}=\texttt{style} : filets (défaut : \texttt{none}). Valeurs : \texttt{none}, \texttt{headrule}, \texttt{footrule}, \texttt{headfootrule}. \end{itemize} \subsubsection{Table des matières} \begin{itemize} \item \textbf{compacttoc} : réduit les espacements dans la table des matières. \item \textbf{monotoc} : table des matières en couleur du texte (\texttt{globalcolor}). \item \textbf{twocolumntoc} : affiche la table des matières sur deux colonnes. \end{itemize} \subsubsection{Modes de sortie} Ces options permettent d'imprimer plusieurs pages logiques sur une seule page physique. \begin{itemize} \item \textbf{2a5toa4} : 2 pages A5 identiques sur une feuille A4 paysage. \item \textbf{2a4toa3} : 2 pages A4 identiques sur une feuille A3 paysage. \item \textbf{4a5toa3} : 4 pages A5 identiques sur une feuille A3. \item \textbf{2toa3} : 2 pages A4 différentes sur une feuille A3 paysage. \item \textbf{bookleta5} : livret A5 (pages A5 sur feuilles A4 pliées). \item \textbf{bookleta4} : livret A4 (pages A4 sur feuilles A3 pliées). \end{itemize} \subsection{Options diverses} \begin{itemize} \item \textbf{abstracttitle}=\texttt{Titre} : titre de l'environnement \texttt{abstract} (défaut : \texttt{DEFAULT}). \item \textbf{boldlistlabels} : met en gras les labels des listes. \item \textbf{totalpoints}=\texttt{n} : total de points pour le barème (défaut : 20). \end{itemize} \section{Styles de document} \subsection{Styles de titre (\texttt{titlelayout})} L'option \textbf{titlelayout}=\texttt{style} définit l'apparence de la première page et du titre. \subsubsection{Styles d'examen} \begin{itemize} \item \textbf{exam} : style complet avec tableau pour nom, classe, date, et bandeau de notation. \item \textbf{shortexam} : style compact pour examens. \item \textbf{mockexam} : style spécifique pour épreuves type Bac/Brevet blanc. \end{itemize} \subsubsection{Styles d'évaluation} \begin{itemize} \item \textbf{eval} : style standard, informations dans les coins. \item \textbf{evalicons} : style \texttt{eval} avec icônes personnalisables. \item \textbf{evalgrade} : style \texttt{eval} avec bandeau de notation. \item \textbf{evaliconsgrade} : combine \texttt{evalicons} et \texttt{evalgrade}. \item \textbf{shorteval} : style compact sur une ligne. \end{itemize} \subsubsection{Styles avec effets visuels} \begin{itemize} \item \textbf{bubbles} : titre centré sur fond de bulles colorées. \item \textbf{topbubbles} : bulles en haut, titre en dessous. \item \textbf{bottombubbles} : bulles en bas, titre au-dessus. \item \textbf{geometric} : motifs géométriques en arrière-plan. \item \textbf{banner} : titre dans un bandeau décoratif. \end{itemize} \subsubsection{Styles classiques} \begin{itemize} \item \textbf{default} : titre centré standard. \item \textbf{titlebox} : titre dans un bandeau coloré en haut de page. \item \textbf{tighttitle} : titre compact sans boîte. \item \textbf{onlytitle} : affiche uniquement le titre centré. \item \textbf{shorttitle} : titre compact centré sur une ligne. \item \textbf{shortlesson} : style compact pour fiches de cours. \end{itemize} \begin{code}{latex} \documentclass[titlelayout=exam]{neoschool} \neoheader{ type = Devoir Surveillé n°1, school = Lycée Imaginaire, level = Terminale Spé Maths, duration = 2h, calculator = exam } \title{Suites numériques} \date{21 octobre 2025} \subject{Mathématiques} \begin{document} \maketitle ... \end{document} \end{code} \subsection{Configuration de l'en-tête (\texttt{\textbackslash neoheader})} Cette commande configure les informations pour les styles \texttt{exam}, \texttt{eval}, \texttt{mockexam}, \texttt{shortlesson} et l'option \texttt{fullheader}. \begin{code}{latex} \neoheader{ type = {Interrogation de cours}, school = {Collège A. Turing}, academy = {Lyon}, level = {Quatrième}, duration = {20 minutes}, calculator = {false}, % true / false / exam leftcontent = {\faFlask}, rightcontent = {\faCalculator}, leftcontentfill = {true}, rightcontentfill = {true} } \end{code} \section{Environnements mathématiques} Basés sur \texttt{tcolorbox}. \subsection{Styles de théorèmes} L'option \textbf{thmstyle}=\texttt{style} définit l'apparence des environnements de type théorème. Valeurs : \texttt{amslike} (défaut), \texttt{leftrule}, \texttt{elegant}, \texttt{shaded}, \texttt{slanted}, \texttt{sober}, \texttt{classic}, \texttt{classy}, \texttt{boxed}. \subsection{Environnements disponibles} \begin{itemize} \item \textbf{theorem} (réf. : \texttt{thm}) \item \textbf{lemma} (réf. : \texttt{lem}) \item \textbf{corollary} (réf. : \texttt{cor}) \item \textbf{conjecture} (réf. : \texttt{conj}) \item \textbf{proposition} (réf. : \texttt{propo}) \item \textbf{property} (réf. : \texttt{prop}) \item \textbf{definition} (réf. : \texttt{def}) \item \textbf{method} (réf. : \texttt{meth}) \item \textbf{activity} (réf. : \texttt{act}) \item \textbf{application} (réf. : \texttt{appl}) \item \textbf{remark}, \textbf{remarks} (non numérotés) \item \textbf{example}, \textbf{examples} (réf. : \texttt{ex}) \item \textbf{proof} \end{itemize} \subsection{Options des environnements} \begin{itemize} \item \textbf{title}=\texttt{texte} : titre personnalisé. \item \textbf{label}=\texttt{nom} : étiquette pour \texttt{\textbackslash ref}. \item \textbf{colback}=\texttt{couleur} : couleur de fond. \item \textbf{colframe}=\texttt{couleur} : couleur du cadre. \item \textbf{coltitle}=\texttt{couleur} : couleur du titre. \item \textbf{fonttitle}=\texttt{commandes} : formatage du titre. \end{itemize} \subsection{Options de numérotation} \begin{itemize} \item \textbf{sectionthmcounter} : compteurs relatifs à chaque section. \item \textbf{sharedthmcounter} : un seul compteur partagé entre tous les environnements. \item \textbf{thmgroupcounter} : compteur partagé entre théorème, lemme, corollaire, proposition, propriété. \item \textbf{sharedexcounter} : partage le compteur entre exercices et théorèmes. \end{itemize} \subsection{Exemples d'environnements} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{definition}[ title=Nombre premier, label=premier ] Un entier naturel est dit premier s'il admet exactement deux diviseurs distincts : 1 et lui-même. \end{definition} Voir définition~\ref{def:premier}. \end{codeside} \tcblower \begin{definition}[ title=Nombre premier, label=premier ] Un entier naturel est dit premier s'il admet exactement deux diviseurs distincts : 1 et lui-même. \end{definition} Voir définition~\ref{def:premier}. \end{sidebyside} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{theorem}[title=Théorème de Pythagore] Dans un triangle rectangle, le carré de l'hypoténuse est égal à la somme des carrés des deux autres côtés : \[ c^2 = a^2 + b^2 \] \end{theorem} \end{codeside} \tcblower \begin{theorem}[title=Théorème de Pythagore] Dans un triangle rectangle, le carré de l'hypoténuse est égal à la somme des carrés des deux autres côtés : \[ c^2 = a^2 + b^2 \] \end{theorem} \end{sidebyside} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{property} Toute fonction dérivable est continue. \end{property} \begin{proof} Cela découle directement de la définition de la dérivée. \end{proof} \end{codeside} \tcblower \begin{property} Toute fonction dérivable est continue. \end{property} \begin{minipage}{0.95\linewidth} \begin{proof} Cela découle directement de la définition de la dérivée. \end{proof} \end{minipage} \end{sidebyside} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{example} Soit $f(x) = x^2$. Alors $f'(x) = 2x$. \end{example} \begin{remark} La réciproque est fausse : $|x|$ est continue mais non dérivable en $0$. \end{remark} \end{codeside} \tcblower \begin{example} Soit $f(x) = x^2$. Alors $f'(x) = 2x$. \end{example} \begin{remark} La réciproque est fausse : $|x|$ est continue mais non dérivable en $0$. \end{remark} \end{sidebyside} \section{Exercices} Basé sur l'extension \texttt{xsim}. \subsection{Environnements \texttt{exercise} et \texttt{solution}} \subsubsection{Options d'un exercice} \begin{itemize} \item \textbf{points}=\texttt{n} : nombre de points. \item \textbf{bonus-points}=\texttt{n} : points bonus. \item \textbf{level}=\texttt{n} : niveau de difficulté (1--5, affiché en étoiles). \item \textbf{subtitle}=\texttt{texte} : sous-titre. \item \textbf{icon}=\texttt{nom-fa} : icône FontAwesome (nécessite \texttt{exerciseicons}). \item \textbf{topic}=\texttt{thème} : thème pour tri/sélection. \item \textbf{grade}=\texttt{niveau} : niveau de classe. \item \textbf{subject}=\texttt{matière} : matière. \item \textbf{ID}=\texttt{id} : identifiant pour \texttt{\textbackslash exercisenumber\{id\}}. \item \textbf{template}=\texttt{nom} : style d'affichage. \end{itemize} \subsubsection{Styles d'exercices (\texttt{exstyle})} L'option \textbf{exstyle}=\texttt{style} définit l'apparence des exercices. Valeurs : \texttt{inline} (défaut avec \texttt{amslike}), \texttt{boxed}, \texttt{box}, \texttt{elegant-box}, \texttt{shaded-box}, \texttt{slanted-box}, \texttt{sober-box}, \texttt{classic-box}, \texttt{classy-box}, \texttt{rect-box}, \texttt{num-box}, \texttt{ex-num-box}, \texttt{box-hrule}, \texttt{smart-box}, \texttt{section}, \texttt{terminal}, \texttt{hrule}, \texttt{rule-ams}. \subsubsection{Options globales} \begin{itemize} \item \textbf{exerciseicons} : active l'affichage des icônes. \item \textbf{answers} : affiche les solutions après chaque exercice. \item \textbf{answersonly} : affiche uniquement les solutions. \item \textbf{shuffle} : mélange aléatoirement les réponses des QCM. \item \textbf{blocksol} : utilise le template \texttt{sol-block} pour les solutions. \end{itemize} \subsubsection{Exercice avec solution} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{exercise}[ points=4, level=2, subtitle={Calcul de dérivée} ] Calculer la dérivée de $f(x) = x^3 - 2x + 1$. \end{exercise} \begin{solution} En appliquant les règles de dérivation : $f'(x) = 3x^2 - 2$. \end{solution} \end{codeside} \tcblower \begin{exercise}[ points=4, level=2, subtitle={Calcul de dérivée} ] Calculer la dérivée de $f(x) = x^3 - 2x + 1$. \end{exercise} \xsimsetup{solution/print=true} \begin{solution} En appliquant les règles de dérivation : $f'(x) = 3x^2 - 2$. \end{solution} \xsimsetup{solution/print=false} \end{sidebyside} \subsubsection{QCM et choix multiples} \begin{itemize} \item \textbf{choices}\texttt{(\textit{n})} : QCM à réponse unique sur \textit{n} colonnes. \texttt{\textbackslash choice} pour une réponse, \texttt{\textbackslash choice[\textbackslash correct]} pour la bonne réponse. \item \textbf{checkboxes}\texttt{(\textit{n})} : QCM à réponses multiples. \texttt{\textbackslash checkbox} pour une réponse, \texttt{\textbackslash checkbox[\textbackslash correct*]} pour une bonne réponse. \end{itemize} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{exercise}[points=1] Quelle est la dérivée de $f(x)=x^2$ ? \begin{choices}(2) \choice[\correct] $x\mapsto 2x$ \choice $x\mapsto x$ \choice $x\mapsto x^2$ \choice $x\mapsto 2$ \end{choices} \end{exercise} \end{codeside} \tcblower \begin{exercise}[points=1] Quelle est la dérivée de $f(x)=x^2$ ? \begin{choices}(2) \choice[\correct] $x\mapsto 2x$ \choice $x\mapsto x$ \choice $x\mapsto x^2$ \choice $x\mapsto 2$ \end{choices} \end{exercise} \end{sidebyside} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{exercise}[points=2] Cocher les affirmations vraies. \begin{checkboxes}(1) \checkbox[\correct*] $\pi > 3$ \checkbox $\sqrt{2}$ est rationnel \checkbox[\correct*] $0! = 1$ \checkbox $\ln(1) = 1$ \end{checkboxes} \end{exercise} \end{codeside} \tcblower \begin{exercise}[points=2] Cocher les affirmations vraies. \begin{checkboxes}(1) \checkbox[\correct*] $\pi > 3$ \checkbox $\sqrt{2}$ est rationnel \checkbox[\correct*] $0! = 1$ \checkbox $\ln(1) = 1$ \end{checkboxes} \end{exercise} \end{sidebyside} \section{Code informatique} Deux systèmes sont disponibles via les options de classe : \begin{itemize} \item \textbf{listings} (défaut) : coloration syntaxique via l'extension \texttt{listings}. \item \textbf{minted} : coloration syntaxique via \texttt{minted} (nécessite Python, Pygments et \texttt{--shell-escape}). \end{itemize} \subsection{Environnement \texttt{code}} \begin{codeside}[numbers=none]{latex} \begin[options]{code}{langage}[titre][style-boite] ... code ... \end{code} \end{codeside} \begin{itemize} \item \texttt{options} : options de \texttt{listings}/\texttt{minted}. \item \texttt{langage} : \texttt{python}, \texttt{latex}, \texttt{c++}, etc. \item \texttt{titre} : titre optionnel. \item \texttt{style-boite} : style de la boîte. \end{itemize} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{code}{python}[Fonction factorielle] def fact(n): if n <= 1: return 1 return n * fact(n - 1) \end{code} \end{codeside} \tcblower \begin{code}{python}[Fonction factorielle] def fact(n): if n <= 1: return 1 return n * fact(n - 1) \end{code} \end{sidebyside} \subsection{Styles de boîtes de code (\texttt{codestyle})} L'option \textbf{codestyle}=\texttt{style} définit l'apparence des boîtes de code. Valeurs : \texttt{box-leftrule} (défaut), \texttt{box-minimal}, \texttt{box-subtle}, \texttt{box-fancy}, \texttt{box-elegant}, \texttt{box-sober}, \texttt{box-shaded}, \texttt{box-academic}, \texttt{box-diagonal}, \texttt{box-bevel}, \texttt{box-corner}, \texttt{box-rounded}, \texttt{box-downhill}, \texttt{box-toptitle}, \texttt{box-bottomtitle}. \subsection{Options du code} \begin{itemize} \item \textbf{codewidth}=\texttt{facteur} : largeur des blocs (défaut : 1.0). \item \textbf{centeredcode} : centre les blocs de code. \end{itemize} \subsection{Commandes additionnelles} \begin{itemize} \item \texttt{\textbackslash codeinline[\textit{lang}]\{\textit{code}\}} : code en ligne avec coloration. \item \texttt{\textbackslash codeinput[\textit{opt}]\{\textit{lang}\}\{\textit{fichier}\}[\textit{titre}][\textit{style}]} : importe du code depuis un fichier. \end{itemize} \begin{sidebyside}[righthand width=.45\linewidth] \begin{codeside}[numbers=none]{latex} La fonction \codeinline[python]{range(n)} génère les entiers de $0$ à $n-1$. \end{codeside} \tcblower La fonction \codeinline[python]{range(n)} génère les entiers de $0$ à $n-1$. \end{sidebyside} \subsection{Environnement \texttt{pseudocode}} Basé sur \texttt{algpseudocode}. En français, les mots-clés sont traduits automatiquement. Commandes spéciales : \begin{itemize} \item \texttt{\textbackslash Gets} : flèche d'affectation $\leftarrow$. \item \texttt{\textbackslash To} : mot-clé « à » pour les boucles. \end{itemize} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{pseudocode}{Recherche dichotomique} \Require Tableau trié $T$, valeur $v$ \Ensure Indice de $v$ ou $-1$ \State $lo \Gets 0$, $hi \Gets |T| - 1$ \While{$lo \leq hi$} \State $mid \Gets (lo + hi) / 2$ \If{$T[mid] = v$} \State \Return $mid$ \ElsIf{$T[mid] < v$} \State $lo \Gets mid + 1$ \Else \State $hi \Gets mid - 1$ \EndIf \EndWhile \State \Return $-1$ \end{pseudocode} \end{codeside} \tcblower \begin{pseudocode}{Recherche dichotomique} \Require Tableau trié $T$, valeur $v$ \Ensure Indice de $v$ ou $-1$ \State $lo \Gets 0$, $hi \Gets |T| - 1$ \While{$lo \leq hi$} \State $mid \Gets (lo + hi) / 2$ \If{$T[mid] = v$} \State \Return $mid$ \ElsIf{$T[mid] < v$} \State $lo \Gets mid + 1$ \Else \State $hi \Gets mid - 1$ \EndIf \EndWhile \State \Return $-1$ \end{pseudocode} \end{sidebyside} \section{Admonitions} Boîtes colorées avec icônes pour attirer l'attention. \begin{itemize} \item \textbf{note} : remarques générales (\faEdit). \item \textbf{info} : informations complémentaires (\faInfoCircle). \item \textbf{warning} : avertissements (\faExclamationTriangle). \item \textbf{important} : points essentiels (\faExclamationCircle). \item \textbf{tip} : conseils, astuces (\faLightbulb). \item \textbf{reminder} : à retenir (\faBookmark). \item \textbf{summary} : résumé (\faClipboardList). \item \textbf{toolbox} : matériel, prérequis (\faTools). \end{itemize} Chaque environnement accepte \texttt{[\textit{Titre}][\textit{Icône}]}. \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{warning}[Attention][\faSkull] Ne pas diviser par zéro ! \end{warning} \begin{tip} Penser à factoriser d'abord. \end{tip} \end{codeside} \tcblower \begin{warning}[Attention][\faSkull] Ne pas diviser par zéro ! \end{warning} \begin{tip} Penser à factoriser d'abord. \end{tip} \end{sidebyside} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{toolbox}[Matériel nécessaire] Calculatrice, règle, compas. \end{toolbox} \begin{reminder} $\sin^2(x) + \cos^2(x) = 1$ \end{reminder} \end{codeside} \tcblower \begin{toolbox}[Matériel nécessaire] Calculatrice, règle, compas. \end{toolbox} \begin{reminder} $\sin^2(x) + \cos^2(x) = 1$ \end{reminder} \end{sidebyside} \section{Disposition des contenus} \subsection{Positionnement absolu} \texttt{\textbackslash positionobject\{\textit{x}\}\{\textit{y}\}\{\textit{scale}\}\{\textit{contenu}\}} : place du contenu aux coordonnées (\textit{x}, \textit{y}) depuis le coin supérieur gauche. \subsection{Mise en page à deux colonnes} \texttt{\textbackslash splitcontent[\textit{w1}][\textit{gap}]\{\textit{col1}\}\{\textit{col2}\}} : divise l'espace horizontal. \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \splitcontent[0.4][0.05]{% \textbf{Colonne gauche (40\%)} Premier paragraphe... }{% \textbf{Colonne droite (55\%)} Second paragraphe... } \end{codeside} \tcblower \splitcontent[0.4][0.05]{% \textbf{Colonne gauche (40\%)} Premier paragraphe avec du texte pour illustrer la mise en page. }{% \textbf{Colonne droite (55\%)} Second paragraphe avec du contenu additionnel. } \end{sidebyside} \subsection{Environnement \texttt{sidebyside}} Crée deux boîtes \texttt{tcolorbox} côte à côte. \texttt{\textbackslash tcblower} sépare les colonnes. \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{sidebyside}[ title=Comparaison, righthand width=.45\linewidth ] \textbf{Avantages} \begin{itemize} \item Simple \item Rapide \end{itemize} \tcblower \textbf{Inconvénients} \begin{itemize} \item Limité \end{itemize} \end{sidebyside} \end{codeside} \tcblower \begin{sidebyside}[title=Comparaison, righthand width=.45\linewidth] \textbf{Avantages} \begin{itemize} \item Simple \item Rapide \end{itemize} \tcblower \textbf{Inconvénients} \begin{itemize} \item Limité \end{itemize} \end{sidebyside} \end{sidebyside} \subsection{Association texte et image} \texttt{\textbackslash textwithimage[*]\{\textit{w\_img}\}\{\textit{s\_img}\}\{\textit{texte}\}\{\textit{chemin}\}} : combine texte et image. \texttt{*} met l'image à gauche. \subsection{QR codes} \texttt{\textbackslash withqrcode[*][\textit{taille}]\{\textit{url}\}\{\textit{contenu}\}} : QR code à côté d'un contenu. \texttt{*} place le QR code à droite. \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} \withqrcode{https://example.com}{% Scannez ce QR code pour accéder au site. } \end{codeside} \tcblower \withqrcode{https://example.com}{% Scannez ce QR code pour accéder au site. } \end{sidebyside} \subsection{Grilles et papiers} \begin{itemize} \item \texttt{\textbackslash grid[\textit{couleur}]\{\textit{largeur}\}\{\textit{hauteur}\}} : grille 5mm × 5mm. \item \texttt{\textbackslash customgrid[\textit{couleur}][\textit{dx}][\textit{dy}]\{\textit{largeur}\}\{\textit{hauteur}\}} : grille personnalisée. \item \texttt{\textbackslash frenchgrid[\textit{coul\_p}][\textit{coul\_g}]\{\textit{largeur}\}\{\textit{hauteur}\}} : grille Seyès. \item \texttt{\textbackslash gridfill} / \texttt{\textbackslash gridfill*} : remplit la page avec une grille. \item \texttt{\textbackslash notebook}, \texttt{\textbackslash nbminorgrid}, \texttt{\textbackslash nbmajorgrid} : styles de fond de page. \end{itemize} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} \grid[blue!40]{4cm}{2cm} \end{codeside} \tcblower \centering \grid[blue!40]{4cm}{2cm} \end{sidebyside} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} \frenchgrid{4cm}{2cm} \end{codeside} \tcblower \centering \frenchgrid{4cm}{2cm} \end{sidebyside} \subsection{Boîtes simples} \begin{itemize} \item \texttt{neobox} : boîte avec cadre. \item \texttt{neobox*} : boîte sans cadre visible. \item \texttt{\textbackslash neocolorbox[\textit{couleur}]\{\textit{contenu}\}} : boîte colorée simple. \item \texttt{\textbackslash inlinebox[\textit{cadre}][\textit{fond}][\textit{texte}]\{\textit{contenu}\}} : boîte en ligne personnalisable. \end{itemize} \begin{sidebyside} \begin{codeside}[numbers=none]{latex} \begin{neobox}[title=Ma boîte] Contenu avec cadre. \end{neobox} \begin{neobox*} Contenu sans cadre visible. \end{neobox*} \end{codeside} \tcblower \begin{neobox}[title=Ma boîte] Contenu avec cadre. \end{neobox} \begin{neobox*} Contenu sans cadre visible. \end{neobox*} \end{sidebyside} \subsection{Logos et symboles spéciaux} \begin{itemize} \item \texttt{\textbackslash AILogo[\textit{options}]} : logo IA (puce avec réseau neuronal). \item \texttt{\textbackslash NoAILogo[\textit{options}]} : logo « Sans IA » (puce barrée). \item \texttt{\textbackslash documentcolor\{\textit{couleur}\}} : change la couleur du texte pour tout le document. \end{itemize} \begin{sidebyside}[righthand width=.4\linewidth] \begin{codeside}[numbers=none]{latex} \AILogo \quad \NoAILogo \end{codeside} \tcblower \centering \AILogo \qquad \NoAILogo \end{sidebyside} \section{Notation et correction} \subsection{Outils de notation} \begin{itemize} \item \texttt{\textbackslash gradingstrip[\textit{total}]} : bandeau pour la note et l'appréciation. \item \texttt{\textbackslash mrk[*][\textit{comm}]\{\textit{pts}\}} : points dans la marge. \end{itemize} \begin{sidebyside}[righthand width=.65\linewidth] \begin{codeside}[numbers=none]{latex} \gradingstrip[20] \end{codeside} \tcblower \gradingstrip[20] \end{sidebyside} \subsection{Zones de réponse} \begin{itemize} \item \texttt{\textbackslash answerfield[\textit{largeur}]\{\textit{lignes}\}} : zone avec fond coloré. \item \texttt{\textbackslash answerframe[\textit{largeur}]\{\textit{lignes}\}} : zone encadrée. \item \texttt{\textbackslash vardots[\textit{longueur}]} : ligne pointillée. \item \texttt{\textbackslash lines[\textit{car}][\textit{interligne}]\{\textit{n}\}} : dessine \textit{n} lignes horizontales. \item \texttt{\textbackslash emptybox\{\textit{largeur}\}\{\textit{hauteur}\}} : boîte vide pour réponse libre. \end{itemize} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} Réponse : \answerfield[5cm]{1} \end{codeside} \tcblower Réponse : \answerfield[5cm]{1} \end{sidebyside} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} Justifier : \answerframe{3} \end{codeside} \tcblower Justifier : \answerframe{3} \end{sidebyside} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} Nom : \vardots[4cm] Date : \vardots[3cm] \end{codeside} \tcblower Nom : \vardots[4cm] Date : \vardots[3cm] \end{sidebyside} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} \lines{3} \end{codeside} \tcblower \lines{3} \end{sidebyside} \subsection{Marqueurs et symboles} \begin{multicols}{2} \begin{itemize} \item \texttt{\textbackslash cmark} : \cmark{} (vert). \item \texttt{\textbackslash xmark} : \xmark{} (rouge). \item \texttt{\textbackslash unchecked} : $\square$. \item \texttt{\textbackslash done} : $\rlap{$\square$}{\raisebox{1pt}{\large\hspace{1pt}\cmark}\hspace{-2.5pt}}$. \item \texttt{\textbackslash wontfix} : $\rlap{$\square$}{\large\hspace{1pt}\color{red}\boldsymbol{\times}}$. \end{itemize} \end{multicols} \begin{sidebyside}[righthand width=.4\linewidth] \begin{codeside}[numbers=none]{latex} \begin{itemize} \unchecked Tâche à faire \done Tâche terminée \wontfix Tâche annulée \end{itemize} \end{codeside} \tcblower \begin{itemize} \unchecked Tâche à faire \done Tâche terminée \wontfix Tâche annulée \end{itemize} \end{sidebyside} \subsection{Évaluation par compétences} \texttt{\textbackslash competencies\{\textit{Comp1}\textbackslash\textbackslash \textit{Comp2}...\}} : tableau d'évaluation à 4 niveaux. \begin{sidebyside}[righthand width=.55\linewidth] \begin{codeside}[numbers=none]{latex} \competencies{ Calculer des dérivées \\ Résoudre des équations \\ Rédiger des preuves } \end{codeside} \tcblower \competencies{ Calculer des dérivées \\ Résoudre des équations \\ Rédiger des preuves } \end{sidebyside} \section{Commandes mathématiques} \subsection{Mise en valeur} \begin{itemize} \item \texttt{\textbackslash mhl[\textit{couleur}]\{\textit{expr}\}} : surligne l'expression. \item \texttt{\textbackslash mc[\textit{couleur}]\{\textit{expr}\}} : colore l'expression. \item \texttt{\textbackslash mathbox<\textit{fond}>[\textit{bordure}]\{\textit{contenu}\}} : encadre du contenu mathématique. \end{itemize} \begin{sidebyside}[righthand width=.35\linewidth] \begin{codeside}[numbers=none]{latex} $f(x) = \mhl[yellow!30]{x^2} + \mc[blue]{3x} - 1$ \end{codeside} \tcblower $f(x) = \mhl[yellow!30]{x^2} + \mc[blue]{3x} - 1$ \end{sidebyside} \begin{sidebyside}[righthand width=.35\linewidth] \begin{codeside}[numbers=none]{latex} La formule $\mathbox{E = mc^2}$ est célèbre. Avec couleurs : $\mathbox[red]{a^2+b^2=c^2}$ \end{codeside} \tcblower La formule $\mathbox{E = mc^2}$ est célèbre. Avec couleurs : $\mathbox[red]{a^2+b^2=c^2}$ \end{sidebyside} \subsection{Support APMEP} Commandes disponibles avec l'option \texttt{apmep} : \begin{itemize} \item Vecteurs : \texttt{\textbackslash vectt\{AB\}}. \item Repères : \texttt{\textbackslash Oij}, \texttt{\textbackslash Oijk}, \texttt{\textbackslash Ouv}. \item Symboles : \texttt{\textbackslash euro}, \texttt{\textbackslash cg}, \texttt{\textbackslash cd}, \texttt{\textbackslash pg}, \texttt{\textbackslash pp}, \texttt{\textbackslash barre\{x\}}. \end{itemize} \begin{sidebyside}[righthand width=.4\linewidth] \begin{codeside}[numbers=none]{latex} Le vecteur $\vectt{AB}$ dans le repère \Oij. On a $x \pg 0$ et $y \pp 5$. La moyenne est $\barre{x} = 12$. \end{codeside} \tcblower Le vecteur $\vectt{AB}$ dans le repère \Oij. On a $x \pg 0$ et $y \pp 5$. La moyenne est $\barre{x} = 12$. \end{sidebyside} \section{Outils spéciaux} \subsection{Arbres et graphes} \begin{itemize} \item \textbf{neotree} : environnement pour arbres (basé sur \texttt{forest}). L'option \texttt{w=\textit{val}} ajoute un poids sur une branche. \item \texttt{\textbackslash neograph} : commande pour graphes (\texttt{lualatex} requis). \end{itemize} \begin{sidebyside}[righthand width=.4\linewidth] \begin{codeside}[numbers=none]{latex} \begin{neotree}[l=2cm, s sep=1cm] A [B, w=\frac{1}{3} [D] [\overline{D}]] [C, w=\frac{2}{3} [D] [\overline{D}]] \end{neotree} \end{codeside} \tcblower \begin{center} \begin{neotree}[l=2cm, s sep=1cm] A [B, w=\frac{1}{3} [D] [\overline{D}]] [C, w=\frac{2}{3} [D] [\overline{D}]] \end{neotree} \end{center} \end{sidebyside} \subsection{Grille mathématique (\texttt{mathgrid})} Environnement pour aligner des blocs d'équations en grille. \begin{itemize} \item \texttt{\textbackslash begin\{mathgrid\}\{\textit{n}\}} : grille à \textit{n} colonnes. \item \texttt{\textbackslash neoline} : nouvelle ligne. \item \texttt{\textbackslash neocol[\textit{span}]\{\textit{contenu}\}} : colonne avec \texttt{align*}. \end{itemize} \begin{sidebyside}[righthand width=.5\linewidth] \begin{codeside}[numbers=none]{latex} \begin{mathgrid}{2} \neoline \neocol{ A &= 2 + 3 \\ A &= 5 } \neocol{ B &= 4 \times 2 \\ B &= 8 } \end{mathgrid} \end{codeside} \tcblower \begin{mathgrid}{2} \neoline \neocol{ A &= 2 + 3 \\ A &= 5 } \neocol{ B &= 4 \times 2 \\ B &= 8 } \end{mathgrid} \end{sidebyside} \section{Notes marginales} Activées par \texttt{noteswidth=\textit{dim}}. \begin{itemize} \item \texttt{\textbackslash tdnote[\textit{options}]\{\textit{texte}\}} : note dans la marge. \item \texttt{\textbackslash boxnote[\textit{label}]\{\textit{texte}\}} + \texttt{\textbackslash tdmark[\textit{label}]} : note ancrée à un endroit précis. \end{itemize} \begin{code}{latex} % Dans le préambule ou les options de classe : \documentclass[noteswidth=2.5cm]{neoschool} % Dans le document : Ceci est important\tdnote{À retenir !}. \boxnote[hyp]{Hypothèse clé} \begin{theorem} \tdmark[hyp] Si $f$ est continue sur $[a,b]$... \end{theorem} \end{code} \end{document}