42115426

By: ValentinHirschi <valentin.hirschi@gmail.com>

render graph indices as subscripts and collect inverse factors

Use the shared Spenso label printers for compact endpoint labels and preserve
additional endpoint/dummy slots. Render nested labels as math symbols and
reduce their numeric scripts in Typst's deepest script style.

Collect inverse powers and rational coefficients into one fraction at each
product level in the existing portable renderer. Preserve grouping of sums,
complex exponents, and exact Atom annotations. Keep Tydenso's packaged copies
synchronized with the embedded renderer.

Validation: 27 targeted nextest tests, Cargo checks, Clippy with warnings denied,
Rust formatting, the portable Typst regression fixture, and Spenso guide
compilation pass. The projector preview was inspected in PNG and Chromium
MathML, including computed font sizes for nested labels. All 55 documentation
scope digests are unchanged and verified. Hosted WASM was not rebuilt.

User prompts:

This is example output:

The indices look like `s^{1,1}`, whereas I would expect `s_1`. The second index entry is only needed for spin-2 particles. I also would expect `p.p^-1` to be written as an actual division

If possible, collect fractions at the same level `1/p.p * 1/k.k -> frac(1,p.p k.k)`

In your image, it looks like the subscript 2 of the s that is already nested is much larger than the s.
GitHub
Time to Start Worker time Duration Time to finish Idle
Config 2s 9s 9s 12s 2s
Eval 9s 1m40s 1m40s 1m49s 0s
Build 1m37s 7m17s - - 2s
Test 2m49s 3m08s - - 0s
Deploy - - - - 0s
Suite 2s 12m16s - - 4s