- ams
- newcommand
- require
- autoload
- configmacros
- noundefined
In particular, they all load the "autoload" extension. This extension pre-defines all latex macros from all the official MathJax extensions (except "ams" and "physics") that haven't already been loaded explicitly in a way such that if one of these macros (e.g. \cancel) is ever used, that will cause its extension (cancel) to then fully load and \cancel will work as expected. "autoload" can be configured to only apply to a subset of the MathJax extensions, but our configuration doesn't do that.
This means that without any extra attention from an author, the following MathJax extensions all just work: action, amscd, bbox, boldsymbol, braket, cancel, color, enclose, extpfeil, html, mhchem, newcommand, unicode, verb. (And maybe more with MJ4.)
So I wanted to ask:
- Should we document that all these are available in MathJax by default?
- Would it avoid confusion to either *stop* loading some of these by default (by constraining what autoload applies to), or make sure their LaTeX counterparts are loaded by default in PDF production?
- Either way, would it make sense to remove the redundant loading of these extensions in -html? They cause instances of things like `\require{cancel}` in the latex-macros math chunk that is currently used to load custom latex macros.
I'm looking at all this as part of cleaning up how we load custom latex macros on an HTML page, and cleaning away these instances of \require seemed like a small first step.