-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nabla symbol "∇" read as "Gradient of" in inappropriate contexts #288
Comments
Apologies that this has taken so long to get to. You can find a beta version of MathCAT here with div, grad, and curl supported. Let me know if you find problems with this or anything else in this beta. |
MathCAT VersionMathCAT-0.6.6 (NVDA Add-On) Update on Issue"Curl" is properly verbalized as such, but "divergence" is not. Moreover, the bold and vector versions of nabla should be supported, as many textbooks, reference materials, etc., choose to use bold nabla (
Note on GitHub MarkdownGitHub does not seem to render |
Reopening to deal with other notations. |
Also, I think that the default verbalization of the |
I agree that "nabla" should be used, but remain uncertain about what to say for I've opened an issue on what to call some symbols in character navigation mode |
That sounds good! I also wanted to add that a decision could be made to use either "nabla" or "del." According to Edwin Bidwell Wilson's Vector Analysis (1901):
[Sourced from the Wikipedia article entitled "Nabla symbol."] In fact, MathCAT says "del f" at "Terse" verbosity wherever it would say "gradient of f" at higher verbosity (for both SimpleSpeak and ClearSpeak). |
I don't remember doing that, but good to hear that I did the right thing :-) |
I've occasionally heard of the name "del" referring to the |
@NV-Codes, @lnelson2382: I've build a new version of the NVDA addon with the latest fixes. I'd appreciate it if you could try it out and let me know if the fixes work for you or if you find other problems. There are lots of changes since the previous release. You can a list of most of them at %AppData%\Roaming\nvda\addons\MathCAT\doc\en\readme.html after you install the new addon. |
How can I try the new build? The NVDA add-ons site only has a link to the last stable version (0.6.6). |
I believe I found it at https://github.com/NSoiffer/MathCATForPython/releases/tag/latest! I will try it out and let you know. |
Observations using MathCAT-0.6.7:
|
A number of expressions are not read as expected:
It seems that there are fewer issues when rendered by GitHub than when rendered by the source. That is likely due to some difference in the generation of the MathML, but the observations above are based on MathCAT's reading of the expressions as rendered by GitHub. Please note that these integral identities were taken from the "Formula Reference" section of Andrew Zangwill's Modern Electrodynamics. |
I'm glad you found it. I meant to include the link. Here is the build link for the -addon is in case others want to try it. Re-opening to address bugs/other related notations noted above. |
Fixed.
Something broke in switching the navigation mode from the keyboard. I tried changing the navigation mode in the preferences dialog and it properly says "nabla". The MS voices didn't speak "nabla" well, so I changed it to "naabla" and they now sound better; espeak is okay with both.
They work for me. Can you show me the MathML that you are using?
I think I now have this now working as desired.
I noticed you spell out "d i v" -- it should be "div" as a word. Are you hearing the letters d, i, and v separately? I don't remember seeing
Currently I have "divergence of" for verbose mode and "div of" otherwise. I think it makes sense to say "div" (probably not "div of") in terse mode, but let me know if you feel otherwise. It's been a long time since I took vector calculus.
Yes, this is intended. Same for other things like absolute value -- you can't navigate to the vertical bars unless using character navigation or LiteralSpeak because they aren't part of the semantic interpretation. The idea is to allow you to focus more rapidly on the semantic content.
Good idea. I've added them. As for the other problems you identified, I'm trying to figure out how to handle them. The problem is that ∇× is sort of a two character operator and I'm going to need some hack to deal with that. If I put a special case for it in the MathCAT cleanup code, then it affects the literal speech. But if I do it later, it gets messier and potentially won't cover all the cases. I'll figure something out. I'll let you know when I have a new build with this and the other fixes in it. |
@NV-Codes: out of curiosity, are you a braille user? If so, which braille code? I know you found that nabla wasn't in UEB, so I'm guessing the answer is that you use UEB rather than Nemeth. One of the meetings I'm part is deals with ebook readers and is interested to know if high-level math users primarily rely on speech, braille, or both. Anything I can tell them? Another group is working on trying to improve the accessibility of MS Word's math support. Do you use Word or do you use a text editor and write TeX or something else? Thanks for any feedback on your usage, experience, and suggestions. |
Yes, I noticed that I had to use the preferences dialog as well in order to change the navigation mode. Based on trying various spellings, "nahblah" also seems to produce a reasonable pronunciation for the word (using Windows OneCore voices with NVDA), but both are comprehensible. Such workarounds are sometimes important, but do they interfere with NVDA's speech output? I do not know whether there is a way to make synthesizer-specific changes to pronunciation from MathCAT's perspective or if there is a way to file an issue/suggestion for the OneCore developers.
Sure, for
Yes, I hear the letters separately. It seems that OneCore voices pronounce "div" as "d, i, v." They pronounce "dihv" as was likely intended. The synthesizer seems to make inferences about whether certain words should be pronounced or spelled.
It could also be a right operand, as in the following vector identity:
The main issue is hearing "d, i, v" as three separate letters. In terse mode, the divergence is still pronounced "d-i-v of," and the curl is pronounced "curl of." Perhaps for consistency (and in line with terse mode more generally), "of" could be removed for both. This should still be clear.
That makes sense!
Thank you! The pre-release has already been helpful! |
I use a combination of speech and braille when possible. At the moment, I mostly like to use SimpleSpeak in terse mode. Particularly for lengthy expressions (and also for vectorial expressions before MathCAT-0.6.7), braille is especially helpful. Though I initially used the UEB code for math content, I've found that Nemeth is usually more concise (i.e., expressions tend to end up shorter because Nemeth can more concisely represent numerals, subscripts, superscripts, etc.). Expressions with vectors that use the arrow notation may be shorter in UEB (because UEB has a shortcut for vectors), but thankfully boldface notation is often used instead (and is concisely represented in Nemeth). In learning to use both codes for math, I've made use of APH's free online curricula for the UEB Technical Code and Nemeth Code. Since I now primarily use the latter for math, I've also found NFB's Nemeth Symbol Library very helpful. I typically use a text editor to write documents in Markdown and convert them to HTML using Pandoc, as it makes creating math content, as well as heading structure, lists, tables, footnotes, etc., relatively easy, and it allows the generation of screen-reader-friendly HTML (in addition to other formats as necessary):
The math is written between (double) dollar signs in LaTeX notation. An issue still needs to be opened regarding Pandoc's generation of MathML (issue #325), as I rely on its conversion, though I do not know which library (if any) it uses for writing MathML. I sometimes need to work with Word documents, but I find that converting them to HTML with Pandoc first makes navigation of the content easier. Importantly, Pandoc can also convert from pure LaTeX to accessible HTML, which is especially useful if one can obtain the source of textbooks (by contacting the publisher) and papers (from websites, databases, or journals), though it can sometimes be difficult and/or time-consuming to obtain the source TeX. I hope that
In terms of reading and proofreading math content, MathCAT has been an incredibly helpful tool because of its speech, braille, and interactive navigation! |
I confirmed that "div" is being spelled out for OneCore and SAPI5 settings. I'll switch to "dihv" which sounds correct in all the voices, including Eloquence. I'm not 100% sure what the ∇ symbol should speak as. Some options have a more nasal "a" sound than others, but which is better? I'll go with "nahblah" as it is pretty consistent across the four speech engines I tried and the spelling makes it clearer what it should sound like. At the moment, the rules don't have a way to access the speech engine although that might be something to add in the future. With these changes, it isn't necessary now. Thanks for your suggestions on spellings. |
@NV-Codes: for pandoc bugs, you can file the bug here. Pandoc does its own MathML generation. The author was very responsive when I filed a bug about The problem with Pandoc's generation with nabla is that it is putting it into a |
I ended up checking both. In the last example from Modern Electrodynamics that you listed, |
Add a potentially modified ∇ as a signal that we have a vector. These partially address #288
@NV-Codes: I think I have fixed all the issues you raised with cross product, div, etc. You can download a version with these fixes from my google drive. Please let me know what remaining or new issues you find. I'll work on figuring out what broke with switching navigation modes in the meantime. |
Yes! The nabla symbol represents a pseudo-vector; in Cartesian coordinates,
If I understood correctly, then you are asking about multiplying the results of two divergences. Since the divergence yields a scalar quantity, this would simply be multiplication of scalars (neither the dot product nor cross product), and hopefully any author would not use the cross symbol like that in vector calculus texts or similar contexts. It would likely be indicated implicitly by surrounding each divergence in parentheses and having the two parenthetical quantities adjacent, as in
That sounds good, thank you! |
I was unable to access the file at the provided link, and the most recent version listed on the MathCAT for Python Releases page seems to be from last week. I read that one can clone the repository and perhaps run the "build-nvda-addon.sh" script to always have access to the latest add-on. That might make testing easier for the future as well. Cloning a repository is relatively simple from the Git command-line program, but I was wondering
I appreciate your help! |
There are a few repos for the various parts of MathCAT, so building isn't as easy as it could be. Also, it's a little simpler for me to avoid building the addon via github, but it apparently is a little problematic. I've built a new 0.6.7-rc.3 version on github. This fixes toggling the navigation mode and also the navigation speech verbosity. Right now, navigation mostly only echos commands when set to Verbose, but my original idea is that for less common commands such as move to the start/end of line. I'd appreciate what ever suggestions you have as to when to echo commands. Also, thanks for the info on how you handle math. I mostly hear how those who struggle with math deal with math. It is very useful to hear how expert users with advanced knowledge of math use it and the surrounding ecosystem. Sadly, people with your abilities are the exception rather than the rule. Congratulations on your accomplishments!!! |
@NV-Codes: I passed along your response about usage to the accessibility group I mentioned and got several responses expressing thanks for your response. Susan Osterhaus asked me to pass along her response to you:
|
Thank you! I'm very grateful for the free and accessible online resources for math braille and of course for MathCAT as well! |
Some notes on 0.6.8 RC 2:
Good news:
|
@NV-Codes: I think I have the speech issues fixed and also the overview in navigation working. I haven't done much work on overviews, so they probably aren't that useful. One thing that might be confusing is that an overview is given for longer expressions but for shorter ones, it just reads the expression since that would be about the same number of words. The threshold between speaking and overviews needs lots of work. For navigation in Simple mode, what I've decided to do is to treat semantic interpretations like 2D structures -- they would speak the entire semantics (e.g., "div of bold f"). If you zoom in, you will hear the children just as you would zooming into a fraction, square root, etc. I think this is sensible, but I need to play around a bit more before I'm confident that this really is reasonable... and isn't buggy. |
What exactly is an overview? Perhaps rather than having a threshold, MathCAT could simply behave according to the setting, without regard to the number of words. For instance, if an overview gives the number of terms in an expression and a user finds this helpful, then verbalizing "one term" could still be useful. Perhaps there should also be a setting to skip introductory navigation speech altogether and simply start reading the expression's first element (Enhanced mode), "word" (Simple mode), or character (Character mode), as one likely hears the expression in full before choosing to navigate it. For the overview, simply listing the number of terms in an expression could be useful, similar to verbalizing the number of rows and columns in a matrix, though I am not familiar with MathCAT's current output for overviews. I tend to begin navigating as soon as an expression is entered, but a terse outline could speed up interpretation of complex expressions.
Great, that sounds good! |
In calculus and physics, the Nabla symbol "∇" by itself represents the gradient of a function, but if it is followed by a "⋅" or "×" symbol it instead represents the divergence or curl of that function respectively. Currently, the sequence "∇⋅f" is read as "(the) gradient of dot eff"; ideally, it would instead be read as "(the) divergence of eff" or "div eff", but it would also be understandable as "del dot eff" or "nabla dot eff". Would it be possible to change the pronunciation of this symbol, either by default or using a togglable setting similar to MultSymbolDot?
The text was updated successfully, but these errors were encountered: