Robert A. Beezer |
---|
University of Puget Sound |
Initiated May 2013 with a Shuttleworth Flash Grant, outgrowth of National Science Foundation CCLI grant, 2010-2014.
Conversion to EPUB initiated 2014, resurrected early 2016, completed 2020. (w/ Mitch Keller)
May 2018, AIM Workshop: “Web accessibility of mathematics”. MathJax project, screen-reader developers, vast improvements in PreTeXt HTML.
August 2018: Martha Siegel, Alexei Kolesnikov (Towson State) contact David Farmer. Telephone conversation about text processing.
January 2019, JMM Baltimore: Volker Sorge presents accessibility improvements for MathJax and Speech Rule engine, including braille production. RAB preview in hallway.
January 2019, JMM Baltimore: Brian Conrey (AIM), David Farmer, Martha Siegel, Alexei Kolesnikov, Al Maneki, Karen Herstein
Then RAB, …
Then Volker Sorge, …
Summer 2019: Beyond proof-of-concept with National Federation of the Blind support.
January 2019, JMM Denver: AIM issues press release, shows physical samples at exhibit area.
August 2020: Here we are. Another AIM Workshop!
Kay O'Halloran, Summer 2017: three “languages”:
We capture the author's intent at the instant they author.
Let \(G\) be a cyclic group of order \(n\) and suppose that \(a\) is a generator for \(G\text{.}\) Then \(a^k=e\) if and only if \(n\) divides \(k\text{.}\)
<proposition xml:id="proposition-cyclic-subgrp-order"> <statement> <p> Let <m>G</m> be a cyclic group of order <m>n</m> and suppose that <m>a</m> is a generator for <m>G</m>. Then <m>a^k=e</m> if and only if <m>n</m> divides <m>k</m>. </p> </statement> <proof> ........ </proof> </proposition>
Isolate every mathematical expression, found in <m>
, <md>
, etc elements, in LaTeX syntax. Lightly wrap each one with location information, make one huge web page.
Run MathJax over this page, converting each LaTeX expression to MathML. (Can also convert to SVG for use in EPUB format.) Creates another webpage. [Show AATA SVG page.]
Run Speech Rule Engine (SRE) over this second page, converting each MathML expression into Nemeth braille. (Can also convert to speech for audiobooks or DAISY format.) Now have a third web page of representations of the math bits.
Start over, and convert original document to the “usual” HTML. However
Run the liblouis
converter over this enhanced HTML page to create a BRF file. (Braille ASCII representations of the 64 6-dot patterns, with some page formatting.) liblouis
allows some CSS-like control.
All of the above accomplished with Python script at once:
$ pretext -c all -f braille aim-braille.xml
Judson, Proposition 4.12 source: … <m>a^k=e</m>
…
MathML from MathJax:
<math> <msup> <mi>a</mi> <mi>k</mi> </msup> <mo>=</mo> <mi>e</mi> </math>
Unicode braille from SRE: ⠁⠘⠅⠐⠀⠨⠅⠀⠑
Braille ASCII (BRF) from liblouis
, PreTeXt customization gives Nemeth indicators:
_% a~k" .k e _:
Enhanced PreTeXt HTML (w/ braille, liblouis precursor)
<article class="proposition theorem-like" data-braille="theorem-like"> <h6 class="heading"> <span class="type">Proposition</span> <span class="space"> </span> <span class="codenumber">4.1.12</span> <span class="period">.</span> </h6> <p>Let <i class="one-letter">G</i> be a cyclic group of order <i class="one-letter">n</i> and suppose that <i class="one-letter">a</i> is a generator for <i class="one-letter">G</i>. Then <nemeth class="inline">⠁⠘⠅⠐⠀⠨⠅⠀⠑</nemeth> if and only if <i class="one-letter">n</i> divides <i class="one-letter">k</i>.</p> </article>
Liblouis output, via (supported) PreTeXt customizations
7777777777777777777777777777777777777777 ,proposi;n #d4a4ab 4 ,let .2;,g 2 a cyclic gr|p ( ord} .2;n & suppose t .2a is a g5}ator = .2;,g4 ,!n _% a~k" .k e _: if & only if .2;n divides .2;k4 GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
pretextbook.org
Acknowledgements: