mathcat 0.7.6-beta.4

MathCAT: Math Capable Assistive Technology ('Speech and braille from MathML')
Documentation
# MathCAT: Math Capable Assistive Technology


<img src="logo.png" style="position: relative; top: 16px; z-index: -1;" alt="The MathCAT logo with a cat sitting on the text MathCAT">
is a library that supports conversion of MathML to:


* Speech strings (in several languages) with embedded speech engine commands
* Braille (Nemeth, UEB Technical, CMU, and many others)
* Navigation of math (in multiple ways including overviews)


There are four related projects that make use of MathCAT:
- [MathCATDemo]https://nsoiffer.github.io/MathCATDemo/ -- an online demonstration of some of what can be done with MathCAT
- [A python interface for MathCAT]https://github.com/NSoiffer/MathCATForPython -- used by a [MathCAT NVDA add-on]https://addons.nvda-project.org/addons/MathCAT.en.html.
- [A C/C++ interface for MathCAT]https://github.com/NSoiffer/MathCATForC
- [A Java interface for MathCAT]https://github.com/mwhapples/MathCAT4J (thanks to Michael Whapples for working on that)

MathCAT is used in many assistive technologies including NVDA and JAWS.

For more information, see the [full documentation](https://daisy.github.io/MathCAT/).

### Test coverage


Line coverage for the Rust test suite is generated weekly with [`cargo-llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov).

- **Run manually on GitHub:** open [Actions → Test coverage]https://github.com/daisy/MathCAT/actions/workflows/coverage.yml, press **Run workflow**, run on **`main`**. This uploads the **llvm-cov-html** artifact and commits the same HTML into **`llvm-cov/`** on **`main`** (for GitHub Pages; same as the weekly schedule). If the push step fails, check branch protection: allow **GitHub Actions** to push to **`main`**, or use a PAT secret the workflow is allowed to use.
- **Run locally:** install the tool (`cargo install cargo-llvm-cov` and add `llvm-tools-preview` via `rustup component add llvm-tools-preview`), then from the repo root run `cargo llvm-cov --workspace --html --output-dir llvm-cov-html` and open `llvm-cov-html/index.html`.
- **Scheduled runs:** open the same workflow link, pick the latest successful run, and download the **llvm-cov-html** artifact; open `index.html` inside the archive.
- **Browsable URL:** in **Settings → Pages**, use branch **`main`** and **`/(root)`** (same as the docs site). The workflow then keeps coverage at [**https://daisy.github.io/MathCAT/llvm-cov/**](https://daisy.github.io/MathCAT/llvm-cov/) (only files under **`llvm-cov/`** on **`main`** are added or replaced).