Access8Math 3.3 (可阅读 MathML 数学内容,辅助书写LaTeX数学内容的插件)

该 NVDA 插件提供了数学内容的阅读功能,原本 NVDA 也支持腧穴内容的阅读,但因为是调用了 MathPlayer 的功能,部份功能尚显不足,例如未提供或不完整的特定语言翻译、未提供特定语言的导航浏览等等。

阅读功能

  • 完整阅读
  • 交互阅读
  • 文本导航模式逐字阅读
  • 简化朗读规则
  • 项目与项目间停顿

书写功能

  • 以 Latex/AsciiMath 书写数学内容
  • 菜单交互式书写 LaTeX/AsciiMath 语法
  • 快捷指令书写 LaTeX/AsciiMath 语法
  • 导航光标移动编辑
  • 直接阅读包含 LaTeX/AsciiMath 的文档
  • 导出预览 HTML 文件

Access8Math 说明

该 NVDA 插件提供了数学内容的阅读功能,原本 NVDA 也支持腧穴内容的阅读,但因为是调用了 MathPlayer 的功能,部份功能尚显不足,例如未提供或不完整的特定语言翻译、未提供特定语言的导航浏览等等。

导航浏览可将一个长数学内容分成较小的部分进行阅读,并可以使用一系列的键盘按键操作来选择需要阅读的部分和阅读的方式,此功能可以更好的理解长数学内容结构与项与项之间的层级关系。

该插件提供了数学表达式的书写功能,通过交互式菜单,无需记忆 LaTeX/AsciiMath 语法就可以完成数学表达式的书写,书写完成后可以导出 HTML 文件,便于跟其他人交流互动。

阅读功能

朗读:可以朗读在网页浏览器(Mozilla Firefox, Microsoft Internet Explorer 和 Google Chrome)上以 MathML 书写的数学内容或在 Microsoft Word 上以 MathType 书写的数学对象(需安装 MathType)

交互:在数学对象上按下空格键或回车键可与该数学内容进行可交互式的导航浏览,即可以浏览数学内容中的子内容并在子内容间移动或缩放子内容大小(此处所谓“子内容”可以是表达式中的各个部分,如分式的分子、分母,具体的表达式中的某一项等)

分析内容整体的数学意义:将数学内容进行语义分析,符合特定规则时,以该规则的数学意义进行朗读

分析内容项目的数学意义:在导航浏览时会提示该项内容在其上层中的意义,例如分数有分子和分母两项,在这两项之间移动时会提示其为分子或分母

项目与项目之间停顿:数学内容中各项之间可停顿,便于理解记忆。

在 MathML 数学对象上按空格键后可进行操作

  • 在阅读设置中勾选“进入交互模式时显示交互窗口”会打开 Access8Math 交互窗口,当系统焦点移动到“交互”按钮时会自动进入交互式导航
    • 交互:进入交互式导航浏览
    • 复制:复制该对象的 MathML 源代码
  • 未在设置中勾选“进入交互模式时显示交互窗口”则自动进入交互式导航浏览
    • 上下左右箭可以浏览数学内容中的子内容并在子内容间移动或缩放子内容大小(此处所谓“子内容”可以是表达式中的各个部分,如分式的分子、分母,具体的表达式中的某一项等)
    • 文本导航模式逐字阅读:在导航浏览过程中使用 NVDA 的文本查看快捷键(如台式机键盘方案的数字小键盘 1-9 可按照逐字、逐行的方式阅读数学内容

导航浏览过程中的按键:

  • 下光标缩小当前数学内容成更小的子内容
  • 上光标放大当前数学内容成更大的子内容
  • 左光标向前一项数学内容
  • 右光标向后一项数学内容
  • "Ctrl+c": 复制对象MathML源代码
  • home键回到最顶层(朗读完整的数学内容)
  • 数字键盘 1-9:使用 NVDA 文本查看模式阅读数学内容(笔记本键盘方案请参看 NVDA 用户指南的文本查看相关章节)
  • ESC键退出交互导航浏览模式

数学规则

主要结构分析规则:这些规则是为了提高常用结构的阅读体验而设计的,例如‘x^2’将朗读为‘x 的平方’而非‘x 脱字符 2’

简化朗读规则:简化朗读规则是各种规则的简化版,当其内容仅为单一项目时,便可省略前后标记朗读,以达到更好的理解与阅读,而不至于造成混淆,例如:「\frac{1}{2}」将朗读为「2 分之 1」而非「分数 2 分之 1 结束分数」

书写功能

书写混合内容(文字内容与数学内容):

书写混合内容(建议使用插件内置编辑器, Windows11 必须使用插件内置编辑器, Windows 11 以下可使用系统记事本)

以 LaTeX 或 AsciiMath 分隔符划分数学标记区域,用以区分文字内容和数学内容,在 LaTeX 或 AsciiMath 标记区域内的内容为 LaTeX/AsciiMath 数学内容,在标记区域之外的为文字内容。

  • LaTeX 分隔符:()可以在书写设置中选择使用括号或美元符号)
    • 开始分隔符:「(」 或 「$」
    • 结束分隔符:「)」 或 「$」
  • AsciiMath 分隔符
    • 開始分隔符:「`」
    • 結束分隔符:「`」

命令手势(开关:NVDA+alt+c)

alt+m:弹出标记命令窗口,选择 LaTeX/AsciiMath 按下 enter 键就会在当前所选择文字前后(未选择文字时为当前光标处)插入 LaTeX/AsciiMath 标记分隔符,并会将光标自动移动到两分隔符之间,便于快速输入内容

alt+l:彈出 LaTeX 命令窗口,选择要加入的 LaTeX 命令项目按下 enter 键,就会在当前光标处加入 LaTeX 语法,并且会将光标移动到适当的位置,便于快速输入内容。

LaTeX 命令窗口

  • 选中任意 LaTeX 命令项目按下英文字母 (a~z) 或 f1~f12 设置快捷指令
  • 选中任意 LaTeX 命令项目按下 delete/backSpace 清除设置的快捷指令
  • 选中任意 LaTeX 命令项目按下 enter 在当前光标处加入对应的 LaTeX 语法

alt+i:若光标停留在数学区域可与该数学内容进行交互式浏览

alt+h 可转换出包含文字内容与数学内容的 HTML 文件并可进行预览或导出。其中数学区域的内容汇转成 MathML 便于跟普通文字一起呈现。

  • 预览:通过已设置的关联 .HTML 扩展名的程序打开转换后的 HTML 文件。
  • 导出:将转换后的 HTML 文件打包成一个压缩文件。

alt+t:可以将光标所在数学区域内的内容在 LaTeX 与 AsciiMath 之间转换(光标需停留在 LaTeX 或 AsciiMath 区域内)

在书写设置内可以选择是否‘默认启用命令手势’,编辑区域内按 NVDA+alt+c 开启或关闭命令手势(可以在按键与手势对话框内更改)。

区域导航手势(开关:NVDA+alt+n)

  • alt+左光标:移动到上一个区域的开始点
  • alt+下光标:不移动仅读出当前区域的内容
  • alt+右光标:移动到下一个区域的开始点
  • alt+home:移动到当前区域的开始点
  • alt+end:移动到当前区域的结束点
  • alt+shift+左光标:移动到上一个区域并选取
  • alt+shift+下光标:不移动仅选取当前区域
  • alt+shift+右光标:移动到下一个区域并选取

在书写设置内可以选择是否‘默认启用区域导航手势’,编辑区域内按 NVDA+alt+n 开启或关闭区域导航手势(可以在按键与手势对话框内更改)。

快捷指令手势(开关:NVDA+alt+s)

当光标在 LaTeX 区域时,按字母、 f1~f12 可快速插入 LaTeX 语法。按 shift+字母、shift+f1~f12 可读出该快捷键绑定的 LaTeX 快捷指令,需先在 LaTeX 菜单中设置。

在书写设置内可以选择是否‘默认启用快捷指令手势’,编辑区域内按 NVDA+alt+s 开启或关闭快捷指令手势(可以在按键与手势对话框内更改)。

希腊字母手势(开关:NVDA+alt+g)

当光标在 LaTeX 区域时,按字母可快速输入对应的 LaTeX 语法。

对照表

英文字母 希腊字母 LaTeX
a α \alpha
b β \beta
c θ \theta
d δ \delta
e ε \epsilon
f φ \phi
g γ \gamma
h η \eta
i ι \iota
k κ \kappa
l λ \lambda
m μ \mu
n ν \nu
o ο \omicron
p π \pi
r ρ \rho
s σ \sigma
t τ \tau
u υ \upsilon
v φ \psi
w ω \omega
x χ \chi
y ξ \xi
z ζ \zeta

浏览导航模式(开关:NVDA+space)

当浏览导航模式开启时,光标移动读出的数学内容区域为语义化内容,而非数学表达式源代码。

可以使用以下按键手势移动编辑光标或交互导航

  • 左光标:移动到上一个区域的开始点并读出
  • 右光标:移动到下一个区域的开始点并读出
  • 上光标:移动到上一行并读出该行所有区域的内容
  • 下光标:移动到下一行并读出该行所有区域的内容
  • pageUp:向上移动十行并读出该行所有区域的内容
  • pageDown:向下移动十行并读出该行所有区域的内容
  • home:移动到光标所在行的第一个区域
  • end:移动到光标所在行的最后一个区域

以上光标移动按键加上 Shift 会一并选择文字

space/enter:光标停留在数学区域则与此数学内容进行交互式导航

下列按键,若按下单一按键,编辑光标会移动到其对应的后一个区域位置,若同时按下 Shift 键,编辑光标会移动到前一个区域位置

  • l: 移动到下一个 LaTeX 区域并读出
  • a: 移动到下一个 ASCIIMath 区域并读出
  • m: 移动到下一个 MathML 区域并读出
  • t: 移动到下一个 文字 区域并读出
  • tab: 移动到下一个 可互动区域(数学区域)并读出

可以使用以下按键编辑或修改相应区域

  • ctrl+x:剪切当前光标所在区域
  • ctrl+c:复制当前光标所在区域
  • ctrl+v:在当前光标所在区域后粘贴内容
  • delete/back space:删除当前光标所在区域

内置编辑器

自 Windows11 起,系统内置记事本改为富文本编辑器而非传统的纯文本编辑器,所以必须使用插件内置编辑器书写数学内容,插件内置编辑器也提供了打开、保存、预览等功能。

预览菜单下的导出和预览功能与原有功能一致,可生成 HTML 文件,对于生成的 HTML 文件其可包含 TXT 文件所在文件夹内的资源文件,书写时使用 Markdown 语法引用该资源即可。

混合内容示例

  • LaTeX(使用括号作为分隔符):一元二次方程是 (ax^2+bx+c=0) 的解为 (x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}) 。
  • LaTeX(使用美元作为分隔符):一元二次方程是 $ax^2+bx+c=0$ 的解为 $x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$ 。
  • AxciiMath:一元二次方程式 ax^2+bx+c=0 的解为 x=(-b+- \sqrt(b^2-4ac))/(2a)
  • MathML:一元二次方程是 ax2+bx+c=0 的解为 b±b24ac2a

设置

所有 Access8Math 的设置都在 NVDA 菜单 > 工具 > Access8Math 菜单内。

阅读设置

*   语言:Access8Math 朗读数学内容的语言
  • 语音来源:选择使用 Access8Math 或 Math Player 的语音朗读
  • 盲文来源:选择使用 Access8Math 或 Math Player 的盲文显示
  • 交互来源:选择使用 Access8Math 或 Math Player 的交互导航方式
  • 分析内容的数学意义:将数学内容进行语义化分析,符合某规则会使用相应的语音朗读及盲文显示
  • 进入交互模式时显示交互窗口:激活数学对象进入互动模式,是否显示交互窗口,
  • 在交互模式下导航时读出字典中的预定义含义:在交互模式下导航浏览时,若字典文件中有定义则使用字典中的定义读出该项在其上层中的含义
  • 在交互模式下导航时读出自动生成的含义:在交互模式下导航浏览时,若字典文件中的定义不完整或无定义,则使用自动生成功能读出该项在其上层中的含义
  • 在交互模式下使用音效来提示无法移动:在交互模式下导航浏览时,当无法移动时播放音效提示,取消勾选则以语音提示“无法移动”
  • 项与项之间间隔时长:设置数学内容项目与项目间朗读停顿的时间,数值从1到100,数值越小表示停顿时间越短,反之数值越大表示停顿时间越长。

书写设置

  • 默认启用命令手势
  • 默认启用区域导航手势
  • 默认启用快捷手势
  • 以音效提示浏览导航模式的切换
  • 在浏览导航模式下左/右光标键允许跨行移动
  • HTML 文档呈现
  • HTML 公式呈现
  • LaTeX 分隔符

规则设置:选择某规则是否启用的设置

本地化

Access8Math 本地化菜单中可以自定义语音朗读及盲文显示,语音朗读与盲文显示包含‘Unicode字典’和‘数学规则’两部分。

  • 「语音 Unicode 字典」可设置各项符号的朗读方式。
  • 「语音腧穴规则」可设置各数学内容的朗读方式。
  • 「盲文 Unicode 字典」可设置各项符号的盲文显示方式。
  • 「盲文腧穴规则」可设置各数学内容的盲文显示方式。
  • 「添加新语言」可加入插件未提供的语言,加入后在常规设置内会多出刚添加的语系并可随后通过「unicode 朗读字典」与「数学规则」定义读法实现多语言机制

Unicode 字典编辑

Access8Math 通过字典文件方式将特定符号对应到特定的文本,从而解决部份罕见符号语音合成器不支持、复合多个符号为一个数学符号(如 sin 为正弦)、或因部份符号通用性问题在数学上与一般使用上有所不同(如! 为阶乘)等问题

添加:添加一组对应字典条目,按下该按钮后可输入欲添加的符号,按确认后即可在符号列表上看到刚添加的符号

修改当前符号:选择一项已有符号并在替换文本中输入要替换朗读的内容,以后 Access8Math 遇到此符号后即可用替换文本朗读此符号

移除:选择一项已有符号后按下移除按钮可删除选定的符号

恢复默认值:将符号列表还原到初始默认值。

导入:将字典文件导入,可用于加载字典文件。

导出:将字典文件保存到指定路径,便于分享或保存字典文件。

数学规则编辑

Access8Math 将常用数学表达式依据类型与逻辑,建立了46项数学规则,程序依据这套规则判断数学表达式的朗读方式与朗读顺序,根据各地习惯不同,可以更改数学表达式的朗读顺序与朗读方式,更改方法如下:

编辑: 进入"数学规则"后,窗口内有数学规则列表,选则任一规则后可选择"编辑按钮"进入编辑条目。

规则的"编辑条目"可分为两大部分,分别是序列化顺序与子节点角色。

  • 序列化顺序:将数学规则根据朗读顺序划分多个部分,在此部分可更改规则子项目的朗读顺序及开始、项目间和结束文本的分隔内容,以分数规则 mfrac 为例,此规则分为五个朗读顺序,顺序0、2和4分别代表开始提示、项目间提示与结束提示,可在各字段中输入自己习惯的朗读方式,而顺序1和3则可调整子节点朗读的先后,可在组合框中更改其顺序。
  • 子节点角色:为该数学规则的下级子项目,以分数规则 mfrac 为例,此项规则就包含分子与分母两项,而在子节点字段中,可以更改该项子内容在其上层子内容的意义文本(如: 分子或分母)。

示例:预览编辑修改后的规则读法,点击后会出现一个使用该规则的数学内容,供用户确认该类型的规则修改是否符合预期。

恢复默认值:将数学规则列表恢复到初始默认值。

导入:将数学规则文件导入,可用于加载数学规则文件。

导出:将数学规则文件保存到指定路径,便于分享或保存数学规则文件。

示例

维基百科上的数学内容都以 MathML 书写而成

一元二次方程的解:

  • LaTeX: (ax^2+bx+c=0)
  • MathML: -b±b2-4ac2a

github: https://github.com/tsengwoody/Access8Math

欢迎提出见意与 bug 反馈,谢谢!

本插件简体中文本地化由 Eureka manchen_0528@outlook.com 维护,有任何与简体中文本地化相关的问题可通过该邮件联系。

维护

兼容性已选择

  • 兼容2019.3 及以上版本的NVDA

下载地址

标签: none

已有 4 条评论

  1. Derrick Derrick

    不知道为啥,我觉得此插件是难以使用的,一张试卷,大概有几时个公式,NVDA本身非常慢,加上此插件,几乎难以使用。我认为插件构建可能是有一些问题的,我虽然不太了解此中过程,但我知道,公式的格式类似xml,读取有规范格式的信息并呈现需要若干秒钟,未免有些拉跨。我并不是埋怨,我只是反馈情况。我想表达的是在想真正使用的时候,插件却不是那么理想。

    1. 酱油醋 酱油醋

      会有那么长时间的延迟吗?比较好奇?

  2. tsengwoody tsengwoody

    如果 NVDA 本身就很慢很可能是使用的電腦效能不足,另建議使用瀏覽器讀 HTML 格式會比 Word 搭配 mathtype 順暢

  3. [...]Access8Math 3.3 (可阅读 MathML 数学内容,辅助书写LaTeX数学内容的插件)[...]

添加新评论