The neoschool Class (v1.3.0)

December 29, 2025 — Razik Ikhlef [razik.ikhlef@csilyon.fr]

Class file: neoschool.cls
PDF documentation: neoschool.pdf (source: neoschool-en.tex)

The neoschool class provides secondary school teachers with a comprehensive set of tools for creating educational documents (assessments, lecture notes, exercise sheets with answer keys, etc.). To meet various needs, it offers about forty color themes, eight preconfigured profiles, a variety of class options for layout and typography, specialized environments, dedicated commands, and multiple preformatted header styles for each document type. It integrates several dozen commonly used LaTeX packages, significantly reducing preamble overhead and avoiding compatibility issues wherever possible. Multilingual, it supports English, French, and German.

Examples

Table of Contents

Preconfigured Profiles New

The profile=name option automatically configures a coherent set of options for different document types. Each profile defines a theme, an accent style, box styles, and visual parameters suited to a specific use case.

% Using a profile
\documentclass[profile=course]{neoschool}

% Customizing a profile
\documentclass[profile=exam, theme=midnight]{neoschool}

Loaded Packages

The following packages are automatically loaded by the neoschool class:

adforn, adjustbox, algpseudocode, amsmath, babel, bookmark, calc, changepage, colortbl, environ, fontawesome5, forest, iftex, kvoptions, lastpage, listings, marginnote, microtype, multicol, nccmath, needspace, pdftexcmds, pgffor, pgfplots, pifont, qrcode, scrlayer-scrpage, setspace, silence, siunitx, tabularray, tasks, tcolorbox, textcase, tikz, tikzpagenodes, tikzsymbols, todonotes, ulem, wrapfig, xcolor, xhfill, xkeyval, xsim, xstring.

Compilation with pdflatex loads the fontenc (T1), inputenc (utf8), newpxtext, and newpxmath packages. Compilation with lualatex makes fontspec, luacas, lua-ul, and luacolor available, and applies the TeX Gyre Pagella and TeX Gyre Heros fonts in addition to newpxmath.

Optional Packages

Configuration Options

Language

Global Appearance

Predefined Themes Updated

The theme=name option sets the document's color palette. About forty themes are available, organized by category:

Accent Styles Updated

The accent=style option defines how theme colors are applied:

Color Profiles

The colorprofile=profile option defines how colors are distributed among environment types:

Color Modes

Custom Colors

Box Appearance

Frames and backgrounds:

Background opacity (0-100): boxopacity (global, default: 0), thmboxopacity, exboxopacity, codeboxopacity (default: 7), mathboxopacity (default: 15).

Corner rounding: boxarc, thmboxarc, exboxarc, codeboxarc, sideboxarc, pseudoboxarc (default: 0pt).

Box shapes (boxshape): New

The boxshape=shape option defines the global corner shape. Specific options: thmboxshape, exboxshape, codeboxshape, neoboxshape, sideboxshape.

Title terminators: thmterminator (default: .\!), thmseparator, adterminator (default: .\!), exterminator (default: .), boxtitle.

Other Display Options

Typography

Fonts

Heading Styles

Layout

Margins and Spacing

Margin Notes

Headers and Footers

Table of Contents

Output Modes

For multiple printing: 2a5toa4, 2a4toa3, 4a5toa3, 2toa3, bookleta5, bookleta4.

Miscellaneous Options

Document Styles

Title Styles (titlelayout) Updated

Header Configuration (\neoheader)

Configures information for exam, eval, mockexam, shortlesson styles and the fullheader option.

\neoheader{
  type = {Pop Quiz},
  school = {Jefferson Middle School},
  academy = {Springfield},
  level = {8th Grade},
  duration = {20 minutes},
  calculator = {false}, % true / false / exam
  leftcontent = {\faFlask},
  rightcontent = {\faCalculator},
  leftcontentfill = {true},
  rightcontentfill = {true}
}

Mathematical Environments

Based on tcolorbox.

Theorem Styles (thmstyle) Updated

Values: bar (default), block, tile, fold, plain, frame, curve, sticker, pastel, tag, raw.

Available Environments

theorem (ref.: thm), lemma (ref.: lem), corollary (ref.: cor), conjecture (ref.: conj), proposition (ref.: propo), property (ref.: prop), properties (ref.: prop), definition (ref.: def), definitions (ref.: def), method (ref.: meth), activity (ref.: act), application (ref.: appl), remark/remarks (unnumbered), example/examples (ref.: ex), proof.

Environment Options

title=text, label=name, colback=color, colframe=color, coltitle=color, fonttitle=commands.

Numbering Options

Exercises

Based on the xsim package.

exercise and solution Environments

Options: points, bonus-points, level (1-5, displayed as stars), subtitle, icon (requires exerciseicons), topic, grade, subject, ID, template.

Global options: exerciseicons, answers, answersonly, shuffle, blocksol.

Exercise Styles (exstyle) Updated

Box styles: block, bar, tile, fold, plain, frame, curve, sticker, pastel, card.

Badge styles: badge, badge-outline, digit, digit-outline, counter, counter-outline.

Special styles: inline, capsule (default), shell, line, section, hrule.

Multiple Choice Questions

Source Code

Class options: listings (default) or minted (requires Python, Pygments, and --shell-escape).

code Environment

\begin[options]{code}{language}[title][box-style] ... \end{code}

options: listings/minted options. language: python, latex, c++, etc.

Commands: \codeinline[lang]{code}, \codeinput[opt]{lang}{file}[title][style].

Code Box Styles (codestyle) Updated

Values: lines (default), plain, bar, frame, shadow.

Options: codewidth=factor (default: 1.0), centeredcode.

pseudocode Environment

Based on algpseudocode. Special commands: \Gets (assignment arrow โ†), \To ("to" keyword for loops).

Admonitions Updated

Colored boxes with icons to draw attention.

Environments: note (โœŽ), info (โ“˜), warning (โš ), important (!), tip (๐Ÿ’ก), reminder (๐Ÿ”–), summary (๐Ÿ“‹), toolbox (๐Ÿ”ง), method (โš™) New, activity (๐Ÿงฉ) New.

Admonition styles (adstyle): modern (default), material, soft, classic, professional, minimal.

Options: title=text, subtitle=text, icon=\faIcon, style=name (overrides global style).

Content Layout

Absolute Positioning

\positionobject{x}{y}{scale}{content}: places content at coordinates (x, y) from the top-left corner.

Two-Column Layout

\splitcontent[w1][gap]{col1}{col2}: divides horizontal space.

sidebyside Environment

Creates two tcolorbox boxes side by side separated by \tcblower. Options: title, righthand width.

Combining Text and Images

\textwithimage[*]{w_img}{s_img}{text}{path}: combines text and image. * places the image on the left.

QR Codes

\withqrcode[*][size]{url}{content}: QR code next to content. * places the QR code on the right.

Grids and Papers

Simple Boxes

Logos and Special Symbols

\AILogo[options]: AI logo (chip with neural network).
\NoAILogo[options]: "No AI" logo (crossed-out chip).
\documentcolor{color}: changes text color for the entire document.

Grading and Correction

Grading Tools

Answer Areas

Symbols: \cmark (โœ“ green), \xmark (โœ— red), \unchecked (โ˜), \done (โ˜‘), \wontfix (โ˜’).

Competency-Based Assessment

\competencies{Comp1 \\ Comp2 \\ ...}: 4-level assessment table.

Math Commands and Special Tools

Highlighting

APMEP Support

Commands available with the apmep option: \vectt{AB} (vectors), \Oij, \Oijk, \Ouv (reference frames), \euro, \cg, \cd, \pg, \pp, \barre{x} (symbols).

Trees and Graphs

Math Grid (mathgrid)

Environment for aligning equation blocks in a grid.

Margin Notes

Enabled by noteswidth=dim.