Releases: NSoiffer/MathCATForPython
Development Build
MathCAT 0.6.6 (Build for NVDA 2024.4)
General Information
Because 0.6.3 had some bad bugs around zipping and didn't make it into the NVDA store, the following list is relative to v0.5.6.
This release now have separate builds for people who want to use a python version of MathCAT outside of NVDA. Choose the appropriate version of MathCAT along with Rules.zip. See test.py for example code on how to use MathCAT. The rules directory can be placed anywhere; SetRulesDir
tells MathCAT where to look.
As noted below, this release brings support for several new languages and braille systems. Currently supported:
- Languages: Chinese (Taiwan), English, Finnish, Indonesian, Spannish, Swedish, Vietnamese
- Braille: CMU (Portugese, Spanish), Finnish AsciiMath, LaTeX (as used in German braille), Nemeth, Swedish, UEB, Vietnamese
New Features
Speech
- Added Swedish to supported languages.
- Added Finnish to supported languages.
- MathCAT will switch the voice when reading math if a different language from the current voice was set in the preference dialog.
- Added a en-UK variant with some British ways to speak bracketing chars.
- Added English rules for div, grad, and curl (calculus)
- Added English rule for
$P(A|B)$ so that | is spoken as "given" - In terse mode, integer subscripts are spoken as "x 1" instead of "x sub 1".
- Changed the speech for ≈ from "congruent to" to "approximately equal to"
- Changed speech for the general cases of
mover
andmunder
from "modified x with y above it" to "quantity x with y above it" - Improved rule for {} so that it isn't always spoken as "set of ...". It could just be bracketing chars.
- Tweaked the speech for ∈ inside of a set so that the word "is" is dropped when part of a set -- "the set of all x is an element of ..." sounds poor.
- Improved rule for chemistry recogition for atomic numbers.
- Update to speech hint property names in the proposed MathML Core property list
- Add speech for coordinates ("the point at 1 comma 2")
Braille
- Added support for Finnish version of AsciiMath braille
- Added support for Swedish braille
- Added support for Vietnamese accents position for Vietnamese braille vowel "rhymes".
Other
- All the language and braille Rule files are zipped up per directory and unzipped on demand.
- This currently saves ~5mb when Rules.zip is unzipped, and will save even more as more languages and braille codes are added.
- If you know certain languages or braille code will definitely be used (e.g., it is the default), then the files in those directories can be manually unzipped to save a few tens of milliseconds the first time the language/braille code by that user.
- Added new preference DecimalSeparator.
- The default value is Auto, with other values being ".", ",", and "Custom". The first three values set DecimalSeparators and BlockSeparators.
- Auto sets those preferences based on the value of the Language pref. For some language such as Spanish, , is used in some countries and . is used in others. In this case, it is best to set the language to also include the country code (e.g, es-es or es-mx) to ensure the right value is used.
- Added more Unicode chars to include both all Unicode chars marked as "Sm" and those with a mathclass (except Alphabetic and Glyph classes) in the Unicode standard.
- Add support for some (upcoming) new Unicode characters (equilibrium arrows and others) used in Chemistry into UEB and Nemeth
- Several fixes for recognizing chemistry
Fixes
- Fixed a bug in UEB where passage mode should have been used for capitals.
- Fixed a crash with UEB in certain conditions with runs of capital letters.
- Fixed bug in Navigation of tables (previously reported "Error in Navigation").
- Fixed bug moving to previous/next column in tables when at a table row level.
- Fixed bug when trying to correct bad MathML representation of chemistry inside of the base of a script
- Fixed Vietnamese braille for "/"/
- In the dialog code, the file location and %APPDATA% are now used to find the Rules and prefs files.
- After changing how prefs work in a previous version, I forgot to change MathRate and PauseFactor to be numbers, not strings.
- Fixed bug in the braille Rules (missed change from earlier) where a third argument should have been given to say to look in the Braille definitions.yaml files and not the speech ones when looking up the value of a definition.
- Cleaned up use of definitions.yaml.
- Fixed some bugs in the MathML cleanup for "," decimal separators.
- Found a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)
- Fixed "Describe" mode so that it works -- it is still very minimal and probably not useful yet
- Add space after math speech to work around a MS Word bug that concatinates the next character in the text onto the math.
MathCAT 0.6.3 (Build for NVDA 2024.1)
New Features
- Added new preference
DecimalSeparator
.- The default value is
Auto
, with other values being ".", ",", and "Custom". The first three values setDecimalSeparators
andBlockSeparators
. Auto
sets those preferences based on the value of theLanguage
pref. For some language such as Spanish,,
is used in some countries and.
is used in others. In this case, it is best to set the language to also include the country code (e.g,es-es
ores-mx
) to ensure the right value is used.
- The default value is
- Added Swedish to supported languages.
Bug Fixes and other changes
- All the language and braille Rule files are zipped up per directory and unzipped on demand.
- This currently saves ~5mb when Rules.zip is unzipped, and will save even more as more languages and braille codes are added.
- This is in preparation for MathCAT being built into NVDA 2024.3
- Added more Unicode chars to include both all Unicode chars marked as "Sm" and those with a mathclass (except Alphabetic and Glyph classes) in the Unicode standard.
- After changing how prefs work in a previous version, I forgot to change
MathRate
andPauseFactor
to be numbers, not strings. - Fixed bug in the braille Rules (missed change from earlier) where a third argument should have been given to say to look in the Braille
definitions.yaml
files and not the speech ones when looking up the value of a definition. - Cleaned up use of
definitions.yaml
. - Fixed some bugs in the MathML cleanup for "," decimal separators.
- Found a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)
- Fixed "Describe" mode so that it works -- it is still very minimal and probably not useful yet
- Fixed minimum supported version
MathCAT 0.5.6 (Build for NVDA 2024.1)
Changes/fixes:
- Added Copy As... to the MathCAT dialog (in the "Navigation" pane).
- Fixed a bug where the language reverted to English when changing speech styles.
- Fixed a bug with navigation and braille
- Fixed some Asciimath spacing problems.
- Improved chemistry recognition
- Updated MathCAT to new BANA Nemeth chemistry spec (still only single line and special case style/font changes not handled)
- Fix a crash when non-ASCII digits (e.g., bold digits) are used in numbers
- Don't use italic indicators in braille codes when the math alphanumeric italic chars are used
- Some other smaller bug fixes that weren't reported by users
NVDA 2023 compatible release (V.0.5.1)
This is probably the last 2023 compatible release for MathCAT. Because of the 2024 switch to python 3.11, regular builds are not compatible with earlier versions of NVDA.
Note: this release is also compatible with NVDA 2024.
MathCAT 0.5.0 (Build for NVDA 2024.1)
Commits
- Added German LaTeX braille code. Unlike other braille codes, this generates ASCII chars and uses the current braille output table to translate the characters to braille.
- Added (expermental) ASCIIMath braille code. Like the LaTeX braille code, this generates ASCII chars and uses the current braille output table to translate the characters to braille.
- Added "CopyAs" preference that supports copying as MathML, LaTeX, or ASCIIMath using cntl+C when focused on MathML (as before). The currently focused node is copied. Note: this is only listed in the prefs.yaml file and is not exposed (yet) in the MathCAT Preferences dialog.
MathCAT 0.4.2 (Build for NVDA 2024.1)
Commits
- Fixed language switching when voice changes and MathCAT language is "Auto"
- Added more checks for $Impairments to improve reading when it is not set for those who are blind
- Nemeth: fix for "~" when it isn't part of an mrow
- UEB: character additions, "~" spacing fix if prefix, xor fix,
- MathML cleanup for accented vowels (mainly for Vietnamese)
- Major rewrite of preference reading/updating code with big speedup -- added
CheckRuleFiles
pref to control which files are checked for updates - Added two new interface calls -- enables setting the navigaton location from the braille cursor (not part of MathCAT addon yet)
MathCAT 0.3.11 (Development build)
Update to 3.10 on dev channel for NVDA 2024.1
Fixes:
- Upgraded to python 3.11 and verified working with NVDA 2024.1
- Fix bugs in Vietnamese braille and also in Speech, mostly for chemistry.
- Fix broken braille when braille code and respective language didn't match
- Fix whitespace bug in HTML inside of tokens
- Improve roman numeral detection
Development Build v0.3.10
Update to 3.10 on dev channel for NVDA 2024.1
Fixes:
- Upgraded to python 3.11 and verified working with NVDA 2024.1
- Fix bugs in Vietnamese braille and also in Speech, mostly for chemistry.
- Fix whitespace bug in HTML inside of tokens
- Improve roman numeral detection
MathCAT v0.3.9
This release adds Traditional Chinese support.
It fixes a navigation bug involving scripts and parentheses.
There are a number of braille fixes for UEB and CMU