Access8Math 是一個 NVDA add-on,可以提升使用者在閱讀和書寫數學內容時的體驗。
Access8Math 提供 MathML 內容的語音與點字支援。它也提供互動模式,讓使用者可以用較小的片段探索數學內容,並更容易理解其結構與階層關係。
Access8Math 也可以協助撰寫 LaTeX 並轉換為 MathML。LaTeX 是一種易於撰寫與學習的排版系統,常用於表示數學公式。Access8Math 也提供指令選單、預覽支援與匯出功能,讓數學編輯與分享更加實用。
透過對無障礙數學閱讀與高效率數學書寫的支援,Access8Math 讓視障使用者與明眼使用者之間的數學溝通更加容易。
維基百科上的數學內容即是以 MathML 寫成:
在「設定」 > 「閱讀」選單中可選擇 Access8Math 中數學內容轉換的語言。如果發現系統未支援你的語言,請參閱文件「本地化」章節中,「加入新語言」段落。
此類規則是為了提高常用數學結構的閱讀體驗而設計,系統會依據 MathML 結構與數學規則將內容進行處理,讓語音朗讀與點字顯示更符合數學意義。例如:「x^2」將報讀為「x 的平方」而非「x 上標 2」。
你可以在「設定」 >「 閱讀」中的「分析內容的數學意義」的核取方塊勾選是否啟用。反之,如想查看原始的 MathML 結構時,則需將此選項取消勾選。
此選項同時也會改變互動模式下移動時提示內容在上下脈絡中數學意義的資訊。
當系統解析數學規則時,會將規則簡化朗讀,若數學內容僅為單一項目時,便可省略朗讀前後標記,以達到更快速的理解與閱讀效率,而亦不致造成混淆。例如:「(\frac{1}{2})」將朗讀為「2 分之 1」而不是「分數 2 分之 1 結束分數」。 若要調整相關簡化規則是否啟用,你可以在「設定」 > 「規則」中的核取方塊列表中選擇某項簡化規則是否啟用。
Access8Math 報讀數學內容時,會在項目與項目之間停頓,讓數學內容更容易理解。
若要調整數學內容項目與項目間報讀停頓的時間,你可以在「設定」 >「閱讀」中設定從 1 到 100 的數值,數值愈小表示停頓時間愈短,相反數值愈大表示停頓時間愈長。
在「設定」>「數學閱讀器」中可選擇數學閱讀器的來源。
在「本地化」選單中,可以編輯數學符號表與數學規則表,詳細說明請參閱文件「本地化」章節。
對於以語音為主的使用者,通常希望在較小的片段中聽取算式,而非一次聽完整個算式。如果你正在瀏覽模式下,只需將游標移到數學內容上,然後按下空格鍵或 Enter 鍵即可。
如果你不在瀏覽模式下: 1. 將檢閱游標移到數學內容的位置。預設情況下,檢閱游標會跟隨系統游標移動,因此你可以透過移動系統游標到數學內容上。 1. 執行以下快速鍵:NVDA + Alt + M,即可進入互動模式與數學內容互動。
進入互動模式後,你可以使用方向鍵等指令來探索算式。例如,你可以使用左右方向鍵在算式內移動,並使用向下鍵進入分式以探索算式中的某一部分。
完成閱讀後,只需按下 Esc 鍵即可返回文件。有關在數學內容中讀取和導覽的更多資訊,請參考下個章節。
Access8Math 提供了一套編輯器功能,他可以書寫 Markdown 文件,且當有額外資源(如圖片、連結等)時可將資源置於編輯器工作空間內並進行引用。
編輯器的匯出功能會將 markdown 文件轉換為 HTML 文件,其文字和數學內容均能以視覺方式完整顯示,此外,匯出功能會將文件內引用的資源放入輸出的壓縮檔內。因此,轉出的 HTML 文件可呈現一般文字、數學、圖片、影片與音樂等內容。
有關更多匯入與匯出的操作請參閱本文件「匯入與匯出」章節。
在書寫時,一些特殊的字元會被作為分隔符,以區分文字內容與數學內容,換句話說,在分隔符內的資料為以特定數學標記撰寫的數學內容,在分隔符外的則為一般文字內容。
| 類別 | 開始標記 | 結束標記 |
|---|---|---|
| LaTeX(括號) | ( | ) |
| LaTeX(錢號) | $ | $ |
| Nemeth(UEB) | _% | _: |
| Nemeth(at) | @ | @ |
備註:你可以在「設定」 > 「文件」中選擇 LaTeX/Nemeth 使用的分隔符號。
備註:在「設定」>「書寫」中內可選擇啟動時是否啟用指令手勢,編輯區中按 NVDA + Alt + C 可啟用或停用指令手勢,並可於 NVDA 的輸入手勢中變更。
當編輯游標在 LaTeX 區塊時,按下英文字母 A ~ Z 或 F1 ~ F12 可快速插入綁定的 LaTeX。按 Shift + 字母、Shift + F1 ~ F12 可讀出該快捷手勢當下綁定的 LaTeX。(需先於 LaTeX 指令選單中設定快捷手勢)
備註:在「設定」>「書寫」中可選擇啟動時是否啟用快捷手勢,編輯區中按 NVDA + Alt + S 可啟用或停用快捷手勢,可於輸入手勢中變更。
當編輯游標在 LaTeX 區塊時,按字母可快速插入對應的希臘字母 LaTeX 。字母與希臘字母對照表請參閱本文件之「附錄」。
在 Access8Math 編輯器中,透過分隔符隔開的內容會被視為不同的區塊,常見的區塊分別為文字區塊與數學內容區塊。你可以透過區塊導航快速地在不同類型的區塊之間移動編輯游標。
以「一元二次方程式 (ax^2+bx+c=0) 的解為 (x=\frac{-b\pm\sqrt{b^2-4ac}}{2a})」此內容為例,有兩個主要的數學內容區塊以及兩個文字區塊,我們可以將它們標示為 A 區塊、B 區塊、C 區塊與 D 區塊:
備註:在「設定」>「書寫」內可選擇啟動時是否啟用區塊導航手勢,編輯區中按 NVDA + Alt + N 可啟用或停用區塊導航手勢,可於輸入手勢中變更。
當區塊瀏覽模式開啟時,編輯游標移動到數學區塊的語音/點字輸出會是數學文字化內容而非原始的數學標記。例如:"(\frac{1}{2}) 的小數表示為 0.5" 會輸出為 "2 分之 1 的小數表示為 0.5" 而非 "(\frac{1}{2}) 的小數表示為 0.5"。
可用以下按鍵手勢移動編輯游標與進入互動模式:
以上編輯游標移動按鍵加上 Shift 鍵則會一併選取文字。
下列的按鍵,若僅按該單一鍵,編輯游標會跳至其對應的後一個類型的區塊,若同時按 Shift + 該單一按鍵,編輯游標會跳至前一個類型的區塊:
可用以下按鍵手勢編輯文件:
Access8Math 編輯器的檢視選單內的預覽功能可以將 Markdown 文件轉換為 HTML 文件進行預覽。
Markdown 文件中的數學區塊會轉換為 MathML,使用者可以用不同的方式閱讀(視覺閱讀、語音聽讀、點字摸讀)。而文件中所引用的資源(連結、圖片、影片與音樂等)也會轉換成適當的 HTML 元素並正確指向資源檔。因此,轉出的 HTML 文件可呈現一般文字、數學、圖片、影片與音樂等內容。
Access8Math 編輯器的檢視選單內的匯出功能讓使用者可以保存與分享文件。使用者選擇匯出路徑與檔名後,匯出功能將以相同檔名輸出兩種檔案:
例如匯出路徑為 D:\,檔名為 test,Access8Math 將產生 D:\test.a8m 與 D:\test.zip。使用者可以解壓縮 test.zip 並開啟 index.html 來檢視文件,HTML 文件中的數學內容將以 MathML 顯示。
開啟 Access8Math Document 的方式:
備註:在「設定」>「文件」中的「HTML 數學顯示」,可選擇匯出後的 Access8Math Document 內的 HTML 中數學物件是否為獨立區塊。效果為在瀏覽模式上下方向鍵移動報讀整行內容時,數學物件是否獨立讀出或與一般文字混合讀出。
虛擬選單將僅以語音朗讀和點字顯示選單項目的方式呈現,而不會以視覺化方式呈現。使用者需透過向上鍵/向下鍵在列表中選擇項目,如果選單項目有子選單,可使用向右鍵進入子選單;使用向左鍵退出子選單。
可加入原先系統未提供的語言,加入後於「設定」 > 「閱讀」 > 「語言」選單內會多出剛新增的語系,但新增的語系僅是英文語系的副本,你必需透過「符號字典」與「數學規則」定義語音朗讀與點字輸出來達成多國語言客製。
在「工具」 > 「Access8Math」> 「本地化」選單中可自定義語音朗讀與點字顯示,語音朗讀與點字顯示內皆分為「符號字典」與「數學規則」兩部份。
Access8Math 透過字典檔定義符號對應替代文字/點字碼,以解決罕見符號語音合成器無法朗讀或符號在數學情境中與一般文字中有明顯差異的問題。例如,「!」在數學內容中意義為「階乘」,而在一般文字中則表示情感。透過字典檔的編輯與新增,可以將原始符號對應到新的替代文字/點字碼,以修正錯誤的語音朗讀與點字顯示。
Access8Math 將常用數學內容的 MathML 結構,建立對應的數學規則,當遇到符合規則的 MathML 結構時,系統會依據數學規則所定義的內容來語音朗讀與點字顯示,依據各地區的習慣不同,使用者可自訂語音朗讀與點字輸出,方法如下:
編輯:進入「數學規則」後,對話框內有數學規則列表,選擇任一規則可選擇「編輯按鈕」進入編輯條目。規則的「編輯條目」可分為兩大區塊,分別是「序列化順序」與「節點數學意義」。
序列化順序:依據數學規則劃分數個區段,在此區域可變更規則區段的輸出順序及開始、項目間與結束的文字提示。以分數規則 mfrac 為例,此規則分為五個輸出區段,順序 0、2 和 4 分別代表起始提示、項目區隔提示與結束提示,可在各欄位中輸入變更自己習慣的輸出,而順序 1 與 3 則可透過下拉式選單調整區段輸出的先後次序。
節點數學意義:可編輯該數學規則特定區段的數學意義。以分數規則 mfrac 為例,此項規則就包含分子與分母兩項,而在節點欄位中,可以變更此節點在其脈絡中的數學意義。
範例:可先行查閱確認編輯修改後對此類型的數學規則讀法。點擊後會出現一個預設好符合該對應數學規則的數學內容,供確認對此類型的數學規則讀法是否符合預期。
如果你有興趣進行符號字典、數學規則的本地化工作,你可以透過這兩個對話框編輯符號字典與數學規則,並透過「匯出本地化檔案」功能匯出一份壓縮檔。接著,你可以透過 Access8Math GitHub Pull Requests 或 Email 將此檔案提供給開發團隊,我們很樂意將其加入 Access8Math 中。
| id | latex | category | order | label |
|---|---|---|---|---|
| matrix2X2 | \left [ \begin{matrix} {} &{} \ {} &{} \end{matrix} \right ] | 2-dimension | 0 | matrix (2X2) |
| matrix3X3 | \left [ \begin{matrix} {} &{} &{} \ {} &{} &{} \ {} &{} &{} \end{matrix} \right ] | 2-dimension | 1 | matrix (3X3) |
| determinant2X2 | \left | \begin{array} {cc} {} &{} \ {} &{} \end{array} \right | 2-dimension | |
| determinant3X3 | \left | \begin{array} {ccc} {} &{} &{} \ {} &{} &{} \ {} &{} &{} \end{array} \right | 2-dimension | |
| leftarrow | \leftarrow | arrow | 0 | left arrow |
| rightarrow | \rightarrow | arrow | 1 | right arrow |
| leftrightarrow | \leftrightarrow | arrow | 2 | left right arrow |
| uparrow | \uparrow | arrow | 3 | up arrow |
| downarrow | \downarrow | arrow | 4 | down arrow |
| updownarrow | \updownarrow | arrow | 5 | up down arrow |
| dotproduct | \cdot | calculus | 5 | dot product |
| integral | \int_{}^{}{} \mathrm d | calculus | 1 | integral |
| nabla | \nabla | calculus | 2 | nabla |
| partial | \partial | calculus | 4 | partial derivative |
| prime | \prime | calculus | 3 | derivative |
| differential | \mathrm{d} | calculus | 0 | differential |
| combination | C_{}^{} | combinatorics | 0 | combination |
| permutation | P_{}^{} | combinatorics | 1 | permutation |
| combination-with-repetition | H_{}^{} | combinatorics | 2 | combination with repetition |
| unordered-selection | U_{}^{} | combinatorics | 3 | unordered selection |
| frac | \frac{}{} | common | 0 | fractions |
| sqrt | \sqrt{} | common | 1 | square root |
| root | \sqrt[]{} | common | 2 | root |
| sumupdown | \sum_{}^{} | common | 3 | summation |
| vector | \vec{} | common | 4 | vector |
| limit | \lim_{{} \to {}} | common | 5 | limit |
| logarithm | \log_{} | common | 6 | logarithm |
| arc | \overset{\frown}{} | geometry | 0 | arc |
| triangle | \triangle{} | geometry | 1 | triangle |
| angle | \angle{} | geometry | 2 | angle |
| degree | ^{\circ} | geometry | 3 | degree |
| circ | \circ | geometry | 4 | circle |
| parallel | \parallel | geometry | 5 | parallel |
| perp | \perp | geometry | 6 | perpendicular |
| square | \square{} | geometry | 7 | square |
| small-diamond | \diamond{} | geometry | 8 | small diamond |
| large-diamond | \Diamond{} | geometry | 9 | large diamond |
| because | \because | logic | 0 | because |
| therefore | \therefore | logic | 1 | therefore |
| iff | \iff | logic | 2 | if and only if |
| implies | \implies | logic | 3 | implies |
| impliedby | \impliedby | logic | 4 | implied by |
| times | \times | operator | 0 | times |
| div | \div | operator | 1 | divide |
| pm | \pm | operator | 2 | plus-minus sign |
| modulus | \bmod | operator | 3 | modulus |
| overline | \overline{} | other | 0 | line segment |
| overleftrightarrow | \overleftrightarrow{} | other | 1 | line |
| overrightarrow | \overrightarrow{} | other | 2 | ray |
| binom | \binom{}{} | other | 3 | binomial coefficient |
| simultaneous-equations | \begin{cases} {} &{} \ {} &{} \end{cases} | other | 4 | simultaneous equations |
| infty | \infty | other | 5 | infty |
| repeating-decimal | 0.\overline{} | other | 6 | repeating decimal |
| ge | \ge | relation | 0 | greater than or equal to |
| le | \le | relation | 1 | less than or equal to |
| ne | \ne | relation | 2 | not equal to |
| approx | \approx | relation | 3 | approximate |
| cong | \cong | relation | 5 | full equal |
| sim | \sim | relation | 6 | similar |
| doteqdot | \doteqdot | relation | 4 | approximately equal to |
| propto | \propto | relation | 7 | proportional to |
| in | \in | set | 0 | belong to |
| notin | \not\in | set | 1 | not belong to |
| ni | \ni | set | 2 | include element |
| notni | \not\ni | set | 3 | not include element |
| subset | \subset | set | 4 | lie in |
| subsetneqq | \subsetneqq | set | 5 | properly lie in |
| not-subset | \not\subset | set | 6 | not lie in |
| supset | \supset | set | 7 | include |
| supsetneqq | \supsetneqq | set | 8 | properly include |
| not-supset | \not\supset | set | 9 | not include |
| cap | \cap | set | 10 | intersection set |
| cup | \cup | set | 11 | union set |
| setminus | \setminus | set | 12 | difference set |
| complement | \complement_{} | set | 13 | complement |
| emptyset | \emptyset | set | 14 | empty set |
| natural-number | \mathbb{N} | set | 15 | natural number |
| real-number | \mathbb{R} | set | 16 | real number |
| forall | \forall | set | 17 | for all |
| exists | \exists | set | 18 | exists |
| sine | \sin{} | trigonometric | 0 | sine |
| cosine | \cos{} | trigonometric | 1 | cosine |
| tangent | \tan{} | trigonometric | 2 | tangent |
| cotangent | \cot{} | trigonometric | 3 | cotangent |
| secant | \sec{} | trigonometric | 4 | secant |
| cosecant | \csc{} | trigonometric | 5 | cosecant |
| arcsine | \arcsin{} | trigonometric | 6 | arcsine |
| arccosine | \arccos{} | trigonometric | 7 | arccosine |
| arctangent | \arctan{} | trigonometric | 8 | arctangent |
| hyperbolic-sine | \sinh{} | trigonometric | 9 | hyperbolic sine |
| hyperbolic-cosine | \cosh{} | trigonometric | 10 | hyperbolic cosine |
| hyperbolic-tangent | \tanh{} | trigonometric | 11 | hyperbolic tangent |
| hyperbolic-cotangent | \coth{} | trigonometric | 12 | hyperbolic cotangent |
| floor | \lfloor \rfloor | other | 7 | floor |
| ceil | \lceil \rceil | other | 8 | ceil |
| 英文字母 | 希臘字母 | 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 |
較早版本的更新內容請參閱 changelog.md。