Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- **Math in labels** — any label may embed `$...$` math (LaTeX-ish: `$\sigma^2$`, `$\frac{a}{b}$`, `$\sqrt{x}$`). Two tiers: a zero-dependency **lookup tier** (always on) lowers math to inline Unicode (Greek, operators, super/subscripts, `\frac`→`a/b`, `\sqrt`→`√(…)`) for every backend including the terminal; and an opt-in **typst tier** (feature `math`) that typesets the whole label with the Typst compiler (linked as a library — no external binary) for real 2-D math (stacked fractions, radicals, large operators) embedded in SVG/PNG/PDF, with math color following the label color. The `math` feature is excluded from `full` to keep ordinary builds lean. Note: Typst math is not LaTeX (`mc` is one identifier — write `m c`); on a compile failure a label degrades to the lookup tier with a one-time warning. See *Reference → Math in Labels*.
- **`TypstBackend`** (feature `typst`) — emit a CETZ-based Typst document for external compilation with `typst compile`; `$...$` regions become native Typst math.
- **Pre-compiled release binaries** — pushing a `vX.Y.Z` tag now builds standalone `kuva` CLI binaries (with the `cli,full` feature set: SVG + PNG + PDF) for Linux (x86_64 gnu/musl, aarch64), macOS (Intel + Apple Silicon) and Windows (x86_64), and attaches them with SHA-256 checksums to the matching GitHub Release. Users can download a binary and run it without installing Rust. See `.github/workflows/release.yml` (resolves #17).
- **`ManhattanPlot::with_thin_overlapping_labels()`** — opts the Manhattan x-axis into collision-aware chromosome labelling. By default every chromosome whose band is at least 6px wide is labelled, which can overprint the labels of adjacent small chromosomes (e.g. 17/19/21) on a genome-wide plot. When enabled, labels are placed in a single left-to-right pass and any label whose estimated footprint would overlap the previously drawn one is skipped, automatically thinning crowded regions while keeping the rest readable. Works with both horizontal and rotated (`Layout::with_x_tick_rotate`) labels. Off by default; existing behaviour is unchanged.

Expand Down
Loading
Loading