I have some mathematical expressions written in LaTeX that I would like to put on a webpage. However, they use packages that don\'t seem to be included in MathJax (e.g. yta
This page gives the answer, which is yes. http://math.stackexchange.com doesn't seem to honor \(\require{foo}\)
, but the above link tells you how to add any package to the configuration for your website.
If you're not the administrator of the site, of course you will have to convince the powers-that-be to install the package.
Is there a way of using LaTeX packages with MathJax?
No. MathJax isn't LaTeX; it processes input that is LaTeX-like (as close as it reasonably can be to true LaTeX), but the way it works under the hood is very different. One difference in particular is that MathJax only implements the math-mode macros, not all the other text-mode or general processing macros and control sequences. So most of the tools used by LaTeX packages aren't there. That means you can not simply drop a LaTeX package into MathJax. The packages that MathJax supports have to be re-implemented in javascript, which is difficult for non-trivial packages (like the one you cite).
Is there a way of using LaTeX packages with MathJax? If so, how would I do this?
First the StackExchange site must support MathJax.
You need to use the correct syntax for the particular site .
Some sites require a backslash before the dollar sign, because when people try to write "it costs $10 shipping each time" they end up with "it costs $10 shippingeachtime", so to avoid excessive questions about why that happens the dollar sign must be escaped to use MathJax on some sites.
You need to use $\require{\packagename}$
somewhere on the page, and it affects the whole page (including other people's posts).
The site in question needs to support the extension. The official (but incomplete) list is here: "MathJax third-party extensions".
The most complete MathJax Tutorial and Links answer is over at QC.meta.SE.
Specific to your question, "ytableau" didn't work on the site where I tested these examples (physics.SE) but the other packages I demonstrate do work:
$\require{\AMScd}$
$$\begin{CD}
A @<<< B @>>> C\\
@. @| @AAA\\
@. D @= E
\end{CD}$$
$\require{\mhchem}$
$$\ce{Zn^2+ <=>[+ 2OH-][+ 2H+]
$\underset{\text{zinc hydroxide}}{\ce{Zn(OH)2 v}}
$ <=>[+ 2OH-][+ 2H+]
$\underset{\text{tetrahydroxozincate(II)}}{\ce{[Zn(OH)4]^2-}}$}$$
The mhchem example was obtained from the MathJax-mhchem webpage.
Test a short example to determine if and how it works. Worst come to worst you can compose on a supporting site, capture and crop a screenshot, then enclose the MathJax in HTML comments <!-- comment -->
and upload the screenshot - if in the future MathJax is enabled the code will be available in your question or answer within the HTML comment.
Yes. According to the official MathJax documentation, version 2.7:
While MathJax includes nearly all of the Plain TeX math macros, and many of the LaTeX macros and environments, not everything is implemented in the core TeX input processor. Some less-used commands are defined in extensions to the TeX processor.
MathJax will load some extensions automatically when you first use the commands they implement (for example, the \def and \newcommand macros are implemented in the newcommand.js extension, but MathJax loads this extension itself when you use those macros). Not all extensions are set up to load automatically, however, so you may need to request some extensions explicitly yourself.
To enable any of the TeX extensions, simply add the appropriate string (e.g., "AMSmath.js") to the extensions array in the TeX block of your configuration. If you use one of the combined configuration files, like TeX-AMS_CHTML, this will already include several of the extensions automatically, but you can include others using a mathjax configuration script prior to loading MathJax. For example:
<script type="text/x-mathjax-config">
MathJax.Hub.Config({ TeX: { extensions: ["autobold.js"] }});
</script>
<script type="text/javascript"
src="https://example.com/mathjax/MathJax.js?config=TeX-AMS_CHTML">
</script>
will load the autobold TeX extension in addition to those already included in the TeX AMS_CHTML configuration file.
You can also load these extensions from within a math expression using the non-standard \require{extension} macro. For example:
\(\require{color}\)
would load the color extension into the page. This way you you can load extensions into pages that didn’t load them in their configurations (and prevents you from having to load all the extensions into all pages even if they aren’t used).
Source: https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions
If you want to work with version 3, here is the documentation: https://docs.mathjax.org/en/v3.0-latest/input/tex/extensions.html
If you want the latest version: https://docs.mathjax.org/en/latest/input/tex/extensions.html