## New Math Engines

As part of the new features and improvements we have been rolling out this summer comes an enhancement which deserves a bit of explanation: the new math engines which are now being used to render mathematical expressions.

#### What does this mean for me?

If you are using Firefox, you should notice much improved page load speeds, with the large MathJax JavaScript library and fallback SVGs no longer necessary. If you are using a different browser (e.g., Chrome), you will still benefit from less text shifting during page load, as the new SVG/PNG math renderer sizes images almost identically to MathJax.

To top this off, we are now shipping a rendering server enabling problem authors to use LaTeX commands directly in their problems, allowing crisp, scalable diagrams to be displayed.

We have put effort into making sure the math looks good on all browsers by default, but should you find something looks weird, read on (and please let us know).

#### Can I change the way math is displayed?

When editing your profile, you will see a new dropdown has been added, which allows you to configure the way math is displayed for you while logged in. There are 5 modes available:

Mode | Description |
---|---|

Leave as LaTeX | Perform no math rendering; output raw LaTeX commands. |

SVG with PNG fallback | Display scalable vector math, falling back to PNG if your browser does not support SVG |

MathML only | If you are using Firefox or another browser (not Chrome) that implements the MathML part of the HTML5 specification, math will be formatted as MathML commands with native browser support. To see if your browser renders MathML properly, you can visit this page to find out. |

MathJax with SVG/PNG fallback | This has been the default used on the DMOJ until now, and uses the MathJax library to format math. If JavaScript is disabled, it falls back on SVG or PNG math, depending on browser support. |

Detect best quality | This mode attempts to use caniuse.com data for a best-effort-guess of whether MathML is supported by your browser. It will use MathML if possible, and MathJax with SVG/PNG fallback when MathML is unsupported. This is now the default mode. |

## Comments