Published 20240131.
Time to read: 4 minutes.
I have been preparing web pages containing statistics and probability equations that explain large language models (LLMs). Special techniques, are required to write proper mathematical expressions.
I expressly want to publish web pages with mathematics. I normally write my HTML pages with Visual Studio Code using Jekyll. I do not want to use Microsoft Word or other heavyweight applications that are not principally oriented towards creating HTML pages.
TeX  LaTeX
Multiline Equation Definitions
LaTeX can be hard to read. I put each math phrase on a separate line, and use indentation to show relationships. Here is an example:
\displaystyle \mu_q = \Big( \frac{ (1\overline{\alpha}_{t1}) \sqrt{\alpha_t} }{ 1\overline{\alpha}_t } + \frac{ 1\alpha_t }{ (\sqrt{\alpha_t}) (1\overline{\alpha}_t) } \Big)x_t
The above renders as:
\displaystyle \mu_q = \Big( \frac{(1\overline{\alpha}_{t1}) \sqrt{\alpha_t} }{ 1\overline{\alpha}_t } + \frac{1\alpha_t}{(\sqrt{\alpha_t})(1\overline{\alpha}_t)} \Big)x_t
Comments
x = 3 % This is a single line comment \begin{comment} This is a multiline comment \end{comment}
The above renders as:
x = 3 % This is a single line comment \begin{comment} This is a multiline comment \end{comment}
MathML
The W3C, responsible for many of internet standards, has a lowlevel specification called MathML. All major browsers support MathML and support in math and science applications is ubiquitous. You only need a text editor to write MathML, but there are tools available that make it easier.
I think it is important that any math tool I use provides robust MathML support.
MathML extension for Visual Studio Code.
Specifications
 MathML 3
 XML Entity Definitions
 MathML 2
 Units in MathML
 Arabic mathematical notation
 Structured Types in MathML 2.0
 Bound Variables in MathML
MathML3 is an ISO/IEC International Standard
Options
Given that I want MathML as the foundation for writing mathematics in web pages, following are the options that I looked into, in alphabetical order.
GNU TexMax
💥GNU TexMacs seems like an old project that has been quietly moldering for decades. It is licensed under GPL 3.0, which is problematic for a component meant to integrate into a larger, nonGPL system. I am going to ignore GNU TexMax.
jqMath
jqMath is a JavaScript library that enables formatted mathematical expressions in web pages. It uses a TeXlike syntax, with MathML semantics, but it does not feature MathML interoperability.
jqMath requires the user to type special symbols, for example Σ and ∫. That is a dealbreaker.
MathCha
MathCha is a free online mathematics editor. It is also available as a nonfree desktop version. I am intrigued by the drawing option.
💥Mathcha can export to SVG, PDF and Tikz (Latex) format, but not to MathML. Convert to "Math Mode Latex + Plain Text" is supported, but not Latex in text mode. The lack of MathML support is a dealbreaker for me.
MathJax
MathJax is an open source JavaScript display engine for mathematics that works in all browsers. MathJax accepts MathML, TeX, and ASCIImath as input, and exports to HTML+CSS, SVG, and MathML. It displays LaTeX, MathML, and AsciiMath notation in HTML pages and Node.js applications.
Equations generated in MathML or LaTeX format by any 3rd party equation editor can be used in MathJax enabled web pages.
– From MathJax Wikipedia page
You can try MathJax online using JsBin and Code Pen (which I prefer).
MathJax is widely used. The GitHub project has been under very active development for 7 years, has 17 contributors, 1,900 stars and 202 forks.
😟Although MathJax looks promising, there have been no releases for 19 months (since June 8, 2022). The developers seem to have gotten stuck on the next major release. This type of problem is known as the secondsystem effect. It is often fatal to a project.
MathLive
MathLive is an opensource web component that provides an interface for editing and rendering math formulas. It has over 800 builtin LaTeX commands.
It has an extensive set of virtual keyboards for math input and includes custom mathtospeech support. The size of symbols is only controlled by inline CSS, not by CSS styles, which is unfortunate. The size of parentheses, brackets, and similar ‘containers’ can be controlled.
MathLive outputs LaTeX, MathML, ASCIIMath, and MathJSON formats. It can connect with the CortexJS Compute Engine to calculate MathJSON expressions.
😁This GitHub project has been under very active development for 7 years, has 55 contributors, 1,100 stars and 242 forks. It seems to be the most promising of all the projects described in this article.
MathLive’s rendered math is not selectable.
I made a CodePen to test out MathLive.
 Online editor
 Detexify Discover symbols by drawing them.
 Documentation
 Discord
 MathLive SDK
Windows Math Input Panel
Math Input Panel is a primitive application that is included in Windows 7 and later versions of Microsoft Windows. It allows the user to draw mathematical formulas using input devices such as a mouse, touchscreen or an external digitizer.
Math Input Panel can insert mathematical formulas into programs that support the Mathematical Markup Language (MathML).
Math Input Panel was made an optional feature in Windows 10 build 21332.1000 where it can be installed through the "Math Recognizer" optional feature in Settings.
To run, press Windows key and type math, then press Enter
💥Windows Math Input Panel is really just a toy.
Other VSCode Plugins

LaTeX Workshop
requires TeX Live
(documentation).
Shell
$ yes  sudo apt install texlive
 Markdown+Math
 Markdown Math
 Math Snippets
 Ultra Math Preview
References
 TeX  LaTeX Stack Exchange – a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems, people who love to create wellstructured and beautifully typeset documents.
 MathLive changes can be quite informative.