Skip to content

Releases: NSoiffer/MathCATForC

Development Build

17 Aug 01:21
Compare
Choose a tag to compare
Development Build Pre-release
Pre-release
latest

Add test files to the release build

Zipped Files, new number separator handling, added Swedish

16 Jun 19:42
Compare
Choose a tag to compare

Update to MathCAT 0.6.1.

New features

  • 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.
  • Added Swedish to supported languages.

Fixes

  • 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

New(ish) build

  • Added Windows ARM 64-bit build in last release. Awaiting feedback that it works.

Development Build

06 May 21:57
Compare
Choose a tag to compare

Fixes

  • 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

New build

  • Added Windows ARM 64-bit build. Awaiting feedback that it works

V0.5.1

24 Mar 21:45
Compare
Choose a tag to compare

The build now includes headers for C and C++

New Features:

  • German braille code based on LaTeX
  • ASCIIMath braille code

Unlike other braille codes, these two braille codes generate ASCII chars. This was done in consultation with German braille code developers so that both 6-dot and 8-dot German braille are supported, along with the possibility that other countries braille codes can be used. This requires that braille output table be set accordingly.

Interface Changes

Adds

  • const char *GetNavigationBraille()

This returns the braille associated with the current navigation focus. The returned braille ignores the context in which it lives (i.e., it is brailled as if the current navigation focus is the entire expression).

Note: the existing GetBraille(nav_node_id) returns the braille for entire expression with the braille indicated by nav_node_id highlighted as per the BrailleNavHighlight preference.

Copy As...

The addition of LaTeX and ASCIIMath braille codes allows for the implementation of a "Copy As" MathML/LaTeX/ASCIIMath feature. To help support this, MathCAT has a new CopyAs preference

This is part of the NVDA Addon. The implementation is in the addon file MathCAT.py, not MathCAT. For reference, the python code used in NVDA for it is:

    copy_as = "mathml"      # value used even if "CopyAs" pref is invalid
    text_to_copy = ""
    try:
        copy_as = libmathcat.GetPreference("CopyAs").lower()
    except Exception as e:
        log.error(f"Not able to get 'CopyAs' preference: {e}")
    if copy_as == "asciimath" or copy_as == "latex":
        # save the old braille code, set the new one, get the braille, then reset the code
        saved_braille_code: str = libmathcat.GetPreference("BrailleCode")
        libmathcat.SetPreference("BrailleCode", "LaTeX" if copy_as == "latex" else "ASCIIMath")
        text_to_copy = libmathcat.GetNavigationBraille()
        libmathcat.SetPreference("BrailleCode", saved_braille_code)
        if copy_as == "asciimath":
            copy_as = "ASCIIMath"  # speaks better in at least some voices
    else:
        mathml = libmathcat.GetNavigationMathML()[0]
        if not re.match(self._startsWithMath, mathml):
            mathml = (
                "<math>\n" + mathml + "</math>"
            )  # copy will fix up name spacing
        elif self.init_mathml != "":
            mathml = self.init_mathml
        text_to_copy = self._wrapMathMLForClipBoard(mathml)

    self._copyToClipAsMathML(text_to_copy, copy_as == "mathml")
    # Translators: copy to clipboard
    ui.message(_("copy as ") + copy_as)

Hopefully this gives an idea of what needs to be done in other AT.

V0.4.0

28 Feb 04:43
Compare
Choose a tag to compare

Update to MathCAT 0.4.0

Interface Changes

Adds new interface calls for navigation (see mathcat.h for more information):

  • const char *SetNavigationLocation(NavigationLocation location)
  • NavigationLocation GetNavigationLocation()
  • NavigationLocation GetNavigationLocationFromBraillePosition(uint32_t position)

where NavigationLocation is defined as:

struct NavigationLocation {
  const char *id;
  uint32_t offset;
};

The following interfaces are deprecated and will go away in a future release:

  • const char *GetNavigationMathMLId()
  • uint32_t GetNavigationMathMLOffset()

Supported Languages/Braille Codes

Supported languages: English, Spanish, Indonesian, Vietnamese, Chinese (Traditional)
Supported braille codes: CMU (Spanish, Portuguese), Nemeth, UEB, Vietnam

MathCAT C build 32 & 64 bit -- v0.3.10

02 Jan 09:42
Compare
Choose a tag to compare

Fix bugs in Vietnamese braille and also in Speech.

Also:

  • Fix whitespace bug in HTML inside of tokens
  • Fix roman numeral detection

MathCAT C build 32 & 64 bit -- v0.3.9

28 Dec 01:35
Compare
Choose a tag to compare
  • Added Traditional Chinese translation (thanks to Hon-Jang Yang)
  • Fixed bug with navigating into the base of a scripted expression that has parenthesis
  • Significantly changed the way whitespace is handled. This mainly affects braille output (spaces and "omission" detection).
  • Improved recognition of chemistry
  • UEB braille fixes that came up from adding chemistry examples
  • UEB fixes for adding auxillary parenthesis in some cases

MathCAT C build 32 & 64 bit -- v0.3.8

06 Nov 05:19
Compare
Choose a tag to compare

Braille:

  • Initial implementation of CMU -- the braille code used in Spanish and Portuguese speaking countries
  • Fix some UEB bugs and added some characters for UEB
  • Significant improvements to Vietnamese braille

Other fixes:

  • Added Spanish translation
  • Improvements to Vietnamese speech
  • Fixed some navigation bugs when AutoZoomOut is False (not the default)
  • Several improvements for cleaning up poor MathML code

MathCAT C build 32 & 64 bit beta 1

21 Aug 20:45
Compare
Choose a tag to compare

Updated to v0.3.6 w/updates for Vietnam braille.
Updated again on 8/24 with changes to logs with bases, Greek letters, etc.

Supports a new option UseDropNumbers for numeric fractions.

Note: the initial dll's had a bug and have been replaced.

MathCAT C build 32 & 64 bit beta 2

31 Aug 03:53
Compare
Choose a tag to compare
Pre-release

Updated to latest fixes for numbers and units.