Skip to content

Commit aa6f424

Browse files
committed
Need to change README.md to readme.md for linux build, but windows doesn't distinguish case, so doing this in two steps
1 parent 3230dd8 commit aa6f424

File tree

1 file changed

+199
-0
lines changed

1 file changed

+199
-0
lines changed

temp-readme.md

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# MathCAT
2+
3+
* Author: Neil Soiffer
4+
* NVDA compatibility: 2018.1 or later (untested in earlier versions)
5+
* Download [stable version][1]
6+
7+
MathCAT is designed to eventually replace MathPlayer because MathPlayer is no longer supported. MathCAT generates speech and braille from MathML. The speech for math produced by MathCAT is enhanced with prosody so that it sounds more natural. The speech can be navigated in three modes using the same commands as MathPlayer. In addition, the navigation node is indicated on a braille display. Both Nemeth and UEB technical are supported.
8+
9+
MathCAT has a number of configuration options that control speech, navigation, and braille.
10+
Many of these can be set in the MathCAT settings dialog (found NVDA Preferences menu).
11+
For more information on these settings, see the [MathCAT documentation](https://nsoiffer.github.io/MathCAT/users.html).
12+
The documentation includes a link to [a table listing all of the navigation commands in MathCAT](https://nsoiffer.github.io/MathCAT/nav-commands.html).
13+
14+
Note: MathCAT is a general library for generating speech and braille from MathML. It is used by other AT projects besides NVDA. For information on the MathCAT project in general, see the main [MathCAT Documentation page](https://nsoiffer.github.io/MathCAT).
15+
16+
17+
Who should use MathCAT:
18+
19+
* Those who use the following spoken or braille Languages:
20+
* Languages: Chinese (Taiwan), English, Finnish, Indonesian, Spannish, Swedish, Vietnamese
21+
* Braille: CMU (Portugese, Spanish), Finnish AsciiMath, LaTeX (as used in German braille), Nemeth, Swedish, UEB, Vietnamese
22+
* Those who need high quality Nemeth braille (MathPlayer's Nemeth is based on liblouis' Nemeth generation which has a number of significant bugs that are technically difficult to fix).
23+
* Those who want to try out the latest technology and are willing to help by reporting bugs
24+
* Those who use Eloquence as a voice
25+
26+
Who should NOT use MathCAT:
27+
28+
* Anyone who uses MathPlayer with a language that is not yet supported by MathCAT and are not comfortable with speech in one of the supported languages.
29+
* Anyone who prefers Access8Math to MathPlayer (for speech or other features)
30+
31+
MathCAT's rules for speech are not yet as extensive as MathPlayer's rules although they are getting close -- that may be another reason to stick with MathPlayer. MathCAT is being used as a testbed for ideas for MathML 4 that allow authors to express their intent so that ambiguous notations can be spoken correctly and not guessed at. I have held off on adding too many rules since the architecture of MathCAT is centered around using and inferring author intent and these are not fully settled yet.
32+
33+
## MathCAT Update Log
34+
35+
### Version 0.6.8
36+
37+
Lots of changes because it has been a while since the last official release.
38+
39+
#### Speech
40+
41+
* Added "LiteralSpeak" style that does not infer what the meaning of the math and therefore, how that meaning spoken.
42+
* Added Swedish to supported languages.
43+
* Added Finnish to supported languages.
44+
* For Vietnamese, added optional pitch change and beep for capital letters
45+
* MathCAT will switch the voice when reading math if a different language from the current voice was set in the preference dialog.
46+
* Added a en-UK variant with some British ways to speak bracketing chars.
47+
* Added English rules for div, grad, and curl (calculus)
48+
* Added English rule for $P(A|B)$ so that | is spoken as "given"
49+
* In terse mode, integer subscripts are spoken as "x 1" instead of "x sub 1".
50+
* Changed the speech for ≈ from "congruent to" to "approximately equal to"
51+
* Added inference for cross-product and dot-product
52+
* Added inference for div, grad, and curl
53+
* Added special speech for zero, identity, and diagonal matrices in English
54+
* Be more restrictive when inferring a table
55+
* Changed speech for the general cases of `mover` and `munder` from "modified x with y above it" to "quantity x with y above it"
56+
* Improved rule for {} so that it isn't always spoken as "set of ...". It could just be bracketing chars.
57+
* 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.
58+
* Improved rule for chemistry recognition for atomic numbers.
59+
* Update to speech hint property names in the proposed MathML Core property list
60+
* Add speech for coordinates ("the point at 1 comma 2")
61+
* Added pauses for a ","
62+
* Added speech for units (e.g., "km", "in") -- won't work for single letter units such as "m" and "s" unless marked as a unit
63+
* Terse mode now says "of" for functions except for trig/log functions. It was a little too terse before.
64+
65+
#### Navigation
66+
67+
* Added "Speech" to copy menu when navigating so that you can copy out the text used to speak the focus point in the expression being explored.
68+
* Substantial rewrite of the navigation rules so that follow the inferred meaning. For example, if MathCAT says "absolute value of x" and you "zoom in", then you move to the "x", not to a vertical bar. As another example, if MathCAT determines that a table consists of rows of equations, navigation won't concatenate the columns so that the table acts like there is only one column.
69+
* "Speak Overview" didn't do anything (fixed). Overviews remain under-developed.
70+
71+
#### Braille
72+
73+
* Added support for Finnish version of AsciiMath braille.
74+
* Added support for Swedish braille.
75+
* Added support for Vietnamese accents position for Vietnamese braille vowel "rhymes".
76+
* Added preferences so that Nemeth users can remap typeforms (e.g, map BlackBoard Bold to a different character).
77+
* Changed Blackboard typeform indicator to reuse italic indicator instead of reusing the script indicator. By changing the Nemeth typeform values in NVDA's addon subdirectory `addons\MathCAT\globalPlugins\MathCAT\Rulesprefs.yaml or adding it to `%AppData%\MathCAT\prefs.yaml`, you can restore the old mapping.
78+
79+
#### Other
80+
81+
* All the language and braille Rule files are zipped up per directory and unzipped on demand.
82+
* This currently saves ~5mb when Rules.zip is unzipped, and will save even more as more languages and braille codes are added.
83+
* 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.
84+
* Added new preference DecimalSeparator.
85+
* The default value is Auto, with other values being ".", ",", and "Custom". The first three values set DecimalSeparators and BlockSeparators.
86+
* 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.
87+
* 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.
88+
* Add support for some (upcoming) new Unicode characters (equilibrium arrows and others) used in Chemistry into UEB and Nemeth
89+
* Fixed a bug with double-struck numbers for Nemeth.
90+
* Several fixes for recognizing chemistry.
91+
92+
#### Fixes
93+
94+
* Setting .
95+
* Fixed sans-serif indicator for Nemeth braille.
96+
* Fixed a bug where empty cells in a table that is piecewise, m:system-of-equations or lines were spoken.
97+
* Fixed bug where open/closed intervals were inferred when brackets/parens were nested (can't be an interval).
98+
* Fixed a bug in UEB where passage mode should have been used for capitals.
99+
* Fixed a crash with UEB in certain conditions with runs of capital letters.
100+
* Fixed bug in Navigation of tables (previously reported "Error in Navigation").
101+
* Fixed bug moving to previous/next column in tables when at a table row level.
102+
* Fixed bug when trying to correct bad MathML representation of chemistry inside of the base of a script.
103+
* Fixed Vietnamese braille for "/".
104+
* In the dialog code, the file location and %APPDATA% are now used to find the Rules and prefs files.
105+
* After changing how prefs work in a previous version, I forgot to change MathRate and PauseFactor to be numbers, not strings.
106+
* 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.
107+
* Cleaned up use of definitions.yaml.
108+
* Fixed some bugs in the MathML cleanup for "," decimal separators.
109+
* Found a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)
110+
* Fixed "Describe" mode so that it works -- it is still very minimal and probably not useful yet
111+
* Add space after math speech to work around a MS Word bug that concatinates the next character in the text onto the math.
112+
113+
### Version 0.5.6
114+
115+
* Added Copy As... to the MathCAT dialog (in the "Navagation" pane).
116+
* Fixed a bug where the language reverted to English when changing speech styles.
117+
* Fixed a bug with navigation and braille
118+
* Fixed some Asciimath spacing problems.
119+
* Improved chemistry recognition
120+
* Updated MathCAT to new BANA Nemeth chemistry spec (still only single line and special case style/font changes not handled)
121+
* Fix a crash when non-ASCII digits (e.g., bold digits) are used in numbers
122+
* Don't use italic indicators in braille codes when the math alphanumeric italic chars are used
123+
* Some other smaller bug fixes that weren't reported by users
124+
125+
### Version 0.5.0
126+
* 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.
127+
* 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.
128+
* 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.
129+
130+
### Version 0.4.2
131+
* Fixed language switching when voice changes and MathCAT language is "Auto"
132+
* Added more checks for $Impairments to improve reading when it is not set for those who are blind
133+
* Nemeth: fix for "~" when it isn't part of an mrow
134+
* UEB: character additions, "~" spacing fix if prefix, xor fix,
135+
* MathML cleanup for accented vowels (mainly for Vietnamese)
136+
* Major rewrite of preference reading/updating code with big speedup -- added `CheckRuleFiles` pref to control which files are checked for updates
137+
* Added two new interface calls -- enables setting the navigaton location from the braille cursor (not part of MathCAT addon yet)
138+
139+
### Version 0.3.11
140+
* Upgraded to python 3.11 and verified working with NVDA 2024.1
141+
* Fix bugs in Vietnamese braille and also in Speech, mostly for chemistry.
142+
* Fix broken braille when braille code and dependent language don't match (specifically Vietnam braille and Vietnamese speech)
143+
* Fix whitespace bug in HTML inside of tokens
144+
* Improve roman numeral detection
145+
146+
147+
### Version 0.3.9
148+
* Added Traditional Chinese translation (thanks to Hon-Jang Yang)
149+
* Fixed bug with navigating into the base of a scripted expression that has parenthesis
150+
* Significantly changed the way whitespace is handled. This mainly affects braille output (spaces and "omission" detection).
151+
* Improved recognition of chemistry
152+
* UEB braille fixes that came up from adding chemistry examples
153+
* UEB fixes for adding auxillary parenthesis in some cases
154+
155+
156+
### Version 0.3.8
157+
Braille:
158+
* Dialog has been internationalized for several languages (many thanks to the translators!)
159+
* Initial implementation of CMU -- the braille code used in Spanish and Portuguese speaking countries
160+
* Fix some UEB bugs and added some characters for UEB
161+
* Significant improvements to Vietnamese braille
162+
163+
Other fixes:
164+
* Change relative rate dialog slider to have a maximum value of 100% (now only allows setting slower rates). Also, added step sizes so it is easier to raise/lower the rate significantly.
165+
* Fix eSpeak bug that sometimes cut off speech when the relative rate was changed
166+
* Improvements to Vietnamese speech
167+
* Fixed bug with OneCore voices saying "a"
168+
* Fixed some navigation bugs when `AutoZoomOut` is False (not the default)
169+
* Fix updating around language changes and some other dialog changes so they take effect immediately upon clicking "Apply" or "OK".
170+
* Added an "Use Voice's Language" option so that out of the box, MathCAT will speak in the right language (if there is a translation)
171+
* Several improvements for cleaning up poor MathML code
172+
173+
### Version 0.3.3
174+
This release has a number of bug fixes in it. The major new features and bug fixes are:
175+
* Added Spanish Translation (thanks to Noelia Ruiz and María Allo Roldán)
176+
* Modified navigation so that it starts zoomed in one level
177+
* Added cntrl+alt+arrow as a way to navigate tabular structures. These keys should be more memorable because they are used for table navigation in NVDA.
178+
* Worked around NVDA bug for eSpeak voices that caused them to slow down when the relative MathRate was set to be slower than the text speech rate.
179+
* Worked around a OneCore voice problem so that they will speak the long 'a' sound.
180+
181+
There are lots of small tweaks to the speech and some bug fixes for both Nemeth and UEB.
182+
183+
Note: there is now an option to get Vietnam's braille standard as braille output. This is still a work in progress and is too buggy to be used other than for testing. I expect the next MathCAT release will contain a reliable implementation.
184+
185+
### Version 0.2.5
186+
* More improvements chemistry
187+
* Fixes for Nemeth:
188+
* * Added "omission" rules
189+
* * Added some rules for English Language Indicators
190+
* * Added more cases where the Mulitpurpose indicator is needed
191+
* * Fixes related to Nemeth and punctuation
192+
193+
### Version 0.2
194+
* Lots of bug fixes
195+
* Improvements to speech
196+
* A preference setting to control the duration of pausing (works with changes to relative speech rate for math)
197+
* Support to recognize chemistry notation and speak it appropriately
198+
* Translations to Indonesian and Vietnamese
199+

0 commit comments

Comments
 (0)