# integramme - release candidate 0.9.0 `integramme` is a LaTeX package for typesetting staircase-style logic-grid puzzles (integrammes / Einstein-style logic-grid puzzles). Version 0.9.0 is the **first release candidate**. The public long-form API and the ordinary drawing engine are frozen for the planned 1.0 release except for serious defects. It includes the documented Einstein-riddle preset introduced during the 0.8 cycle and the completed author/copyright metadata. ## Requirements - LaTeX2e 2022-06-01 or newer - TikZ The package is regression-tested with pdfTeX, LuaTeX and XeTeX. ## Quick start ```latex \documentclass{article} \usepackage{integramme} \begin{document} \begin{integramme} \IntegrammeCategory{person}{Person}{ alice={Alice}, bruno={Bruno}, clara={Clara} } \IntegrammeCategory{drink}{Drink}{ tea={Tea}, coffee={Coffee}, juice={Juice} } \IntegrammeCategory{pet}{Pet}{ cat={Cat}, dog={Dog}, rabbit={Rabbit} } \IntegrammeIndices{% \item Alice does not drink tea. \item The rabbit owner drinks coffee. } \end{integramme} \end{document} ``` See `integramme.pdf` for the user manual and `API.md` for the candidate stable public API. ## Einstein preset The classic five-houses puzzle can be produced directly: ```latex \begin{integramme}[preset=einstein,preset-language=fr] \end{integramme} ``` Use `preset-language=en` for English labels and clues, or add `mode=solution` to print the complete solved grid. The preset is only a convenience data set: it uses the same categories, clue list and solution-row mechanisms as an ordinary user-authored puzzle. ## Public API New documents should use the long-form interface: - `\integrammeset{...}` - `\begin{integramme}[...] ... \end{integramme}` - `\IntegrammeCategory` - `\IntegrammeIndices` - `\IntegrammeYes` / `\IntegrammeNo` - `\IntegrammeSolutionRow` Legacy compact solution syntax, slash references and short `\Int...` aliases remain available for compatibility, but are not part of the candidate stable 1.0 interface. ## Building from source Generate the package file with DocStrip: ```text latex integramme.ins ``` The source tree also supports `l3build`: ```text l3build unpack l3build check l3build doc l3build ctan ``` The standard `l3build` file is named `build.lua`. ## Files - `integramme.dtx` - documented source and user manual - `integramme.ins` - DocStrip installer - `integramme.pdf` - compiled manual - `integramme.sty` - generated development copy (not shipped in the CTAN source archive) - `build.lua` - l3build configuration - `API.md` - candidate stable API contract - `CHANGELOG.md` - release history - `TESTS.md` - regression-test notes - `LICENSE.md` - licensing statement - `example*.tex` - worked/minimal examples, including the Einstein puzzle The development tree also contains prepublication material (`CTAN.md`, `RELEASE.md`, `AUDIT.md` and `support/release-audit.py`). These files are for maintainers and are not required by end users. ## Current limitations - all categories must contain the same number of items; - only the staircase layout is implemented; - long slanted header labels are not automatically constrained to their own category block; - internal identifiers should remain simple and should avoid `,` and `=`; - the package is still pre-1.0. ## Release-candidate status The technical CTAN layout is generated and checked. Jonathan LAFARGE is the public author, copyright holder and CTAN maintainer. A public repository, bug tracker or support URL may be added later; CTAN exposes these as optional communication channels, so they are not blockers for this release candidate. The uploader email is intentionally not stored in the source tree and can be supplied privately at upload time. See `CTAN.md` and `RELEASE.md`. ## Authorship and AI assistance Author and copyright holder: **Jonathan LAFARGE**. OpenAI ChatGPT was used as an interactive development assistant for code drafting, refactoring, test generation and documentation drafting/revision. The model used for the current development cycle was **GPT-5.6 Sol** (August 2026). Final design choices, review, testing and release responsibility remain with the human author. ## License This material is subject to the LaTeX Project Public License 1.3c or later. The work has LPPL maintenance status `author-maintained`; Jonathan LAFARGE is the copyright holder and public package maintainer.