Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
20535ca
fix up error handling so panic's are reported
NSoiffer Jun 26, 2026
cfd079e
Add panic handling to _tests_ that didn't get the change made a coupl…
NSoiffer Jun 26, 2026
3d69931
added some more Braille->Language codes for testing functions
NSoiffer Jun 26, 2026
7460156
More _test_ panic catches along with improved errors messages on asse…
NSoiffer Jun 26, 2026
7da8ea1
fix clippy warning
NSoiffer Jun 26, 2026
26479a9
no real change -- just cleaned up indentation
NSoiffer Jun 29, 2026
2ea1d0d
Commented out 3 failing tests.
NSoiffer Jun 29, 2026
5b5d29b
Removed duplicates
NSoiffer Jul 24, 2026
4c0de24
Fix https://github.com/daisy/MathCAT/issues/634.
NSoiffer Jul 24, 2026
464d21e
fix clippy errors that occur with new Rust version
NSoiffer Jul 24, 2026
d3e058c
bump verson #
NSoiffer Jul 24, 2026
695e934
fix clippy warnings in build.rs
NSoiffer Jul 24, 2026
bad3263
Since the 2022 BANA spec defines a double struct character indicator,…
NSoiffer Jul 24, 2026
db7980d
exclude BrailleDocs from cargo publish
NSoiffer Jul 24, 2026
5955d1d
Add some Greek variants to fix (some more) #636
NSoiffer Jul 25, 2026
c2892ab
bump version #
NSoiffer Jul 25, 2026
0aa3573
don't convert '...' to ellipsis if it is the second arg of mover
NSoiffer Jul 25, 2026
c7ad088
Fix #633.
NSoiffer Jul 25, 2026
183e3ba
update version #
NSoiffer Jul 25, 2026
5b3a79b
Fix #631 for Nemeth
NSoiffer Jul 25, 2026
a561b27
Add some currency symbols that are part of the 2022 revision
NSoiffer Jul 26, 2026
0e71746
Update for 2022 revision: Rule 24
NSoiffer Jul 26, 2026
9771562
Update to 2022 revision: vertical and diagonal ellipsis
NSoiffer Jul 26, 2026
d443b5a
Fix #626 -- test for `@data-chem-element > 0` to make sure it really …
NSoiffer Jul 26, 2026
d8c67a2
correct some intent and shared hungarian tests hungarian intent prope…
hammera Jun 29, 2026
c9b1b26
Rules/Languages/hu/unicode-full.yaml: Add revieved and corrected tran…
hammera Jul 5, 2026
5b9d794
Rules/Languages/hu/unicode.yaml: removed extra unneed rules after ups…
hammera Jul 25, 2026
257d108
Fix integral tests after hungarian unicode.yaml and unicode_full.yaml…
hammera Jul 25, 2026
4f46a1c
Rules/Languages/hu/SharedRules/default.yaml: added new english transl…
hammera Jul 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[package]
name = "mathcat"
version = "0.7.6-beta.5"
version = "0.7.6-beta.8"
authors = ["Neil Soiffer <soiffer@alum.mit.edu>"]
license = "MIT"
description = "MathCAT: Math Capable Assistive Technology ('Speech and braille from MathML')"
repository = "https://github.com/NSoiffer/MathCAT"
homepage = "https://nsoiffer.github.io/MathCAT/"
documentation = "https://nsoiffer.github.io/MathCAT/"
edition = "2024"
exclude = ["src/main.rs", "docs", "PythonScripts"] # should have "Rules/", but then one can't run build.rs to build the zip file
exclude = ["src/main.rs", "docs", "BrailleDocs", "PythonScripts"] # should have "Rules/", but then one can't run build.rs to build the zip file


[features]
Expand Down
472 changes: 235 additions & 237 deletions Rules/Braille/CMU/unicode-full.yaml

Large diffs are not rendered by default.

1,530 changes: 765 additions & 765 deletions Rules/Braille/CMU/unicode.yaml

Large diffs are not rendered by default.

31 changes: 22 additions & 9 deletions Rules/Braille/LaTeX/LaTeX_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -252,11 +252,24 @@
- t: "𝐖"

-
name: "hat"
tag: "mover"
match: "*[2][.='^']"
name: "accents"
tag: mover
match: "*[2][IsInDefinition(., 'Braille', 'Accents')]"
replace:
- t: "𝐖\\"
- x: "DefinitionValue(*[2], 'Braille', 'Accents')"
- t: "{"
- x: "*[1]"
- t: "}𝐖"

-
name: "under-marks"
tag: munder
match: "*[2][IsInDefinition(., 'Braille', 'UnderAccents')]"
replace:
- t: "𝐖\\hat{"
- t: "𝐖\\"
- x: "DefinitionValue(*[2], 'Braille', 'UnderAccents')"
- t: "{"
- x: "*[1]"
- t: "}𝐖"

Expand All @@ -267,8 +280,8 @@
replace:
- test:
if: "$LaTeX_UseShortName"
then: [t: "\\ol{"]
else: [t: "\\overline{"]
then: [t: "𝐖\\ol{"]
else: [t: "𝐖\\overline{"]
- x: "*[1]"
- t: "}"

Expand Down Expand Up @@ -357,11 +370,11 @@
replace:
- test:
if: "self::m:munderover"
then: [t: "\\overset{"]
then: [t: "𝐖\\overset{"]
- test:
if: "self::m:munder or self::m:undermover"
then: [t: "\\underset{"]
else: [t: "\\overset{"]
then: [t: "𝐖\\underset{"]
else: [t: "𝐖\\overset{"]
- x: "*[2]"
- t: "}{"
- x: "*[1]"
Expand Down
8 changes: 8 additions & 0 deletions Rules/Braille/LaTeX/definitions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,11 @@
"⨋", "∐", "∏", "⫿", "⫼", "⨉", "⨈", "⨇", "⨆", "⨅",
"⨂", "⨀", "⋂", "⋁", "⋀", "⨄", "⨃", "⋃", "⨁", "⨞", "⨝", "⨊", "∑",
}

- Accents: {
"→": "vec", ".": "dot", "·": "dot", "˙": "dot", "..": "ddot", "~": "tilde", "^": "hat", "⏞": "overbrace",
}

- UnderAccents: {
"¯": "underline", "⏟": "underbrace", "→": "underrightarrow",
}
36 changes: 22 additions & 14 deletions Rules/Braille/Nemeth/Nemeth_Rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -481,14 +481,16 @@
- x: "*[2]"
- test:
# emit level indicator if something follows or the closest non-mrow is an element with a close tag [80(a)]
# if: "count(following-sibling::*) > 0 or ancestor::*[name() != 'mrow'][1]/.[self::m:mfrac or self::m:msqrt or self::m:mroot]"
if: "not( (parent::m:msubsup and count(following-sibling::*)=1) or following-sibling::*[2][self::m:mmultiscripts and *[self::m:mprescripts]] )" # first child is likely invisible times
then_test:
if: "$OldScriptContext != ''"
then: [x: "$OldScriptContext"]
else_test:
if: "not( parent::*[self::m:msubsup] )" # msupsup will generate baseline indicator
then: [t: "b"]
# if a left script follows, add the multipurpose indicator ("b")
- if: "not( (parent::m:msubsup and count(following-sibling::*)=1) )"
then_test:
if: "$OldScriptContext != ''"
then: [x: "$OldScriptContext"]
else_test:
if: "not(parent::m:msubsup)" # msupsup will generate baseline indicator
then: [t: "b"]
- else_if: "following-sibling::*[2][self::m:mmultiscripts and *[self::m:mprescripts]]" # first child is likely invisible times"
then: [t: "m"]

-
# From the chemistry guide, move the state from the subscript to after the script (5.3.2)
Expand Down Expand Up @@ -528,11 +530,15 @@
- t: "M" # multipurpose indicator prevents the 'letter digit' substitution (177.2) from kicking in
- x: "*[2]"
- test:
if: "count(following-sibling::*) > 0 or (position() = 1 and parent::*[IsNode(., 'scripted')])"
then_test:
if: "position() = 1 and parent::*[IsNode(., 'scripted')]"
then: [t: "b"]
else: [t: "M"]
- if: "following-sibling::* or (position() = 1 and parent::*[IsNode(., 'scripted')])"
then_test:
if: "position() = 1 and parent::*[IsNode(., 'scripted')]"
then: [t: "b"]
else_test:
if: "following-sibling::*[2][self::m:mmultiscripts and *[self::m:mprescripts]]"
then: [t: "m"]
else: [t: "M"]


- name: default
tag: msub
Expand All @@ -547,11 +553,13 @@
- x: "*[2]"
- test:
# emit level indicator if something follows or the closest non-mrow is an element with a close tag [80(a)]
if: "not( (parent::m:msubsup and count(following-sibling::*)=1) or following-sibling::*[2][self::m:mmultiscripts and *[self::m:mprescripts]] )" # first child is likely invisible times
- if: "not( (parent::m:msubsup and count(following-sibling::*)=1))"
then_test:
if: "$OldScriptContext !=''"
then: [x: "$OldScriptContext"]
else: [t: "b"]
- else_if: "following-sibling::*[2][self::m:mmultiscripts and *[self::m:mprescripts]]" # first child is likely invisible times"
then: [t: "m"]

- # primes don't get a superscript indicator and come before the subscript
name: skip-super
Expand Down
Loading
Loading