-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Mathjax v2.3 potential features discussion
This page collects features that came out of a number of discussions on the mailing lists.
- See Accessibility goals
- Improve support for screen readers
- See this discussion
- Generate alt-text for screen readers
See MathJax v2.x potential feature: localization
Besides MathJax's own testing suite for our development, MathJax is being used in other environments.
To enable reliable use of MathJax, the ability to integrate MathJax testing into other environments is critical.
A key MathJax goal is further the adoption of MathML in HTML. Content producers are still hesitant to output MathML in HTML and prefer images despite using an internal XML/MathML workflow.
Creating a test environment for authors to test their content will allow users to reliably switch to MathML output.
Additionally, content testing could allow content producers to find optimal configurations.
See Test environment for content
MathJax doesn't have any performance tests which makes it hard to track down misconfigurations and other speed related issues.
peter: Sean Hogan's code has some tests -- can we do something with it?
- Provide basic statistics on what speed to expect
- Create optimized configurations that are designed specifically for the content, loading all components that will be needed on the page right away
- this would also be great for local installations where perceived speed issues are really only the inital load -- could we load all of MathJax on load? Could we optimize calculations given the browser context e.g. on a mobile device?
- functional testing
- regression testing
- Fuzz-testing
- jasmine, mocha
In its current model, it depends on the DOM. This is a serious restriction for certain testing scenarios.
- Simplify integration into javascript runners (Rhino, node.js etc)
- Create sample scripts that pipe different pieces together.
- Examples to build on
- well documented
- For example,
- TeX2MathML
- hooking MathJax into text/math editors
- PDF output
- epub output
- png/SVG fallbacks via noscript tags
- could even be helpful for kindle kf8 generation
One of MathJax's core goals is emulation of (parts of) LaTeX. Currently, the basic TeX and LaTeX math-mode commands are supported.
- Add Cyrillic fonts in math (AMS suggestion)
- requires: new TeX input commands, probably new web-font as well
- LaTeX package xymatrix xypic -> hard to implement (see this MathJax fork)
- investigate a LaTeX2e extra symbols extension.
- siunitx
- tikz
- instiki (itex2MML and blahTeX) syntax as TeX extensions.
MathJax provides an interface to the mathematical content. This is key part to its accessibility goals but also goes beyond this to giving users better ways to find and interact with mathematical content.
- optional effects to indicate MathJax content & abilities ("discoverability")
- Functionality is already in place (move over etc) TODO Example link
- Design Questions/Scenarios:
- how to improve "visibility" of MathJax content, i.e., indicate those parts rendered with MathJax
- create configurations for mobile, desktop, app scenarios to improve interaction (zoom, copy&paste, screen readers)
MathJax is designed to support all modern browsers equally. One challenge is to deal with bugs in browsers. While we aim to solve them upstream, we have to deal with them downstream when necessary.
See Browser Bugs
MathJax is, at its core, a MathML rendering engine. One of the key goals of MathJax is to enable users to get the same typesetting experience they would expect from a native browser implementation.
Font and character support is a basic (and endless) problem of typesetting. MathJax currently supports its own fonts (based on Computer Modern) as both locally installed and in various webfont formats. STIX fonts are supported when locally installed. MathJax needs to know the metrics of the fonts involved to correctly calculate the CSS for the HTML-CSS output. This makes it hard to add more font options. MathJax also lacks a certain basic typesetting abilities that we were not yet able to implement.
- Ability to extend coverage to additional characters
- Make font switching easier (sansserif, different fonts, cf. mailing group requests)
- font detection can always be improved...
- STIX fonts future -- should we fork? Make svg outlines, woff on our own?
- Browser extensions with WOFF fonts to speed up Mathjax. Can be easier to install than local fonts, especially on mobile platforms. (see this discussion)
- Update some glyphs from the MathJax fonts used to stretch operators (see this issue and this dicussion)
- Possible font additions to MathJax: stmary, asana, stix, dejavu
- have correct utf 10 plane for math (not 11 like most e.g cambria math) hence accessible for browser
- Easy: assuming local installations, just generate the metric data
- Hard: make webfonts -- break them up, add special MJtest characters to every file -- could even remap utf planes so that fonts work in browsers
- Investigate font mixing/switching, using document font for alpha-numeric characters.
- Investigate Deja Vu fonts (planned "MathML 2.0" support).
One of the key goals of MathJax is to enable MathML3 support in all modern browsers. We currently support almost all Presentation MathML and no Content MathML.
Missing MathML features.
- in-table alignments, colspan, rowspan
- elementary math tags: mstack, mlongdiv, msgroup, msrow, mscarries, and mscarry.
- annotation-xml and foreign content in MathML
- Improve linebreaking
Content Mathml. We should investigate David Carlisle's javascript based solution using his xslt.
Yet another David-Carlisle-based feature would be to use this for MathML to TeX output.
MathJax faces several issues with CSS interaction and support.
- problem: Internet explorer has a limitation of 32 stylesheets. (See issue #60)
- This is a problem on some content management systems that already use many stylesheets themselves
- Possible solution: combine MathJax CSS into one
- Could MathJax's SVG-CSS adapt to the page's HTML-based CSS?
- Could MathJax's HTML-CSS adapt to the page's MathML-based CSS?
MathJax is designed in a modular fashion, allowing both input and output plugins.
Additionally, other software with plugin models (such as CMS, LMS etc) have the need to incorporate MathJax into their systems as easily as possible.
- Should we have a formal submission process, review process, repository?
- Should we have a macro repository like TeX packages (cf. texvc)? Do we want to offer some macros on the CDN?
- Should we host user contributed configurations on the CDN? For example, sponsors might find it useful, but also other interesting configurations could be of general interest.
- check CHM compatibility (cf. mailing list)
- Create minimal inline javascript to reduce load for pages with low/no math. The script should check the page for math, then load MathJax if needed.
- see for example this discussion
- Create ready-to-use releases // kits
- Goal: kit ready to be integrated into apps
- Example: for Readium Davide created a slim version that offered all functionality but had a small footprint
- Mozilla/gecko & webkit specific.
- could also be in the form of a small shell script, asking questions about what to remove from the full release