How to add Accessible Mathematics to your rise course. (Including Super and Sub Scripts and Formulas)
Aug 01, 2017
Edit 1: Updated with JS to check for dynamically created content.
Edit 2: Updated with /content/lib/main.bundle.js script injection needed for continue buttons and other dynamic content.
Here are the steps to follow for creating accessible Math in rise:
- Use the following site to create your math latex formula: https://www.codecogs.com/latex/eqneditor.php and to confirm the equation displays the way you want. An example of a formula might be x^{2} = \frac{2}{y} which is “x² = 2 / y”
- Copy your latex formula into Rise where you want it, but add “$$” before and after, so: $$x^{2} = \frac{2}{y}$$
- Do this for all equations until you publish.
- After publishing, extract the zip file and open index.html
- After the <head> tag, insert the following Javascript:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML'></script>
<script type="text/javascript">
// Inspect the array of MutationRecord objects to identify the nature of the change
function mutationObjectCallback(mutationRecordsList) {
mutationRecordsList.forEach(function(mutationRecord) {
if ("attributes" === mutationRecord.type) {
}
});
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}
// Create an observer object and assign a callback function
var observerObject = new MutationObserver(mutationObjectCallback);
// the target to watch, this could be #yourUniqueDiv
// we use the body to watch for changes
var targetObject = document.body;
// Register the target node to observe and specify which DOM changes to watch
observerObject.observe(targetObject, {
attributes: true,
attributeFilter: ["id", "dir"],
attributeOldValue: true,
childList: true
});
</script>
6. Finally, in /content/lib/main.bundle.js search for the following code:
return e.createElement("div", null, this.props.children)
and add the following right before it:
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
55 Replies
+1 for a Equation editor in Rise
The MathJax script above was working prior to the new year (2024) but now produces raw LaTex instructions. Is anyone else experiencing this?
Yes, we are seeing the same issue raised by Carol.
Thank you so much for the update Zachary, it is very much appreciated!
Thanks Zachary we are halfway there! This fixes the block MathJax but inline is still broken. The $ notation has been removed from the script but we do use inline equations throughout our curriculum, more that the block notation.
Hoping we can continue to make progress,
Carol
Hi Zachary,
After some research, I found that the backslash paren notation works. This is great news and you can consider this fix fixed.
Thank you for your diligence and response to our problem!
Sincerely,
Carol Kinnard
You are BRILLIANT! THANK YOU!
Carol,
To help make this a bit more "consistent" (such as it is), I changed line 5 of Zachary's code to this instead:
inlineMath: [['$$$', '$$$']]
That way, if you use $$ on either side of the MathML code, it outputs the math on its own line. But if you just add one more dollar sign and use $$$ on either side of the MathML, it outputs the math inline.
It's a small detail, of course, but for me (and my instructional designer colleagues) it's easier to remember multiple dollar signs -- as long as you don't get mixed up on which one displays inline versus on its own line. :-)
Hi all,
Thanks to John and Zachary for the code. I am not js proficient at all, just a bit of HTML and CSS. I have followed the instructions to the T as the module I am developing uses mostly inline math equations. However, after doing a test publish with the revised index.html file, my equations only render on the first page, there after it shows the equations in their code format e.g., $$$0=0$$$, but as soon as I try to copy an equation over to Word to test to see if it is fonts causing the trouble, the whole page suddenly displays correctly?! What am I doing wrong? I've tested this in three different browsers: FireFox (my default), Chrome and Edge, they all display it incorrectly at first until you highlight an equation and press CTL + C then is fixes the display.