# Changelog

[繁體中文版本](./CHANGELOG-zh.md)

All notable released changes to IMPE LaTeX System are documented in this file.

For unreleased development notes, see [CHANGELOG.unreleased.md](./CHANGELOG.unreleased.md).

## [1.0.1] - 2026-09-29

### Added

* Added a compact engine/platform support matrix covering XeLaTeX, backend-specific engine use, TeX Live 2026, and CI status for Windows, Linux, and macOS.
* Added an API and compatibility policy distinguishing the canonical public API, deprecated and internal interfaces, and the supported legacy `next*` boundary.
* Added a concise bilingual extension guide for catalog-first font, script, layout, and feature additions.

### Changed

* Adopted `impe-framework` as the CTAN archive and root-directory id while retaining the IMPE project name, canonical `impe*` runtime namespace, and existing TEXMF namespace.
* Excluded legacy `next*` compatibility entries from CTAN while retaining and testing them in the repository and full/core releases.
* Renamed the manual tree from `doc/` to `manual/`, moved the canonical showcase to `manual/showcase/`, and included its source, PDF, and bibliography in CTAN.
* Converted current manuals, templates, and maintained tests to canonical `impe*` entries, with an automated guard against new legacy entry use outside the compatibility fixture and the separately maintained `papers/` tree.
* Retired the tracked `examples/` scratch tree, moved its distinct hyperlink-anchor and Libertinus-math cases into the regression suite, and kept examples out of release packages.
* Synchronized and tightened the English and Traditional Chinese README and subsystem references, corrected implementation details, and updated all current package/class metadata to v1.0.1 dated 2026-09-29.
* Made release regressions derive archive and standalone-document filenames from `VERSION`, and retained deterministic CTAN and manual construction.

## [1.0.0] - 2026-09-24

### Added

* Added canonical `impe`, `impeart`, `impebook`, `impereport`, and `impebeamer` public entry points, including `_zh` class variants.
* Added the CTAN-oriented `impe.zip` release target alongside the existing full and core archives.
* Added authoritative German, English, and Traditional Chinese manuals under `doc/de/`, `doc/en/`, and `doc/zh-tw/`, each with a public-API quick reference, the complete canonical showcase, and a reproducible tracked PDF.
* Added regression coverage for canonical and legacy entry points, font-mode aliases, namespaced runtime files, release construction, manual resources, local-font precedence, routing scalability, and Thai line breaking.
* Added Windows and Linux GitHub Actions CI using a public TeX Live font fixture, including release, installation, migration, manual, and reproducibility checks.

### Changed

* Converted all `next*` package and class entry points into supported compatibility wrappers around the canonical `impe*` implementation.
* Namespaced distributable runtime TeX filenames with an `impe-` prefix to avoid shared TeX-tree collisions.
* Defined IMPE as Integrated Multilingual Publishing Environment while retaining `IMPE LaTeX System` as the formal project name.
* Clarified the separation between the Git checkout, the local `assets/fonts/` library, and the full, core, and CTAN-oriented distributions.
* Changed `impe.zip` to contain one top-level `impe/` directory and moved the canonical installer destination to `tex/latex/impe/`, with managed legacy-install cleanup.
* Replaced the PowerShell-only externalized renderer with a portable TeXLua helper that resolves engines from `PATH`.
* Changed the canonical manual engine from pdfLaTeX to XeLaTeX while preserving byte-for-byte reproducible PDF and CTAN builds.
* Made Git tags and GitHub Releases the historical archive for source snapshots and versioned manual/showcase assets; no duplicate repository-local archive is maintained.

### Fixed

* Made `\UseLocalFont` and `\UseLocalFonts` request local mode explicitly while keeping mode-free `\UseFont`, `\UseFonts`, and the `fonts` template key automatic.
* Added a no-op fallback for the optional LaTeX tagged-math positioning hook, keeping title/tabular paths compatible with the TeX Live 2026 tools bundle.
* Made the repository manual build use a deterministic repository-shaped staging tree, the checkout's own runtime, the root `VERSION`, and the single canonical `_showcase/main.pdf` without duplicated documentation resources.
* Made the manual builder discover canonical language sources automatically and build them in a deterministic repository-shaped staging tree; the English and Traditional Chinese editions also retain direct source-directory XeLaTeX/latexmk builds.
* Made explicit local font commands take precedence over automatic Unicode-range routing for the duration of their scope, with normal routing restored afterward.
* Replaced fixed 4096-class transition generation with sparse generation over allocated XeTeX intercharacter classes, including a begin-document backfill for classes allocated later, and corrected same-owner comparison so adjacent blocks keep one shaping run.
* Added Thai dictionary line breaking through XeTeX's ICU `th_TH` locale when the Thai family is loaded.
* Made v0.1.3 migration remove the exact historical generic runtime paths while preserving unknown top-level and nested user content and migrating recognized local overrides.

## [0.1.3] - 2026-08-29

### Added

* Added Unicode-range global font routing and reusable range profiles for script-specific font ownership, including range-limited routes for complex and multilingual text.
* Added the `headers` feature with running-head support and `\HeaderTitle{...}` for an explicit short header title.
* Added Tibetan inline/global break behavior that permits breaks after tsheg separators before Tibetan letters or signs while avoiding breaks before Tibetan punctuation.
* Added explicit math font selection with `\UseMathFont{...}` and added `mlmodern` as a registry-backed legacy font route.
* Added hyperlink improvements for repeated heading numbers, reverse heading-to-TOC navigation, and bidirectional footnote-marker links.

### Changed

* Consolidated WenJin Mincho into the `wenjin` family and `\WJ{...}` local command, with Plane 0 / 2 / 3 handled through the CJK fallback chain.
* Refined CJK routing so shared Han ideographs remain on the document's Chinese/CJK font when Japanese, Korean, or Vietnamese Han-Nom families are loaded; language-specific Han forms remain available through `\JP`, `\KR`, and `\HN`.
* Refined CJK and Unicode-range fallback behavior, including Japanese global CJK routing and improved fallback handling for extended Han coverage.
* Updated the Libertinus catalog route to use TeX Live OTF family names and include mono; text-family loading now uses fontspec's `no-math`, preserving Computer Modern math unless Libertinus Math is explicitly selected with `\UseMathFont{libertinus}`.
* Refined paper-layout defaults, two-sided page handling, Chinese UI section numbering, table-of-contents spacing, caption labels, and starred-heading TOC behavior.
* Made numbered paper-layout TOC entries, including chapters and nested sections, expand their number boxes to the natural label width while preserving a stable gap.
* Made index sort keys and descriptions optional, localized the default parentheses, and changed the default index title to the localized standard `\indexname`.
* Refined citation formatting so author lists use `&` as the final-name delimiter, and improved table environment handling and landscape-table support.
* Relaxed TeX badness defaults to reduce noisy overfull/underfull diagnostics and refined quote spacing in the English document layout.

### Fixed

* Fixed range transitions so adjacent Unicode blocks owned by the same font family no longer split a shaping run, preserving Old Hangul clusters across Hangul Jamo and Jamo Extended blocks.
* Fixed WenJin fallback behavior so it follows the active Shanggu/CJK main-font route correctly.

## [0.1.2] - 2026-04-28

### Added
- Registered WenJin Mincho Plane 0 / 2 / 3 as local commands `\WJA`, `\WJB`, and `\WJC`.
- Generated `IMPE-LaTeX-System-v0.1.2-full.zip` and `IMPE-LaTeX-System-v0.1.2-core.zip`.

### Fixed
- Preserved explicit user `\date{...}` values in Chinese UI wrappers instead of overwriting them with the default localized date.

## [0.1.1] - 2026-03-20

### Added
- Added `CHANGELOG.md` to track project release history.
- Added auxiliary cleanup scripts:
  - `scripts/clean_aux.ps1`
  - `scripts/clean_aux.bat`
- Added new registered font families and related catalog/debug coverage updates, including `gentium`, `charis`, and `nabataean`.

### Changed
- Switched installation from full-directory replacement to differential update.
- Updated Arabic font mapping so `arabic` uses Ruqaa for italic channels, while Nastaliq remains dedicated to `urdu`.
- Improved repo-local path resolution for font and system loading.
- Unified feature catalog loading into a single source.
- Expanded font documentation to include registered family listings and mapping notes.

### Fixed
- Fixed installed-mode Chinese wrapper and internal UI loading.
- Fixed local font style propagation so outer italic styling is preserved in commands such as `\textit{\AR{...}}`.
- Fixed multi-paragraph RTL local command handling.
- Fixed Korean local spacing preservation for families marked with `preservespaces = true`.
- Fixed several installed/repo-local path issues exposed by debug examples and external documents.

## [0.1.0] - 2026-03-19

### Added
- Initial public release of IMPE LaTeX System.
- Modular LaTeX template system structure with `core`, `catalog`, `modules`, `package`, `scripts`, `docs`, `examples`, and `templates`.
- Full/core release packaging.
- Bilingual project documentation.
- Third-party font license documentation.

### Notes
- `v0.1.0` is the first public baseline release.
