# Changelog

All notable changes to the neoschool class are documented in this file.

## [1.3.10] - 2026-07-05

### Added
- New `semibold` boolean option (disabled by default) to enable automatic
  detection of the SemiBold variant of `mainface`/`sansface`/`monoface`.
  Recommended only when the chosen font actually ships a SemiBold weight
  (Inter, Source Sans, IBM Plex, Lato, etc.).

### Changed
- Automatic SemiBold detection is now opt-in via the new `semibold` option
  (was always active before). This removes the luaotfload "Reload initiated"
  message that appeared on fonts without a SemiBold variant (TeX Gyre,
  Latin Modern, etc.). When disabled, `\sbseries` falls back to `\bfseries`.

### Fixed
- `\sbseries` now actually falls back to `\bfseries` under LuaLaTeX/XeLaTeX
  when the `semibold` option is disabled or the font provides no SemiBold
  face (it was previously a silent no-op leaving the text at regular
  weight; the fallback only worked under pdfLaTeX).
- With `semibold` enabled, the font re-declaration no longer drops the
  `mainfacescale`/`sansfacescale`/`monofacescale` scale factors (the whole
  family was previously re-registered at the default scale).
- The `titlecolor`, `headcolor`, `subcolor` and `subsubcolor` class options
  are now wired to the title/section colors (they were declared and
  documented but had no effect).
- Italic shape is no longer rendered smaller than the upright text under
  XeLaTeX and LuaLaTeX. The global `Scale=MatchLowercase` feature was
  previously applied to the roman family, causing each font shape
  (regular, italic, bold) to be rescaled independently against the
  reference x-height; with fonts whose italic x-height differs from the
  regular (such as TeX Gyre Pagella), the italic ended up visibly smaller.
  The roman family is now declared with `Scale=1`, while sans-serif and
  monospace families keep `Scale=MatchLowercase` to remain visually
  aligned on the roman x-height. The undocumented `scale` option,
  previously dead code, has been removed.

## [1.3.9] - 2026-05-25

### Changed
- Unified vertical-spacing logic: the `vspacing` factor now scales every
  global skip uniformly (`\parskip`, `\abovedisplayskip`, `\belowdisplayskip`,
  `\floatsep`, `\textfloatsep`, `\intextsep`, `topsep`, `itemsep`) regardless
  of its value. The arbitrary threshold at `0.76` has been removed; the
  document contracts smoothly down to any `vspacing` value.

### Added
- New `listparskip` boolean option, **enabled by default**, propagating the
  `parskip` spacing inside lists (`itemize`, `enumerate`, `description`) for
  consistent paragraph rhythm between text and lists.
- Complementary `nolistparskip` option to opt out of the above (keeps lists
  compact regardless of `parskip`).

### Fixed
- `partopsep` is now forced to `0pt`, so the vertical space before a list
  no longer depends on whether the source has a blank line above it.

## [1.3.8] - 2026-05-23

Intermediate release introducing the initial `listparskip` option (off by
default at this stage). Superseded by 1.3.9, which makes the option active
by default and unifies the spacing model.

## [1.3.7] - 2026-05-15

### Added
- New class option `parskip` accepting standard KOMA-Script values
  (`false`, `half`, `full`, `half-`, `half*`, …). Replaces the previously
  hard-coded `parskip=half` setting and removes the need to load the
  `parskip` package alongside the class.

## [1.3.6] - 2026-05-01

### Added
- New `nofrenchmath` option to opt out of the automatic loading of the
  `frenchmath` package with the `french` language option.

### Changed
- With the `french` language option, the `frenchmath` package is now loaded
  automatically (French conventions in math mode). `ncccomma` is skipped in
  that case to avoid a conflict, `\vide` and `\Ker` are cleared before
  loading, and the redundant warnings emitted by `frenchmath` about
  `\mathscr`, `\leqslant`/`\geqslant` and `\varnothing` are silenced.

### Fixed
- The running-footer title is now computed once at the beginning of the
  document and cached, and the title is detokenized before being measured.
  Titles longer than 85 characters that contain macros are no longer
  truncated blindly (which could cut a macro in half): the class keeps the
  full title and emits a warning suggesting `\shorttitle`. Plain overlong
  titles are still truncated at 85 characters with an ellipsis.

## [1.3.5] - 2026-04-11

### Added
- Table of contents: `part` entries are now styled (large colored entry
  without dotted leader) and followed by a thin colored rule, both in the
  default rendering and with `compacttoc`; page breaks immediately after a
  part entry are prevented.

### Changed
- The `math` package bundle is now loaded by default; new `nomath` option
  to disable it for documents that do not need advanced mathematical
  typesetting (reduces compilation time).
- `\euro` is now provided globally by the `eurosym` package (with the
  `gen` option) instead of being defined only under the `apmep` option.

### Fixed
- `\part` headings: the number, decorative rule and title are wrapped in a
  minipage so the heading block can no longer be split across pages; the
  space above part headings is normalized (`beforeskip=5em`).
- The `toolbox` admonition color now follows the structural color of the
  theme, like `note`, `reminder` and `summary`.

## [1.3.4] - 2026-03-29

Maintenance release: copyright years updated to 2025-2026 in the class
header; no functional change.

## [1.3.3] - 2026-03-21

### Added
- New `rubis` theme (navy primary with a vivid red secondary).
- New `html` listings language and code style, highlighting tags,
  attributes, strings and comments.
- New `text` code style: plain listing without any syntax highlighting.

### Changed
- The `assembly` code style no longer relies on the `[x86]Assembler`
  dialect: it now highlights a case-insensitive mnemonic set covering x86,
  ARM and LMC (data transfer, arithmetic, logic, jumps and branches,
  stack, I/O), with registers and assembler directives emphasized
  separately and string support.
- Widow and club penalties raised from 9999 to 10000: lone lines at the
  top or bottom of a page are now strictly forbidden.

## [1.3.2] - 2026-03-14

### Changed
- The `mockexam` cover page now prints the subject name in uppercase.
- `\mrk` margin marks are now typeset in sans-serif using the structural
  color.

### Fixed
- A document without `\title` no longer sends the footer-title measurement
  into an infinite loop: an empty title is now predefined.
- Invalid dimension expression (`0.5*\baselineskip`) in the spacing applied
  to code blocks when both `codenoframe` and `codenoback` are set.

## [1.3.1] - 2026-02-21

### Changed
- Theme collection rebalanced: every palette was reworked and the themes
  are now organized by hue family (near black, dark slate, navy, blue,
  teal, green, purple, red/burgundy, brown). Ten themes added (`athenee`,
  `axiom`, `excellence`, `graphite`, `mineral`, `nocturne`, `prestige`,
  `renaissance`, `sequoia`, `studio`) and eight removed (`cambridge`,
  `cardinal`, `cosmos`, `flora`, `glacier`, `night`, `oxford`, `tweed`).
  The default theme is now `axiom` (was `oxford`).
- Semantic color mapping adjusted: `theoremColor` and `methodColor` now
  use the secondary palette color, `subsubsectionColor` the structural
  color; `codeTitle` and `codeFrame` are swapped; code token colors are
  mixed with `globalcolor` instead of pure black (better on dark themes).
- Several `profile` presets retuned (`swiss`, `slate`, `maker`, `moss`,
  among others) with different theme and template combinations.
- Table of contents entries and their dotted leaders are now colored per
  level; `sidebyside` derives its colors from `codeFrame` instead of
  `exampleColor`; `neobox` body text now uses `globalcolor`.
- The `frenchmath` option has been removed.

### Fixed
- `compacttoc` now works on its own; previously it only took effect when
  `twocoltoc` was also set.

## [1.3.0] - 2026-02-09

### Added
- New `profile` option with 16 ready-made document presets (`academic`,
  `minimalist`, `material`, `coder`, `memo`, `exam`, `organic`, `origami`,
  `blueprint`, `swiss`, `creative`, `focus`, `elegant`, `slate`, `maker`,
  `zen`), each preconfiguring theme, title layout, theorem/exercise/
  admonition/code styles and opacities. Explicitly given options always
  override the preset.
- New `darktheme` option: renders any theme on a dark page background with
  light text, palette colors being lightened for contrast.
- Many new decorative title layouts for `titlelayout`: `band`, `bar`,
  `bauhaus`, `blocks`, `book`, `bristol`, `brush`, `champagne`, `circles`,
  `cloud`, `confetti`, `flow`, `grid`, `magazine`, `memphis`, `notion`,
  `particles`, `simplenotion`, `spine`, `stream`, `tech`, `wave`, plus the
  classic `minimal` and `frame` layouts.
- New named theorem styles with matching constructors `\newtagtheorem`,
  `\newbartheorem`, `\newblocktheorem`, `\newcurvetheorem`,
  `\newfoldtheorem`, `\newframetheorem`, `\newpasteltheorem`,
  `\newplaintheorem`, `\newstickertheorem`, `\newtiletheorem` and
  `\newrawtheorem`, replacing `\newamstheorem`, `\newboxedtheorem`,
  `\newclassictheorem`, `\newclassytheorem`, `\neweleganttheorem`,
  `\newleftruletheorem`, `\newshadedtheorem`, `\newslantedtheorem` and
  `\newsobertheorem`.
- Exercise display templates redesigned and renamed: `badge`, `bar`,
  `block`, `capsule`, `card`, `counter`, `curve`, `digit`, `fold`,
  `frame`, `line`, `pastel`, `plain`, `rule`, `separator`, `shell`,
  `sticker` and `tile`, with `-outline` and `-inline` variants (replacing
  the former `box-hrule`, `boxed`, `classic-box`, `classy-box`,
  `elegant-box`, `num-box`, `rect-box`, `shaded-box`, `slanted-box`,
  `smart-box`, `sober-box` and `terminal` templates).
- New `adstyle` option selecting the admonition style by name.
- Solutions: new `solstyle` option (default `inline`, with `lines`, `dots`
  and `box` styles backed by the new `sol-lines`, `sol-dots` and `sol-box`
  templates), replacing the `blocksol` option; new `solrotate` option
  printing solutions upside down (180-degree rotation).
- New plural theorem environments `definitions` and `properties`.
- New `mathraster` environment laying out equations in a grid of boxes.
- New `inlineabstract` option.
- Fine-grained box appearance options: corner shapes (`boxshape` with
  `thmboxshape`, `exboxshape`, `codeboxshape`, `neoboxshape`,
  `sideboxshape`, `thmtitleshape`, `thmtitlearc`, `sectionarc`,
  `neoboxarc`), border thicknesses (`border`, `thmborder`, `exborder`,
  `codeborder`, `adborder`), frame opacities (`frameopacity`,
  `thmframeopacity`, `exframeopacity`, `codeframeopacity`,
  `adframeopacity`, `sideframeopacity`, `neoframeopacity`), global
  `padding`, and the `exframe`/`exnoframe` pair.
- New `secondarymix` and `tertiarymix` options (0-100, default 85)
  controlling how strongly the secondary and tertiary palette colors are
  blended.

### Changed
- Theme system rebuilt around four-color palettes (primary, secondary,
  tertiary, structural) mapped onto all semantic colors; 56 themes with
  academic names (`oxford` as default, `harvard`, `cambridge`, `eton`,
  `ivy`, `trinity`, `ink`, ...) replace the 1.2.0 collection.
- `method` and `activity` are now admonition-type environments; the
  `application` theorem environment has been removed.
- `print` is a plain boolean option again and `unicolor` a color mode; the
  1.2.0 `accent`, `colorprofile` and `bicolor` options have been removed.
- `twocolumntoc` renamed to `twocoltoc`.

## [1.2.0] - 2025-12-07

### Added
- New `titlelayout` option selecting the title page by name
  (`titlelayout=exam`, `eval`, `bubbles`, ...); the individual layout
  class options (`eval`, `evalicons`, `evalgrade`, `evaliconsgrade`,
  `exam`, `mockexam`, `shortexam`, `shorteval`, `bubbles`, `topbubbles`,
  `bottombubbles`, `titlebox`, `tighttitle`, `onlytitle`, ...) become
  values of this single option. New `geometric` and `banner` layouts.
- Theme collection replaced: over sixty new themes organized in seven
  families (Modern, Blue, Green, Red, Brown, Purple, Dark), with
  `midnight` as the new default. The Dark family (`dracula`, `night`,
  `mocha`, `nord`) introduces the first dark themes: dark page background
  and light text set automatically.
- New `accent` option (default `light`) controlling how theme colors are
  applied: `strong`, `emphasized`, `gradient`, `soft`, `flat`,
  `structured`, `minimal`, `mono`, `technical`, `print` and `accessible`.
  Replaces the `print` boolean option (use `accent=print`).
- New `colorprofile` option assigning palette colors to environment types:
  `mathbook` (default), `exam`, `core`, `school`, `unicolor`, `bicolor`.
- Background opacity options: `boxopacity` (global), `thmboxopacity`,
  `exboxopacity`, `codeboxopacity`, `adboxopacity`, `mathboxopacity`.
- Global appearance toggles `back`/`noback` and `frame`/`noframe`, with
  the `clean` (all frames and backgrounds off) and `styled` (all on)
  shortcuts, plus the `exback`/`exnoback` pair.
- Title terminator and separator options: `thmterminator`, `thmseparator`,
  `adterminator`, `exterminator`.
- Font scaling options `mainfacescale`, `sansfacescale`, `monofacescale`;
  automatic detection of a SemiBold weight for the selected fonts,
  exposed as `\sbseries`.
- New `titlesize` option, and `titledecor` replacing the `titlerule`,
  `titlemidrule`, `titlefullrule` and `titleornament` options.
- New `headerules` option (`headrule`, `footrule`, `headfootrule`, `none`)
  replacing the three boolean rule options of the same names.
- New `noteswidth` and `notesposition` options for margin notes.
- New `\newleftruletheorem` constructor and `leftrule-box` exercise
  template.

### Changed
- Theorem visual styles are now selected exclusively through `thmstyle=`;
  the boolean options `amslikethm`, `classicthm`, `classythm`,
  `elegantthm`, `shadedthm`, `slantedthm`, `soberthm` and `boxedthm` have
  been removed.
- Admonitions are declared through a single generic mechanism; the eight
  environments and their behavior are unchanged.
- Default horizontal `margin` raised from `1cm` to `1.5cm`.
- Box corner radii now default to `0pt` (square corners) for all box
  families except exercises (`exboxarc` defaults to `2pt`).
- The `graphics` option has been removed; `wrapfig` is always loaded and
  `graphicx` remains available through TikZ.

## [1.1.3] - 2025-11-14

### Added
- New `titlebox` title layout: title, with optional subject and subtitle,
  set in a full-width tinted banner at the top of the page, honoring
  `titlealign`.
- New `tighttitle` layout: the same compact header without the banner and
  with reduced vertical space.
- New `noexback` option removing the background color of exercise boxes
  only.

### Changed
- The `theoremstyle` and `exercisestyle` options are renamed `thmstyle`
  and `exstyle`.
- The `fancybox` title layout (rotated corner banner) has been removed in
  favor of `titlebox`.
- Exercise headings normalized across all templates: the points group is
  set with a non-breaking space before `point`/`points`, the dot
  separators are placed consistently around difficulty stars, subtitles
  and points, and the `bonus-points` property is no longer displayed in
  headings.
- The grade title block (`evalgrade`, `evaliconsgrade`) now positions its
  duration and name fields according to the presence of a subject and
  subtitle, and uses the localized strings introduced in 1.1.1 instead of
  hard-coded French labels.
- Title decorations get more room above (`2\titlespacing`), and the
  vertical spacing of the built-in title layouts is now expressed in
  `\baselineskip` units; right-aligned titles use `\raggedleft` directly.

## [1.1.2] - 2025-11-11

### Added
- New `boldlistlabels` option: bold labels in `enumerate` lists
  (`1.`, `a.`, ...).
- New `leftnotes` and `rightnotes` options: margin notes confined to the
  left or the right margin (`notes` keeps alternating between both).
- New `mathfacescale` option: scaling factor for the math font under
  LuaLaTeX and XeLaTeX.
- New `shaded` and `shadedline` section styles for `sectionstyle`.

### Changed
- `mismath` (and `mathtools` through it) is no longer loaded; the class
  now relies on `nccmath`, which provides `amsmath`.
- `\mrks` has been removed: `\mrk` now pluralizes `point`/`points`
  automatically.
- Exercise difficulty stars are rendered by the new `\neoexerciserating`
  helper, which compensates for `mathfacescale` so the stars keep a
  consistent size.

## [1.1.1] - 2025-11-02

### Added
- Six new themes: `coral`, `earth`, `modern`, `neon`, `nordic`,
  `twilight`. The theme selector now warns and falls back to `classic`
  when the requested theme is unknown.
- New `examcolor` option remapping practical and admonition colors onto
  the main theory color (`definitionColor`) for a uniform two-tone
  palette suited to exams.
- Per-family frame, background and numbering toggles: `thmframe`/
  `nothmframe`, `thmback`/`nothmback`, `codeframe`, `codeback`/
  `nocodeback`, `codenum`/`nocodenum`, and `adframe`/`noadframe`,
  `adback`/`noadback` (admonitions are borderless and unfilled by
  default). They replace the global `noback`/`noframe` options.
- New `vspacing` option: a global factor (default `1.0`) compressing or
  expanding vertical spacing (paragraphs, lists, headings). Replaces the
  `compact` option.
- Corner-radius options per box family: `thmboxarc`, `exboxarc`,
  `codeboxarc`, `adboxarc`, `sideboxarc` (complementing `boxarc`).
- New `codestyle` option (default `box-elegant`) selecting the default
  code box style, replacing `lststyle`; `\setcodestyle` has been removed.
- New `theoremstyle` and `exercisestyle` options selecting theorem and
  exercise styles by name, as an alternative to the boolean style
  options.
- New footer options: `nofooter` (empty page style) and `pageonlyfooter`
  (centered page number only).
- New `bottombubbles` title layout (bubbles at the bottom of the page,
  title above); the `shortbubbles` layout has been removed.
- New `\answerfield[width]{lines}` command: answer area with a colored
  background, companion to `\answerframe`.
- New `\AILogo` and `\NoAILogo` commands drawing an AI chip badge with a
  localized label (AI/IA/KI), to mark AI-assisted or AI-free content.
- The calculator notice and the mock-exam cover strings are now localized
  in the three languages (they were hard-coded in French).

### Changed
- `inlineadmonition` is now enabled by default; the new `blockadmonition`
  option restores the title-above-body layout.
- The `academic`, `emphasis` and `practical` color modes introduced in
  1.1.0 have been removed (superseded by `examcolor` and `unicolor`).

## [1.1.0] - 2025-10-25

### Added
- Theme collection expanded from 9 to 30 themes, defined through a new
  five-color palette mechanism applied consistently to every environment.
  New themes: `abyss`, `aether`, `atlantic`, `autumn`, `blossom`,
  `botanical`, `burgundy`, `day`, `deepocean`, `eagle`, `foresthues`,
  `glacier`, `goldensummer`, `graphite`, `heather`, `heritage`, `magma`,
  `midnight` (dark), `purplebliss`, `retrocafe`, `saffronsky`, `scribe`,
  `sepia`, `summer`, `winkle`. The `spring`, `arbutus`, `navy` and
  `royal` themes have been removed.
- New color application modes: `emphasis` (theory colored, the rest in
  gray), `practical` (methods, applications and code colored) and
  `academic` (two distinct color families). They replace the `normal` and
  `gradientheadpalette` palettes.
- Table of contents options: `compacttoc` (reduced spacing), `monotoc`
  (single color) and `twocolumntoc` (two columns).
- New `inlinecodebox` option: inline code (`\texttt`) in a small framed,
  colored box.
- Code listing variants with and without line numbers: `codenonum`
  environment, `\codeinputnum` and `\codeinputnonum` commands.
- `\answerframe` accepts a new trailing optional argument passing
  `tcolorbox` options.

### Changed
- Hyperlink colors now follow the active theme and adapt to the `print`
  and `unicolor` modes.
- Exercise template names consolidated: the `...-outlined` variants are
  renamed `...-out`; the `box`, `noframe-box` and `subsection` templates
  are removed.
- The `\solutionbox` and `\secpunct` commands have been removed.

## [1.0.6] - 2025-09-13

### Added
- New `sol-dotted` solution template: the solution heading is extended by
  a dotted rule and the solution body is closed by a full-width dotted
  rule.

### Changed
- `sol-block` redesigned: heading followed by a thin rule filling the
  line, body closed by a full-width rule. Both block templates now
  reserve space (`\needspace`) so a solution heading cannot be stranded
  at the bottom of a page, and forbid a page break before the closing
  rule.
- Untitled code blocks with the default box style now sit much closer to
  the surrounding text (before/after skip reduced to
  `0.1\baselineskip`).
- Admonition boxes get more vertical breathing room (before/after skip
  raised from `0.5\baselineskip` to `\baselineskip`).

## [1.0.5] - 2025-08-27

### Added
- New `answersonly` option printing only the solutions; `\correct` and
  `\correct*` reveal the correct answers under it, as with `answers`.
- New `topbubbles` title layout: bubble cloud confined to the top of the
  page with the title below. The `bubbles` layout is redesigned: the
  title now sits on a translucent white card with a soft shadow inside
  the cloud, and both layouts display the subtitle.
- New `blocksol` option selecting the `sol-block` solution template.
- New `inlineadmonition` option: admonition title and content on the same
  line.
- Landscape support: the text area and the `margin` option now adapt when
  the paper is wider than tall.

### Changed
- Solution rendering: the tinted `sol-box` template is replaced by the
  plain `sol-inline` template (new default) and the `sol-block` template.
- Default `margin` raised from `.25cm` to `1cm`; `\columnsep` doubled to
  `2em` in two-column mode; vertical spacing under the built-in title
  layouts retuned for one- and two-column documents. The `evalgrade`
  layout no longer inserts a `\gradingstrip` below the header.
- `\withqrcode` tables now span the full line width.

### Fixed
- Font loading rewritten around `iftex` with a dedicated XeLaTeX branch:
  XeLaTeX no longer receives the LuaTeX-only HarfBuzz renderer.
- LuaLaTeX defaults corrected: roman font fixed from the nonexistent
  `TeX Gyre PagellaX` to `TeX Gyre Pagella`; default monospace switched
  from `Cascadia Code` to the always-available `TeX Gyre Cursor`; a
  custom `mathface` is now loaded through `unicode-math` and
  `\setmathfont` instead of `\RequirePackage`.

## [1.0.4] - 2025-07-20

### Changed
- Exercise headings: the space before the points group is now a thin
  space (`\,` instead of `\enskip`).

## [1.0.3] - 2025-07-19

### Added
- New `proof` environment with localized name (Proof, Démonstration,
  Beweis) and a closing QED square, styled to match the active theorem
  style.
- New `codewidth` option (factor of `\linewidth`, default `1`) and
  `centeredcode` boolean option; the `code` environment and `\codeinput`
  accept a trailing optional argument overriding the width per block.
- The `pifont` package (Zapf Dingbats symbols) is now loaded.

### Changed
- Default `lststyle` is now `colorfuln`: code blocks show line numbers by
  default (small gray sans-serif, `numbersep=14pt`); `minted` listings
  also get line numbers by default, and use the `bw` style under `print`.
- Selecting `minted` no longer activates `listings` as well; `listings`
  remains the default engine when neither option is given.
- The default code box style now renders a styled title when one is given
  instead of forcing `notitle`; the `box-classic` code box style has been
  removed.
- The `margin` option now defaults to `.25cm` instead of leaving the
  computed type area untouched.

### Fixed
- `\setcodestyle` now applies the chosen style immediately (`\lstset`);
  previously it only affected the default of later code boxes.
- `print` mode also converts `remarkColor` to black, and the minted `bw`
  style is applied during the minted setup rather than at option
  processing time.

## [1.0.2] - 2025-07-11

Maintenance release: version metadata refresh only, no functional change
to the class.

## [1.0.1] - 2025-05-26

### Added
- New `\shorttitle` command providing an alternative title for the footer
  of the following pages; without it, titles longer than 85 characters
  are truncated there with an ellipsis.
- The `\neoheader` field defaults are now preset and applied even when the
  command is never called (previously some fields could end up
  undefined).

### Changed
- `bubbles` and `shortbubbles` layouts: title and subtitle now wrap
  inside a fixed text width instead of overflowing on long titles; header
  heights and the space after the title block are adjusted.
- Grade title layouts: narrower title width (`0.75\textwidth`) and higher
  position on the page.

### Fixed
- Conflict between the `math` option and `tdsfrmath` over `\mathscr`
  (the command is now reset before other math packages load).
- The `conjecture` theorem referenced an undefined color macro; it now
  uses `remarkColor`.
- The calculator notice comparison was rewritten with `\ifx` (more robust
  than `\pdf@strcmp`); invalid `calculator` values still raise an
  explicit error.

## [1.0.0] - 2025-01-04

Initial release.

- Document class for secondary-school teachers, built on KOMA-Script
  `scrartcl`, with pre-configured title and header layouts for
  assessments, exams and lesson handouts.
- Color themes, theorem-like environments, exercises with solutions
  (based on `xsim`), code listings, admonitions, and dozens of commonly
  used packages preloaded to keep preambles short.
- English, French and German localization.
