Access8Math 可以閱讀 MathML 編寫的數學內容;可以使用 LaTeX 書寫數學內容(最新版:4.0 兼容 NVDA2024.1)

搭配 NVDA 2024.1 發佈的時程,發佈可運行於 NVDA 2024.1 以上的 Access8Math 4.0 版本

Access8Math v4.0(NVDA 2024.1 以上) & Access8Math v3.8(NVDA 2023.3 以下) 更新日誌

  • 互動模式中對 Mtable 可使用表格導覽(ctrl+alt+方向鍵)
  • 新增 LaTeX 選單類別,包括幾何學、排列組合、三角函數與微積分類別
  • 新增 LaTeX 選單項目
  • 加入取整符號
  • 修正 Nemeth 轉 LaTeX 時 .1 與 > 符號轉換錯誤
  • 修正數學規則對話框還原預設檔的路徑錯誤
  • 相容於 NVDA 2024.1
  • 移除遺留冗餘程式碼

Access8Math 功能

此 NVDA addon 增强了数学内容的阅读和書寫体验。

阅读功能特色包括可客製的語音/點字輸出,透過互動导航可将长数学内容分割成较小部分以利閱讀。

書寫功能特色包括用于更易於输入 LaTeX/AsciiMath/Nemeth 的指令選單,以及将純文字文件轉換為視覺可读的 HTML 文件,以便更好的與他人协作。

閱讀功能特色

  • 文字內容與數學內容整行閱讀
  • 互動導航中,移動、放大或縮小數學片段以利閱讀
  • 互動導航中,使用 NVDA 檢閱游標閱讀文字
  • 可選擇簡化朗讀規則
  • 項目與項目間停頓

書寫功能特色

  • 可使用 LaTeX/AsciiMath/Nemeth 書寫數學內容
  • 用來輸入 LaTeX 語法的指令選單
  • 用來输入 LaTeX 的快捷手势
  • 在编辑時協助更有效地移动游標
  • 在编辑時即時閱讀含 LaTeX/AsciiMath/Nemeth 的內容
  • 将純文字文件转换为 HTML 文件的功能並进行预览和匯出

Access8Math 說明

此 NVDA 附加元件提供數學內容的閱讀,原先NVDA亦有此功能,但因是調用MathPlayer的功能,部份功能尚顯不足,例如未提供或不完整的特定語言翻譯、未提供特定語言的互動導航等等。

互動導航可將一個數學內容分段成較小的部份片段進行報讀,並透過一系列的鍵盤按鍵操作來選擇讀取的片段和方式,此功能可更好的理解長數學內容結構與項與項之間的層級關系。

此 NVDA 附加元件提供數學內容的書寫,透過指令選單,使得在輸入 LaTeX/ AsciiMath 語法時無需記憶即可完成輸入任務,在完成撰寫內容後,可透過檢視指令將文件製作成可視讀之 HTML 文件,透過 HTML 文件可便利的與其他人進行互動討論。

閱讀功能

Access8Math 可以讀取瀏覽器(如 Mozilla Firefox、Google Chrome 和 Microsoft Edge)中的 MathML 內容,以及 Microsoft Word 中的 MathType 內容。

在 MathML 數學物件上按 space 鍵或 enter 鍵,可以進入導航模式並通過移動、放大或縮小閱讀片段來與內容互動。

分析內容整體的數學意義:將數學內容進行語意分析,符合特定規則時,以該規則進行朗讀。

分析內容項目的數學意義:在互動導航時會提示該項內容在其上層內容下的意義,例如分數項有兩項,在其間移動會報讀該項目為分母或分子。

項目與項目間停頓:數學內容中各項次間語音可停頓,讓閱讀者能更快掌握整體數學內容。

互動導航

  • 閱讀設定中「當進入互動導航模式時,顯示互動視窗」勾選會開啟「Access8Math 互動視窗」,當系統焦點移至互動按鈕時會自動進入互動導航

    • 互動:進入互動導航
    • 複製:複製數學物件之 MathML 碼
  • 閱讀設定中「當進入互動模式時,顯示 Access8Math 互動視窗」無勾選則會直接進入互動導航功能

在導航互動模式下可用的指令按鍵:

  • 向下鍵:縮小閱讀片段含概的範圍
  • 向上鍵:放大閱讀片段含概的範圍
  • 向左鍵:向前一項數學內容
  • 向右鍵:向後一項數學內容
  • Ctrl+c: 複製物件的 MathML 碼
  • home鍵:閱讀片段的範圍為整個數學內容
  • 數字鍵盤1-9:使用NVDA 檢閱模式閱讀數學內容(請參見 NVDA 用戶指南的檢閱模式章節)
  • esc鍵:退出互動導航模式
  • ctrl+alt+方向鍵:可在數學表格中以行與列方式移動

數學規則

數學結構分析規則:此類規則是為了提高常用數學結構的閱讀體驗而設計,例如:「x^2」將報讀為「x 的平方」而非「x 上標 2」

簡化朗讀規則:簡化朗讀規則是各種規則的簡化版,當其內容僅為單一項目時,便可省略前後標記朗讀,以達到更好的理解與閱讀,而亦不致造成混淆,例如:「\frac{1}{2}」將報讀為「2 分之 1」而非「分數 2 分之 1 結束分數」

書寫功能

綜合內容:含有文字內容與數學內容

在 windows 11 必需使用 Access8Math 編輯器;而在 windows 10 或更早版本可使用 Access8Math 編輯器或記事本。建議使用Access8Math 編輯器編寫綜合內容。

以分隔標記框出數學標記區,用以區分文字內容與數學內容,亦即在數學標記區內的資料為指定語法的數學內容,在數學標記區外的為文字內容。

類別 開始標記 結束標記
LaTeX(括號) ( )
LaTeX(錢號) $ $
AsciiMath |
Nemeth(UEB) _% _:
Nemeth(at) @ @

您可以在書寫設定中選擇 LaTeX/Nemeth 使用的分隔符。

指令手勢(開關:NVDA+alt+c)

alt+m:彈出標記指令視窗,選擇 LaTeX/AsciiMath/Nemeth 按下 enter 鍵即會在當前所選文字前後(無選擇文字時為當前游標處)加入 LaTeX/AsciiMath/Nemeth 標記並會自動將游標移入其內,以快速輸入內容。

alt+l:彈出 LaTeX 指令視窗,選擇要加入的 LaTeX 指令項目按下 enter 鍵即會在當前游標處加入對應的 LaTeX 語法並會自動將游標移入適當輸入點,以快速輸入內容(如游標未在 LaTeX 區內會自動加上開始與結束標記)。

LaTeX 指令視窗

  • 選到任意 LaTeX 指令項目按下英文字母(a~z)或 f1~f12 設定快捷
  • 選到任意 LaTeX 指令項目按下 delete/back space 移除已設定的快捷
  • 選到任意 LaTeX 指令項目按下 enter 在當前游標處加入對應的 LaTeX 語法

alt+i:游標停在數學區塊上時,可與該數學區塊進行互動導航

alt+h:可轉換出文字區塊與數學區塊的 HTML 文件並可進行預覽或匯出。其中數學區塊之內容匯轉成 MathML 並與文字並列呈現,以利視覺閱讀。

  • 在書寫設定中的 HTML 文件顯示,可選擇匯出後的 HTML 文件以 Markdown 或純文字解析轉換。
  • 在書寫設定中的 HTML 數學顯示,可選擇匯出後的 HTML 文件中數學物件是否為一區塊。效果為在瀏覽模式上下方向鍵移動報讀整行內容時,數學物件是否獨立一行呈現。
  • 預覽:透過系統設定的預設開啟 .HTML 副檔名應用程式打開轉換後的 HTML 文件。
  • 匯出:將轉換後的 HTML 文件與原始文字檔打包儲存為一壓縮檔,壓縮檔內包含 HTML (可視讀、聽讀、摸讀格式)與 txt (原始可編輯檔案)

alt+t:可將游標所在的數學區塊在 LaTeX 與 AsciiMath 間轉換(游標需在數學區塊內)

alt+b:可將整份文件進行批次轉換,包括 LaTeX 分隔符括號與錢號互轉、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 語法。(需先於指令選單中設定快捷鍵)

在書寫設定內可選擇啟動時是否啟用快捷手勢,編輯區中按 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 資料區塊並讀出
  • n: 移到下一個 Nemeth 資料區塊並讀出
  • m: 移到下一個 MathML 資料區塊並讀出
  • t: 移到下一個文字區塊並讀出
  • tab: 移動到下一個可互動區塊(數學區塊)並讀出

可用以下按鍵手勢編修文件

  • ctrl+x:剪下當前游標區塊
  • ctrl+c:複製當前游標區塊
  • ctrl+v:於當前游標區塊後貼上內容
  • delete/back space:刪除當前游標區塊

Access8Math 編輯器與 Access8Math Document

windows 11 起記事本的編輯區為豐富文本區域非傳統編輯區,故在 windows 11 必需使用此編輯器方能使用書寫功能。此編輯器亦提供開啟舊檔、儲存檔案、預覽等功能。

使用 Access8Math 編輯器可書寫 markdown 文件且當有資源時可將資源至於編輯器工作空間內並進行引用。當點選編輯器的匯出功能,會將文件內有引用到的資源一併打包成壓縮檔

檢視功能表下的預覽、匯出功能與指令手勢下的檢視功能(alt+h)相同可產生 Access8Math Document 檔,兩者唯一區別為 Access8Math 編輯器會將被引用的資源一併打包加入壓縮檔內

為了讓 Access8Math 編輯器匯出的檔案可匯入再編輯,Access8Math 編輯器匯出時會寫入一個 Access8Math.json ,其為 meta 資料。我們稱含有此 meta 的壓縮檔/資料夾為 Access8Math Document

在檔案總管內可按下 NVDA+快顯鍵,當選擇的路徑為 txt/Access8Math Document 時,會彈出虛擬路徑位置功能表,可快速開啟檢視或編輯該檔案

綜合內容範例:

  • 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)
  • Nemeth(UEB):一元二次方程式 %⠁⠭⠘⠆⠐⠬⠃⠭⠬⠉⠀⠨⠅⠀⠴: 的解為 %⠭⠀⠨⠅⠀⠹⠤⠃⠬⠤⠜⠃⠘⠆⠐⠤⠲⠁⠉⠻⠌⠆⠁⠼: 。
  • Nemeth(at):一元二次方程式 @⠁⠭⠘⠆⠐⠬⠃⠭⠬⠉⠀⠨⠅⠀⠴@ 的解為 @⠭⠀⠨⠅⠀⠹⠤⠃⠬⠤⠜⠃⠘⠆⠐⠤⠲⠁⠉⠻⠌⠆⠁⠼@ 。
  • MathML:一元二次方程式 ax2+bx+c=0 的解為 b±b24ac2a

設定

所有 Access8Math 的設定集中於工具->Access8Math->設定選單中

閱讀設定

  • 語言:Access8Math 朗讀數學內容的語言
  • 語音來源:選擇使用 Access8Math 或 Math Player 的語音朗讀方式
  • 點字來源:選擇使用 Access8Math 或 Math Player 的點字顯示方式
  • 互動來源:選擇使用 Access8Math 或 Math Player 的互動導航方式
  • 分析內容的數學意義:將數學內容進行語意分析,符合特定規則時,套用該規則的語音朗讀與點字顯示
  • 當進入互動模式時,顯⽰互動視窗:在數學物件上啟動事件進入互動導航模式前是否顯示「Access8Math 互動視窗」。
  • 在互動導航模式下讀出字典預先定義的意義:在互動導航模式下,當字典檔有定義時,使用字典檔讀出提示該項子內容在其上層子內容的意義
  • 在互動導航模式下讀出⾃動產⽣的意義:在互動導航模式下,當字典檔無定義或不完整時,使用自動產生功能讀出提示該項子內容在其上層子內容的意義或項次
  • 在互動導航下使⽤⾳效來提⽰無法移動:在互動模式下導航時,當無法在移動時發出提示音,如未勾選將以語音「無移動」提示
  • 項目間隔時間:設定數學內容項目與項目間報讀停頓的時間,數值從1到100,數值愈小表示停頓時間愈短,反之數值愈大表示停頓時間愈長。

書寫設定

  • 啟動時啟⽤指令⼿勢
  • 啟動時啟⽤區塊導航⼿勢
  • 啟動時啟⽤快捷⼿勢
  • 以⾳效提⽰書寫導航模式的切換
  • HTML 顯⽰
  • LaTeX 分隔符

規則設定:選擇特定規則是否啟用的設定。

本地化

工具->Access8Math->本地化選單中可自定議語音朗讀與點字顯示,語音朗讀與點字顯示內皆分為「unicode 字點」與「數學規則」兩部份

  • 語音 unicode 字典:可客製設定各項符號文字的語音朗讀
  • 語音數學規則:可客製設定各數學類型的語音朗讀
  • 點字 unicode 字典:可客製設定各項符號文字的點字顯示
  • 點字數學規則:可客製設定各數學類型的點字顯示
  • 「加入新語言」可加入原先於內建未提供的語言,加入後於一般設定內會多出剛新增的語系並可再透過「unicode 字典」與「數學規則」定義讀法達到多國語言客製化設定

unicode 字典編輯

Access8Math 透過字典檔方式將特定符號對應到特定文字/點字,以解決部份罕見符號語音合成器不支援、複合多個符號為一個數學符號(sin 為正弦)、或因部份符號通用性問題在數學上與一般使用上有所不同(! 為階層)等問題

新增:增加一組對應字典檔紀錄,按下後可輸入欲新增的符號,按確認後即可在字典檔紀錄列表上看到新增的符號

修改選擇符號:選擇一筆字典檔紀錄並在替代文字輸入值後,未來 Access8Math 看到此符號後即會對應以替代文字朗讀此符號

移除:選擇一筆字典檔紀錄後按下移除按鈕可刪除選定的字典檔紀錄

還原預設值:將字典檔列表還原到初始預設值。

匯入:將字典檔檔案匯入,可用於載入字典檔檔案。

匯出:將字典檔檔案儲存於指定路徑,以利分享或保存字典檔檔案。

數學規則編輯

Access8Math將常用數學式依據類型與邏輯,建立46項數學規則,程式依據這套規則判別數學式的唸法與唸讀順序,依據各地習慣不同,可以變更數學唸讀順序與唸法,方法如下:

編輯: 進入"數學規則"後,視窗內有數學規則列表,選則任一規則可選擇"編輯按鈕"進入編輯條目。

規則的"編輯條目"可分為兩大區塊,分別是序列化順序與子節點角色。

  • 序列化順序:將數學規則依據唸讀順序劃分多個區塊,在此區域可變更規則子項目的唸讀順序及開始、項目間與結束的分隔文字,以分數規則mfrac為例,此規則分為五個唸讀順序,順序0、2和4分別代表起始提示、項目區隔提示與結束提示,可在各欄位中輸入變更自己習慣的唸法,而順序1與3則可調整子節點唸讀的先後,可於下拉式選單中變更順序。
  • 子節點角色:為該數學規則的下一階層子項目,以分數規則mfrac為例,此項規則就包含分子與分母兩項,而在子節點欄位中,可以變更該項子內容在其上層子內容的意義文字,。

範例:可先行查閱確認編輯修改後對此類型的數學規則讀法。點擊後會出現一個預設好符合該對應數學規則的數學內容,供確認對此類型的數學規則讀法是否符合預期。

還原預設值:將數學規則列表還原到初始預設值。

匯入:將數學規則檔案匯入,可用於載入數學規則檔案。

匯出:將數學規則檔案儲存於指定路徑,以利分享或保存數學規則檔案。

category example
math 1+2+3
mfrac 31+x
single_fraction 34
AddIntegerFractionType 1725
mfenced 5+6
set 1,2,3,4
absolute_value <mfenced open="
determinant <mfenced open="
matrix 235x
msqrt 4+9
mroot 93
single_square_root 4
msubsup an2+an+12
msup xa+b
msub an+1
munderover πx=0N
munder limx
mover A+B¯
SingleMsubsup a02+a12
SingleMsub log210
SingleMsup f'
SingleMunderover Αmn
SingleMunder lima
SingleMover A¯
power 35
SquarePowerType 32
CubePowerType 23
from_to 01x
from N
to N
mtable x+y=1x+2y=4
mtr x+y=1x+2y=4
mtd x+y=1x+2y=4
LineType AB
RayType AB
LineSegmentType AB¯
VectorSingleType A
VectorDoubleType AB
ArrowOverSingleSymbolType a
FrownType AB
DegreeType 15+10=25
LogType log10
BinomialType (nk)
NegativeSignType -2
PositiveSignType +2
mmultiscripts Tnm
mprescripts Tnm

範例

維基百科上的數學內容皆以MathML寫成

一元二次方程解:

  • LaTeX: (x=\frac{-b\pm\sqrt{b^2-4ac}}{2a})
  • AsciiMath: x=(-b+- \sqrt(b^2-4ac))/(2a)
  • MathML: -b±b2-4ac2a

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

歡迎提出見意與bug回報,謝謝!

标签: none

已有 10 条评论

  1. Derrick

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

    1. 酱油醋

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

  2. tsengwoody

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

  3. John Smith

    如果在不使用交互模式就能以光标逐字访问公式就好了,我记得NVDA原生是支持的,但装完插件后就必须按NVDA+ALT+M才能逐字访问。希望增加不使用交互模式就能用光标逐字访问公式的功能。

  4. 1

    1

  5. John Smith

    不知道从什么时候起,我这边NVDA在word中不能正确的朗读数学公式,比如只能读公式的类型而不能读公式的内容。如遇到一个公式只能读图像mathtype 6.0equation或者Microsoft公式3.0。而不能读公式的内容。

  6. John Smith

    mathtype装了,试用期也还有二十多天呢?但NVDA就是不朗读公式。

  7. John Smith

    怎么突然又下不了了?

  8. John Smith

    装了插件后NVDA还是无法朗读这个网页上的公式是怎么回事?

    1. Eureka

      “这个网页”是指哪个?

添加新评论