La classe neoschool

Version 1.3.3 • Auteur : Razik Ikhlef

https://apps.edulatex.xyz

Fichiers et démonstrations

Exemples compilés

Demo 1
Demo 2
Demo 3
Demo 4
Demo 5
La classe 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. Elle intègre cinquante-huit thèmes de couleurs, seize profils préconfigurés, plus de trente mises en page de titre, des environnements spécialisés pour les théorèmes, les exercices, le code et les admonitions, ainsi que plusieurs dizaines d'extensions LaTeX couramment utilisées.

Prise en main rapide

Le plus simple pour démarrer est de choisir un profil, qui configure automatiquement le thème, le style de titre, les boîtes et les formes :

\documentclass[french, profile=academic]{neoschool}

Si l'on préfère tout paramétrer manuellement :

\documentclass[french, theme=axiom, titlelayout=band, thmstyle=bar, exstyle=capsule]{neoschool}

La classe charge automatiquement des dizaines d'extensions ; il est donc rarement nécessaire d'ajouter des \usepackage supplémentaires.

Profils préconfigurés

L'option profile=<nom> configure d'un seul coup le thème, le style de titre, les styles de boîtes (théorèmes, exercices, admonitions, code), la forme des coins et les niveaux d'opacité. Seize profils sont disponibles.

academic Cours magistraux. Thème royal, titre band, thmstyle block, exstyle bar, adstyle modern, codestyle plain, boxshape soft.
minimalist Style épuré. Thème ink, titre stream, thmstyle plain, exstyle line-outline, adstyle classic, codestyle lines, boxshape sharp.
material Material Design. Thème azure, titre notion, thmstyle tile, exstyle capsule, adstyle material, codestyle shadow, boxshape rounded.
coder Documents informatiques. Thème marine, titre blocks, thmstyle bar, exstyle shell, adstyle professional, codestyle frame, boxshape chamfer.
memo Fiches mémo. Thème lagoon, titre bristol, thmstyle sticker, exstyle badge, adstyle soft, codestyle plain, boxshape chat.
exam Devoirs surveillés. Titre eval, thmstyle plain, exstyle inline, boxshape sharp. Active le mode print (sans fond ni cadre).
organic Formes douces. Thème forest, titre flow, thmstyle curve, exstyle capsule, adstyle soft, boxshape leaf.
origami Géométrique plié. Thème crimson, titre geometric, thmstyle fold, exstyle rule, adstyle classic, boxshape bevel.
blueprint Plan technique. Thème frost, titre grid, thmstyle frame, exstyle counter-inline, adstyle classic, boxshape sharp.
swiss Design suisse. Thème crimson, titre brush, thmstyle bar, exstyle capsule-outline, adstyle modern, boxshape southeast.
creative Ludique. Thème neon, titre memphis, thmstyle pastel, exstyle badge, adstyle material, boxshape sharpish.
focus Sobre, accent latéral. Thème rhodium, titre spine, thmstyle tag, exstyle capsule, adstyle classic, boxshape west.
elegant Raffiné. Thème velours, titre minimal, thmstyle bar, exstyle line-circle, adstyle classic, boxshape sharp.
slate Bandeau latéral. Thème slate, titre band, thmstyle tile, exstyle bar, adstyle professional, boxshape sharp.
maker Projets DIY. Thème terra, titre tech, thmstyle sticker, exstyle rule, adstyle classic, boxshape sharp.
zen Apaisant. Thème moss, titre wave, thmstyle block, exstyle line-outline, adstyle soft, boxshape sharpish. Active le mode unicolor.

Extensions chargées

La classe charge automatiquement les extensions suivantes (il n'est pas nécessaire de les appeler avec \usepackage) : adforn, adjustbox, algpseudocode, bookmark, calc, changepage, colortbl, cuted, enumitem, environ, etoolbox, fontawesome5, forest, iftex, kvoptions, lastpage, marginnote, mathtools, microtype, multicol, nccmath, needspace, pdftexcmds, pgffor, pgfplots, pifont, qrcode, scrlayer-scrpage, setspace, silence, siunitx, tabularray, tasks, tcolorbox, tikz, tikzpagenodes, tikzsymbols, ulem, wrapfig, xcolor, xhfill, xkeyval, xsim, xstring.

Groupes d'extensions optionnelles

Option Extensions chargées
math annotate-equations, bm, cancel, esvect, mathrsfs, ncccomma, numprint, tdsfrmath, tkz-euclide, witharrows, xlop.
apmep Extensions pour les annales de concours : esvect, pstricks et associés, tkz-tab, variations, etc.
mathastext Utilise la police du texte pour le mode mathématique.
faketext blindtext et lipsum.
notes todonotes. Variantes : leftnotes, rightnotes.
mathics asymptote et latexalpha2.

Langue et typographie

Trois langues sont prises en charge. La langue choisie adapte automatiquement les libellés des environnements (théorème, exercice, preuve, etc.) et les conventions typographiques via babel.

Option Effet
french Français (conventions de babel-french).
english Anglais (par défaut).
german Allemand.
nofrenchlist Désactive les tirets longs pour les listes en français.
frenchlistaspar Traite les éléments de liste comme des paragraphes.

Polices de caractères

Avec LuaLaTeX ou XeLaTeX, les polices du système sont accessibles. Chaque famille peut être configurée indépendamment avec sa propre échelle.

Option Effet
mainface=Nom Police serif principale.
sansface=Nom Police sans-serif (titres, sections).
monoface=Nom Police à chasse fixe (code).
mathface=Nom Police mathématique.
facefamily=Nom Pré-réglage de famille de polices.
mainfacescale, sansfacescale, monofacescale, mathfacescale Facteur d'échelle pour chaque famille (défaut : 1.0).
sfbody Corps du texte en sans-serif.
sfall Tout le document en sans-serif.

Chaque police accepte aussi des options supplémentaires via mainfaceoptions, sansfaceoptions, monofaceoptions et mathfaceoptions.

Mise en page

Marges et espacement

Option Effet
margin=dim Marges latérales (défaut : 1.5cm).
vspacing=facteur Multiplicateur d'espacement vertical global (0.25 à 2.0, défaut : 1.0).
indent=dim Retrait de paragraphe (défaut : 1em).

Table des matières

Option Effet
compacttoc Table des matières compacte.
twocoltoc Table des matières sur deux colonnes.
monotoc Table des matières en couleur primaire uniquement.

En-tête et pied de page

Option Effet
fullheader Active l'en-tête complet.
nofooter Supprime le pied de page.
pageonlyfooter N'affiche que le numéro de page en pied.

Impression et imposition

Des options permettent d'imprimer plusieurs pages sur une feuille ou de produire des livrets : 2a5toa4, 2a4toa3, 4a5toa3, 2toa3, bookleta5, bookleta4.

Thèmes de couleurs

L'option theme=nom sélectionne un thème parmi les cinquante-huit disponibles. Chaque thème définit quatre couleurs : primaire (titres, sections, définitions), secondaire (théorèmes), tertiaire (exercices), structurelle (remarques, code en ligne). Le thème par défaut est axiom.

Famille Thèmes
Quasi noirs graphite, mineral.
Ardoise foncé athenee, axiom (défaut), prestige, renaissance, sequoia, studio.
Marine dusk, excellence, library, marine, midnight, neon, nocturne, retro, taiga.
Bleus azure, ink, rhodium, royal, slate, trinity, velours.
Sarcelle arctic, frost, lagoon, mist, oceanic, tundra, woodland.
Verts eton, forest, garden, hearth, ivy, jewel, manor, moss, sage.
Violets amethyst, mulberry, opera, velvet.
Rouges / bordeaux aurora, bordeaux, crimson, harvard, heritage, mahogany, orchid, peony, vivid.
Bruns / ocres coffee, cyprus, saffron, study, terra.

Modes de couleur

Option Effet
print Noir et blanc, optimisé pour l'impression. Désactive les fonds et cadres colorés.
unicolor Utilise la couleur primaire pour tous les environnements.
darktheme Thème sombre (fond foncé, texte clair). Adapte automatiquement les opacités.

Personnalisation des couleurs

Pour modifier une couleur précise sans changer de thème, on peut utiliser les options suivantes :

Option Effet
globalcolor=couleur Couleur primaire globale (défaut : noir).
headcolor=couleur Couleur des titres de section.
subcolor=couleur Couleur des sous-sections.
subsubcolor=couleur Couleur des sous-sous-sections.
titlecolor=couleur Couleur du titre du document.

La commande \documentcolor{couleur} permet de redéfinir la couleur primaire en cours de document.

Apparence des boîtes

Les boîtes (théorèmes, exercices, code, admonitions) partagent un système d'options commun pour les cadres, les fonds, l'opacité, les arrondis et les formes. Chaque famille peut être configurée indépendamment ou globalement.

Cadres et fonds

Catégorie Options (activer / désactiver)
Théorèmes thmframe / thmnoframe, thmback / thmnoback.
Exercices exframe / exnoframe, exback / exnoback.
Code codeframe / codenoframe, codeback / codenoback.
Toutes frame / noframe, back / noback.
Raccourcis clean (sans fond ni cadre), styled (avec fond et cadres).

Opacité

L'opacité du fond et du cadre se règle entre 0 et 100 :

Fond Cadre
boxopacity (global), thmboxopacity, exboxopacity, codeboxopacity, adboxopacity. frameopacity (global), thmframeopacity, exframeopacity, codeframeopacity, adframeopacity.

Épaisseur de bordure

border (global), thmborder, exborder, codeborder, adborder.

Arrondis

boxarc=dim (global), thmboxarc, exboxarc, codeboxarc, adboxarc, neoboxarc, sideboxarc, pseudoboxarc. Le titre des théorèmes a son propre arrondi : thmtitlearc.

Formes des coins

L'option boxshape=forme s'applique globalement. Chaque famille dispose aussi de sa propre option (thmboxshape, exboxshape, codeboxshape, adboxshape, neoboxshape, sideboxshape). Le titre des théorèmes : thmtitleshape.

Formes disponibles : sharp, rounded, soft, sharpish, curve, chamfer, bevel, chat, leaf, north, south, east, west, northeast, northwest, southeast, southwest, downhill, uphill.

Padding

padding=tight|normal|loose contrôle l'espace intérieur des boîtes.

Mises en page de titre

L'option titlelayout=nom définit l'apparence de la page de titre. Plus de trente mises en page sont disponibles.

Examens et évaluations

exam, shortexam, mockexam, eval, evalicons, evalgrade, evaliconsgrade, shorteval.

Classiques

default, titlebox, tighttitle, onlytitle, shorttitle, shortlesson, minimal, frame.

Design

band, banner, bar, bauhaus, blocks, book, bristol, brush, bubbles, champagne, circles, cloud, confetti, flow, geometric, grid, magazine, memphis, notion, simplenotion, particles, spine, stream, tech, wave.

Personnalisation du titre

Option Effet
titledecor=style Décoration du titre (défaut : none).
titlealign=alignement Alignement du titre (défaut : center).
titlesize=taille Taille du titre.
titlestyle, titleweight, titleshape Style, graisse et forme de la police du titre.

Configuration de l'en-tête

La commande \neoheader{...} configure les informations affichées dans le titre du document (utile avec les mises en page d'évaluation ou d'examen).

\neoheader{
  type = {Devoir surveillé},
  school = {Lycée A. Camus},
  level = {Terminale},
  duration = {2h},
  calculator = {exam},
  leftcontent = {\faFlask},
  rightcontent = {}
}

Clés disponibles : type, school, academy, level, duration, calculator (true/false/exam), leftcontent, rightcontent, leftcontentfill, rightcontentfill.

Style des sections

Option Effet
headstyle=style Style de police des titres de section (défaut : sffamily).
headweight=graisse Graisse (défaut : bfseries).
headshape=forme Forme (défaut : upshape).
headerules=style Style des filets d'en-tête (défaut : none).
sectionnumstyle=style Style du numéro de section (circle, square, etc.).
sectiontextstyle=style Style du texte de section (sc, bf, etc.).
sectionstyle=style Style général : normal, highlighted, shaded, shadedline, underline.
sectionalign=alignement Alignement (défaut : center).

Environnements mathématiques

Les environnements sont construits avec tcolorbox. L'option thmstyle=style définit leur apparence globale.

Styles disponibles

tag (défaut), bar, block, tile, fold, plain, frame, curve, sticker, pastel, raw.

Environnements

theorem, lemma, corollary, conjecture, proposition, property, properties, definition, definitions, method, activity, application, example, examples, remark, remarks, proof.

Syntaxe

\begin{definition}[title=Nombre premier, label=def:prem]
  Un entier est premier s'il a exactement deux diviseurs.
\end{definition}

\begin{theorem}[title=Petit théorème de Fermat]
  Si $p$ est premier et $a \not\equiv 0 \pmod{p}$,
  alors $a^{p-1} \equiv 1 \pmod{p}$.
\end{theorem}

Options de numérotation

Option Effet
sectionthmcounter Compteur réinitialisé à chaque section (ex : Théorème 2.1).
sharedthmcounter Compteur partagé entre tous les types d'environnement.
thmgroupcounter Compteur groupé par famille d'environnement.

Séparateurs

thmterminator (défaut : .\!) : caractère après le numéro. thmseparator : séparateur entre le numéro et le titre.

Exercices et solutions

Le système d'exercices est construit sur l'extension xsim. L'option exstyle=style définit l'apparence.

Styles d'exercices

Catégorie Styles
En boîte capsule (défaut), capsule-outline, block, bar, tile, fold, plain, frame, curve, sticker, pastel, card.
Avec badge badge, badge-outline, digit, digit-outline, digit-inline, digit-outline-inline, counter, counter-outline, counter-inline, counter-outline-inline.
Linéaires line, line-outline, line-circle, line-circle-outline.
Spéciaux inline, shell, section, subsection, item, rule, separator, raw.

Syntaxe

\begin{exercise}[points=3, subtitle={Dérivation}]
  Dériver $f(x) = x^2$.
\end{exercise}
\begin{solution}
  $f'(x) = 2x$.
\end{solution}

QCM

\begin{choices}(2)
  \choice[\correct] Vrai
  \choice Faux
\end{choices}

Options globales

Option Effet
answers Affiche les solutions après chaque exercice.
answersonly N'affiche que les solutions.
solrotate Imprime la solution retournée (rotation 180°).
shuffle Mélange l'ordre des exercices.
exerciseicons Affiche des icônes de difficulté.
sharedexcounter Compteur d'exercices partagé entre les sections.
solstyle=style Style des solutions : inline (défaut), dots, lines, box.

Séparateurs

exterminator (défaut : .) et exseparator : caractères autour du numéro et du sous-titre.

Code informatique

La coloration syntaxique repose sur listings par défaut, ou sur minted si l'option de classe minted est activée.

Styles de code

codestyle=style : shadow (défaut), plain, line, lines, bar, frame.

Environnements

Environnement Usage
code{langage}[titre] Bloc de code avec numéros de ligne.
codenonum{langage}[titre] Bloc de code sans numéros de ligne.
codeinput{langage}{fichier} Inclusion d'un fichier externe avec numéros.
codeinputnonum{langage}{fichier} Inclusion d'un fichier externe sans numéros.
\begin{code}{python}[Factorielle]
def fact(n):
    return 1 if n <= 1 else n * fact(n - 1)
\end{code}

Options supplémentaires

Option Effet
codewidth=facteur Largeur du bloc de code (défaut : 1, soit 100 %).
centeredcode Centre le bloc horizontalement.
codenum / codenonum Active ou désactive la numérotation des lignes.

Pseudocode

L'environnement pseudocode est basé sur algpseudocode. Les mots-clés sont automatiquement traduits dans la langue choisie.

Admonitions

Les admonitions sont des encarts visuels pour attirer l'attention. Dix types sont prédéfinis, chacun avec son icône et sa couleur.

Environnements

Environnement Usage
note Note générale.
info Information complémentaire.
warning Avertissement.
important Point important.
tip Astuce.
reminder Rappel.
summary Résumé.
toolbox Boîte à outils.
method Méthode.
activity Activité.

Styles

adstyle=style : soft (défaut), modern, material, classic, professional, minimal.

Options

inlineadmonition (défaut : true) pour un rendu en ligne, ou blockadmonition pour un rendu en bloc. Les séparateurs adterminator (défaut : .) et adseparator (défaut : ~:~) personnalisent la ponctuation du titre.

Disposition des contenus

Colonnes

Commande / environnement Usage
\splitcontent[ratio]{gauche}{droite} Divise le contenu en deux colonnes. Le ratio (défaut : 0.5) définit la proportion de la colonne de gauche.
sidebyside Deux boîtes côte à côte, séparées par \tcblower.

Images et QR codes

Commande Usage
\textwithimage{position}{largeur}{image}{légende}{texte} Place une image à côté du texte.
\withqrcode{url}{texte} Ajoute un QR code en marge.

Boîtes simples

\neobox{contenu} (boîte simple), \neocolorbox{contenu} (boîte colorée), \inlinebox{contenu} (boîte en ligne).

Positionnement absolu

\positionobject{x}{y}{largeur}{contenu} place un élément en position absolue sur la page via TikZ.

Grilles et papiers

Commande Usage
\grid[couleur]{largeur}{hauteur} Grille standard (pas de 5 mm).
\customgrid[couleur][h][v]{largeur}{hauteur} Grille personnalisée (pas horizontal et vertical).
\frenchgrid[*][c1][c2]{largeur}{hauteur} Papier Seyès. La variante étoilée produit un rendu en niveaux de gris.
\gridfill[*][couleur][h][v] Remplit la page restante avec une grille.
\notebook Fond de page type cahier.

Notation et correction

Barème

Commande Usage
\gradingstrip[total] Bandeau de notation (défaut : 20 points).
\mrk{points} Indicateur de points dans la marge.
totalpoints=N Option pour fixer le total de points (défaut : 20).

Zones de réponse

Commande Usage
\answerfield[largeur]{lignes} Zone de réponse colorée.
\answerframe{lignes} Zone de réponse encadrée.
\vardots[longueur] Ligne de pointillés pour réponse libre.
\emptybox[options]{largeur}{hauteur} Cadre vide pour réponse.

Compétences

\competencies{Compétence 1 \\ Compétence 2} génère un tableau de compétences à évaluer.

Symboles

\cmark (✓), \xmark (✗), \unchecked, \done, \wontfix, \neocheckbox (case vide), \neochecksol (case cochée), \neocheckcirc (cercle vide), \neocheckdisk (cercle plein).

Outils spéciaux

Mise en valeur mathématique

Commande Usage
\mhl[couleur]{expression} Surlignage coloré en mode mathématique.
\mathbox{expression} Encadrement d'une expression.
\mc[couleur]{texte} Texte mathématique coloré.
\circled{texte} Texte entouré d'un cercle.

Repères et vecteurs

Avec l'option apmep ou math : \Oij (repère 2D), \Oijk (repère 3D), \Ouv (repère vectoriel), \vectt.

Environnements spéciaux

mathgrid : grille pour le travail mathématique. neotree : arbres (basé sur forest).

Notes et annotations

Commande Usage
\tdnote{texte} Note marginale.
\boxnote{texte} Note encadrée.
\tdmark[label] Repère de note.

Flèches et symboles

\To (→), \Gets (←), \barre (barre décorative).

Logos IA

\AILogo[echelle] : logo « réalisé avec l'IA ». \NoAILogo[echelle] : logo « sans IA ».