First public use of latexml-oxide in ar5iv 2606
Install
Debian / Ubuntu (.deb)
curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.2/latexml-oxide_0.7.2-1_amd64.deb
sudo apt install ./latexml-oxide_0.7.2-1_amd64.deb
Portable tarball (x86_64 Linux)
curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.2/latexml-oxide-0.7.2-x86_64-unknown-linux-gnu.tar.gz
tar xzf latexml-oxide-0.7.2-x86_64-unknown-linux-gnu.tar.gz
sudo cp latexml-oxide-0.7.2-x86_64-unknown-linux-gnu/latexml_oxide /usr/local/bin/
The binary bundles libxml2/libxslt/kpathsea, so tarball users only need a TeX
Live installation (read from your texmf tree) plus graphics tools:
sudo apt install texlive-latex-base texlive-latex-extra texlive-science imagemagick
macOS (Apple Silicon)
curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.2/latexml-oxide-0.7.2-aarch64-apple-darwin.tar.gz
tar xzf latexml-oxide-0.7.2-aarch64-apple-darwin.tar.gz
sudo cp latexml-oxide-0.7.2-aarch64-apple-darwin/latexml_oxide /usr/local/bin/
The binary bundles libxml2/libxslt, so macOS users only need a TeX distribution:
# TeX Live — either Homebrew's:
brew install texlive
# …or MacTeX / BasicTeX, served via the subprocess-kpsewhich fallback.
Apple Silicon (arm64) only. Intel Macs are not yet a published target.
Changelog
[0.7.2] (first public ar5iv 2606 run: upstream sync, MathML-post audit, live-run parity + stability)
The release used for the first public latexml-oxide conversion of an arXiv
monthly (ar5iv 2606). Highlights across the cycle (see the git log and
GitHub's auto-generated per-PR notes for the full detail):
- Upstream LaTeXML sync (PRs #2767 → #2837): amsmath
multlinecentering\shoveleft/\shoveright+\if@fleqn(#2835), the "Framing" package
set (#2829),\lxDeclarereplace=and wildcard declarations, paralist,
and more.
- MathML post-processing faithfulness audit (
docs/MATHML_POST_LINE_AUDIT.md):
operator-dictionary + atom-pair spacing tables regenerated from the Perl
source, faithful spacewalk /\cfrac/ n-th-root argument order, and
inherited color/style context threading. - Live-run parity, mined from full-arXiv conversions: natbib autoload
loop, fvextrabreaklines, tabularray colspec, runaway-guard tuning, and
graceful degradation of former panics (graphics worker thread, XML-node
allocation) into reported errors rather than crashes. - Frontmatter & figure fidelity: font-wrapped author/affiliation
splitting, and a width-based figure-panel arrangement so subfigure grids
follow the PDF/Perl row layout. - Bibliography:
.bibfield values interpreted through the real TeX
engine; absolute DOI/URL links. (Field-interpretation coverage is a first
stage toward Perl's full set — seedocs/SYNC_STATUS.md.) - Box-sizing & verbatim (tcolorbox arc, OXIDIZED_DESIGN #42–#47): TeX
vpack\prevdepthdiscipline, NFSS family codes, foreignObject em basis,
fvextra line-breaking. - Performance: eliminated several O(n²) XSLT hotspots (sectioning,
head-keywords, maketitle), memoizedkpsewhichlookups, arenapin!sweep. - Distribution hardening: guarded NULL-over-FFI SIGSEGV classes in the
rust-libxml fork; thecortex_worker --harnessfleet (one-conversion-per-
process with layered memory guards).
Reliability & distribution:
- Upgraded to
libxml0.3.14. ItsNode::node_ptr_mutnow guards mutable
access withRefCell::try_borrow_mutinstead of anRc::strong_count
heuristic (KWARC/rust-libxml#203). The old heuristic counted liveNode
clones — which are normal bookkeeping, not an aliasing conflict — and so
spuriously rejected mutations on documents with heavily shared node
structures (dcpic commutative diagrams, large arrays, id-heavy trees),
emittingCan not mutably reference a shared Nodeerrors. Those conversions
now complete cleanly. The two internalset_node_rc_guardworkarounds
(latexml_core::Document::new,latexml_post::PostDocument::new) are
removed; node-mutation safety relies solely on the upstreamtry_borrow_mut
check. - Added the
maxperf-cortexbuild profile (inheritsmaxperfbut keeps
panic = "unwind") for the long-livedcortex_workerfleet, which needs
catch_unwindfor per-paper panic isolation.
What's Changed
- feat(bindings): runtime .rhai discovery + faithful local test fixtures by @dginev in #262
- feat(cortex): self-supervising harness with controlled over-commit + memory governor by @dginev in #264
- sandbox-testing-patches: Warning: severity fix, RSS-fuse correction, docs cleanup + PGO task by @dginev in #265
- Exact TeX fixed-point unit conversion by @dginev in #263
- chore(deps): update tikv-jemallocator requirement from 0.6 to 0.7 by @dependabot[bot] in #266
- sandbox-testing batch: IEEEtran keywords fix, stable worker naming, mathml/logger/RSS-fuse fixes + docs by @dginev in #267
- chore(deps): Update phf requirement from 0.13.1 to 0.14.0 by @dependabot[bot] in #268
- Further stability & coverage (box-model hang, array p/m/b, math comma-list, post-log capture, numeric-safety, Miri) by @dginev in #269
- Post-processing signal-fidelity: silence ~200.7k spurious Rust-only warnings (faithful to Perl) by @dginev in #270
- Upstream sync: 11 brucemiller/LaTeXML PRs (#2783 → #2833), incl. #2798 Leavehorizontal by @dginev in #271
- ar5iv 2606 prep: parity fixes, MathML-post audit, perf + stability for the July-5 rebuild by @dginev in #273
Full Changelog: 0.7.1...0.7.2