CTAN update: numodel-bundle
Date: September 8, 2026 7:02:17 PM CEST
Paul Zuurbier submitted an update to the
numodel-bundle
package.
Version: 0.9.1 2026-09-07
License: lppl1.3c
Summary description: Numerical physics models with Forrester diagrams and auto-sized plots
Announcement text:
This release is numodel-plot only; numodel is version-synced with no functional changes. It is also the first published release carrying the 0.9.0 work: that archive was prepared but never published, so the changes below reach users here. Highlights ---------- * A scaled axis now presents its power of ten as an SI prefix on the unit: "s (km)" instead of "s (10^3 m)", "E (TJ/kg)" instead of "E (10^6 MJ/kg)", "m (Mg)" instead of "m (10^3 kg)". The fold respects unit powers (10^6 m^2 -> km^2) and existing prefixes, and falls back to the power-of-ten form whenever no engineering prefix fits. The new setup key scale-format=exponent restores the previous presentation globally. * New setup key halo-color. The default halo-color=auto matches the tick-label halo to the surrounding background at every \drawplot: a tcolorbox's colback, a beamer colour theme's bg, the pagecolor package's \thepagecolor, and white otherwise. Any other value pins the halo to that colour. Fixed ----- * \qtyPlain produced wrong output on siunitx 3.5.0 and newer. siunitx renamed the variable holding the current prefix-mode from \l_siunitx_quantity_prefix_mode_tl -- a documented public variable through v3.4.14 -- to \l_siunitx_quantity_prefix_mode_str, leaving the old name declared but never assigned. Reading the stale name resolved an empty mode and fell through to plain \qty, so every scaled axis label silently gained a spurious "1": "t (1 ks)" instead of "t (ks)". Nothing errored. The mode is now read from whichever variable carries a value, so both siunitx generations work. Under the hood -------------- * \qtyPlain no longer patches siunitx internals. It is now built entirely on siunitx's documented code-level interface, following the investigation behind siunitx issue #864, which established that the whole prefix-mode pipeline is already public. Axis labels are unchanged; three edge cases the old override got wrong are fixed (a mantissa of 1 behind a sign or comparator is no longer dropped, a number carrying an uncertainty is passed through untouched, and all three prefix-mode values now behave the same whether \qtyPlain is called directly or reached through \edef). * \pzuIfUnitNonEngTF derives its verdict from the net power of ten siunitx extracts from the unit instead of from a hard-coded list of prefix control sequences. Two units change verdict, both towards scaling: \centi\metre\per\centi\second (the prefixes cancel) and \centi\metre\cubed (cm^3 is 10^-6 m^3). Packaging --------- * The bundle now ships one README and one CHANGELOG, both at the bundle root, on CTAN maintainer request. The former per-module README/CHANGELOG pairs have been merged into them; module-specific entries live under a per-module heading within each release. Requirements ------------ * siunitx is now requested with a date of 2023-11-06 (v3.3.8). An older siunitx produces a LaTeX warning rather than an error, but scaled axis labels may come out subtly wrong. See CHANGELOG.md for the full list.
The package’s Catalogue entry can be viewed at https://ctan.org/pkg/numodel-bundle The package’s files themselves can be inspected at https://mirrors.ctan.org/macros/luatex/latex/numodel-bundle/
Thanks for the upload. For the CTAN Team Petra Rübe-Pugliese
CTAN is run entirely by volunteers and supported by TeX user groups. Please join a user group or donate to one, see https://ctan.org/lugs
This release is numodel-plot only; numodel is version-synced with no functional changes. It is also the first published release carrying the 0.9.0 work: that archive was prepared but never published, so the changes below reach users here. Highlights ---------- * A scaled axis now presents its power of ten as an SI prefix on the unit: "s (km)" instead of "s (10^3 m)", "E (TJ/kg)" instead of "E (10^6 MJ/kg)", "m (Mg)" instead of "m (10^3 kg)". The fold respects unit powers (10^6 m^2 -> km^2) and existing prefixes, and falls back to the power-of-ten form whenever no engineering prefix fits. The new setup key scale-format=exponent restores the previous presentation globally. * New setup key halo-color. The default halo-color=auto matches the tick-label halo to the surrounding background at every \drawplot: a tcolorbox's colback, a beamer colour theme's bg, the pagecolor package's \thepagecolor, and white otherwise. Any other value pins the halo to that colour. Fixed ----- * \qtyPlain produced wrong output on siunitx 3.5.0 and newer. siunitx renamed the variable holding the current prefix-mode from \l_siunitx_quantity_prefix_mode_tl -- a documented public variable through v3.4.14 -- to \l_siunitx_quantity_prefix_mode_str, leaving the old name declared but never assigned. Reading the stale name resolved an empty mode and fell through to plain \qty, so every scaled axis label silently gained a spurious "1": "t (1 ks)" instead of "t (ks)". Nothing errored. The mode is now read from whichever variable carries a value, so both siunitx generations work. Under the hood -------------- * \qtyPlain no longer patches siunitx internals. It is now built entirely on siunitx's documented code-level interface, following the investigation behind siunitx issue #864, which established that the whole prefix-mode pipeline is already public. Axis labels are unchanged; three edge cases the old override got wrong are fixed (a mantissa of 1 behind a sign or comparator is no longer dropped, a number carrying an uncertainty is passed through untouched, and all three prefix-mode values now behave the same whether \qtyPlain is called directly or reached through \edef). * \pzuIfUnitNonEngTF derives its verdict from the net power of ten siunitx extracts from the unit instead of from a hard-coded list of prefix control sequences. Two units change verdict, both towards scaling: \centi\metre\per\centi\second (the prefixes cancel) and \centi\metre\cubed (cm^3 is 10^-6 m^3). Packaging --------- * The bundle now ships one README and one CHANGELOG, both at the bundle root, on CTAN maintainer request. The former per-module README/CHANGELOG pairs have been merged into them; module-specific entries live under a per-module heading within each release. Requirements ------------ * siunitx is now requested with a date of 2023-11-06 (v3.3.8). An older siunitx produces a LaTeX warning rather than an error, but scaled axis labels may come out subtly wrong. See CHANGELOG.md for the full list.
The package’s Catalogue entry can be viewed at https://ctan.org/pkg/numodel-bundle The package’s files themselves can be inspected at https://mirrors.ctan.org/macros/luatex/latex/numodel-bundle/
Thanks for the upload. For the CTAN Team Petra Rübe-Pugliese
CTAN is run entirely by volunteers and supported by TeX user groups. Please join a user group or donate to one, see https://ctan.org/lugs
Numodel-bundle – Numerical physics models with Forrester diagrams and auto-sized plots
A LuaLaTeX bundle for writing and rendering numerical models (Euler-integrated dynamical systems) directly inside LaTeX documents, aimed at physics teaching material. The bundle contains numodel (the modelling engine with stock-and-flow diagrams) and numodel-plot (a PGFPlots styling layer that auto-sizes plots to whole-number tick intervals).
| Package | Numodel-bundle |
| Version | 0.9.1 2026-09-07 |
| Copyright | 2026 Paul Zuurbier |
| Maintainer | Paul Zuurbier |