What Changed
- Clearer semantic distinction of fences:
- reduced omissions in clearspeak.
- English rules for floor and ceiling functions.
- Improved limit handling for operators with new heuristic to treat relation operators
- New and clearer speech rules for
aboveandbelowelements for most locales. And better pausing for SSML - New treatment for empty base elements in stacked, indexed and superscript expressions. Empty is now explicitly read if in stacked expression. Superscripts and subscripts with empty bases are no longer voiced as exponents or indices but at standalone expressions.
- Better heuristic treatment for
- Combining elements with subsequent sub/superscripts with empty bases, in cases where there is visually no difference.
- Unwrapping of singleton lines into their contained expressions. A single line makes sense if tagged or in the context of a matrix or case statement but not on its own.
- Labels prefixes for clearspeak are now spoken according to the actual multi-line preference.
Other things
- Uses latest MathJax version for transformations in tests
- Additional tooling for locale rewriting
- Improved internal comparison of tests
Bug fixes
- Regression where factors in implicit multiplications were incorrectly enriched, in that the new invisible multiplication was added inside an under/over/sub/sup element rather than skipping that element. This adds an explicit annotation that records the skipping of empty scripts and therefore allows to skip that particular tag during ascend in the enrichment algorithm.
- Regression that
mphantomelements would not be ignored during semantic enrichment and subsequent speech generation. This was introduced when allowing for trivial speech generation of interspersed HTML. Nowmphantomis treated explicitly.
Full Changelog: v5.0.0-beta.3...v5.0.0-beta.4